aboutsummaryrefslogtreecommitdiff
path: root/helix-core
diff options
context:
space:
mode:
authorRoland Kovacs2022-04-05 00:56:14 +0000
committerGitHub2022-04-05 00:56:14 +0000
commitd962e06e91b997813092cc5e49a800cc9d4f0ee1 (patch)
tree9ccbee392cbee6d0dc5e9c30bd73e44d5c47a444 /helix-core
parent6fc6f87260a2f11a892f09678fc6c10b01e88e3f (diff)
Add runtime language configuration (#1794) (#1866)
* Add runtime language configuration (#1794) * Add set-language typable command to change the language of current buffer. * Add completer for available language options. * Update set-language to refresh language server as well * Add language id based config lookup on `syntax::Loader`. * Add `Document::set_language3` to set programming language based on language id. * Update `Editor::refresh_language_server` to try language detection only if language is not already set. * Remove language detection from Editor::refresh_language_server * Move document language detection to where the scratch buffer is saved. * Rename Document::set_language3 to Document::set_language_by_language_id. * Remove unnecessary clone in completers::language
Diffstat (limited to 'helix-core')
-rw-r--r--helix-core/src/syntax.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs
index e736b370..bb0073e1 100644
--- a/helix-core/src/syntax.rs
+++ b/helix-core/src/syntax.rs
@@ -504,6 +504,13 @@ impl Loader {
.cloned()
}
+ pub fn language_config_for_language_id(&self, id: &str) -> Option<Arc<LanguageConfiguration>> {
+ self.language_configs
+ .iter()
+ .find(|config| config.language_id == id)
+ .cloned()
+ }
+
pub fn language_configuration_for_injection_string(
&self,
string: &str,
@@ -529,6 +536,10 @@ impl Loader {
None
}
+ pub fn language_configs(&self) -> impl Iterator<Item = &Arc<LanguageConfiguration>> {
+ self.language_configs.iter()
+ }
+
pub fn set_scopes(&self, scopes: Vec<String>) {
self.scopes.store(Arc::new(scopes));