pub trait InputTextPlugin: Sync + Send {
// Required methods
fn set_up(
&mut self,
settings: &Value,
config: &Config,
grammar: &Grammar<'_>,
) -> SudachiResult<()>;
fn rewrite_impl<'a>(
&'a self,
input: &InputBuffer,
edit: InputEditor<'a>,
) -> SudachiResult<InputEditor<'a>>;
// Provided methods
fn uses_chars(&self) -> bool { ... }
fn rewrite(&self, input: &mut InputBuffer) -> SudachiResult<()> { ... }
}
Expand description
Trait of plugin to modify the input text before tokenization
Required Methods§
sourcefn set_up(
&mut self,
settings: &Value,
config: &Config,
grammar: &Grammar<'_>,
) -> SudachiResult<()>
fn set_up( &mut self, settings: &Value, config: &Config, grammar: &Grammar<'_>, ) -> SudachiResult<()>
Loads necessary information for the plugin
sourcefn rewrite_impl<'a>(
&'a self,
input: &InputBuffer,
edit: InputEditor<'a>,
) -> SudachiResult<InputEditor<'a>>
👎Deprecated: call rewrite instead
fn rewrite_impl<'a>( &'a self, input: &InputBuffer, edit: InputEditor<'a>, ) -> SudachiResult<InputEditor<'a>>
Actual implementation of rewriting. Call apply_rewrite
instead.
Provided Methods§
sourcefn uses_chars(&self) -> bool
fn uses_chars(&self) -> bool
Whether the rewrite process uses chars
sourcefn rewrite(&self, input: &mut InputBuffer) -> SudachiResult<()>
fn rewrite(&self, input: &mut InputBuffer) -> SudachiResult<()>
Perform rewrites
Trait Implementations§
source§impl PluginCategory for dyn InputTextPlugin
impl PluginCategory for dyn InputTextPlugin
source§type BoxType = Box<dyn InputTextPlugin + Sync + Send>
type BoxType = Box<dyn InputTextPlugin + Sync + Send>
Boxed type of the plugin. Should be Box.
source§type InitFnType = unsafe fn() -> Result<<dyn InputTextPlugin as PluginCategory>::BoxType, SudachiError>
type InitFnType = unsafe fn() -> Result<<dyn InputTextPlugin as PluginCategory>::BoxType, SudachiError>
Type of the initialization function.
It must take 0 arguments and return
SudachiResult<Self::BoxType>
.source§fn configurations(cfg: &Config) -> &[Value]
fn configurations(cfg: &Config) -> &[Value]
Extract plugin configurations from the config