pub trait LanguageProvider {
// Provided methods
fn language_name(&self, name: &str) -> SharedString { ... }
fn config(&self, _name: &str) -> Rc<LanguageConfig> { ... }
fn syntax_context_provider(
&self,
_name: &str,
) -> Option<Rc<dyn SyntaxContextProvider>> { ... }
}Expand description
Supplies language identities, editing defaults, and syntax providers to Base.
Implementations normalize aliases consistently with their highlighter. Syntax providers belong to individual editors; configuration values can be shared. Base does not require a parser. Component installs its implementation at init.
Provided Methods§
Sourcefn language_name(&self, name: &str) -> SharedString
fn language_name(&self, name: &str) -> SharedString
Resolve a name or alias to its canonical identifier. Resolving an already canonical identifier must return the same identifier.
Sourcefn config(&self, _name: &str) -> Rc<LanguageConfig>
fn config(&self, _name: &str) -> Rc<LanguageConfig>
Editing defaults for a canonical identifier; application registrations take precedence over these defaults.
Sourcefn syntax_context_provider(
&self,
_name: &str,
) -> Option<Rc<dyn SyntaxContextProvider>>
fn syntax_context_provider( &self, _name: &str, ) -> Option<Rc<dyn SyntaxContextProvider>>
Creates an editor-owned provider, cached until the language or service
changes. After changing grammar registrations, reselect the editor’s
language with set_highlighter to replace its cached provider.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".