aboutsummaryrefslogtreecommitdiff
path: root/helix-core
diff options
context:
space:
mode:
Diffstat (limited to 'helix-core')
-rw-r--r--helix-core/src/indent.rs25
-rw-r--r--helix-core/src/syntax.rs2
2 files changed, 23 insertions, 4 deletions
diff --git a/helix-core/src/indent.rs b/helix-core/src/indent.rs
index 775bc8ba..7fedb7d3 100644
--- a/helix-core/src/indent.rs
+++ b/helix-core/src/indent.rs
@@ -293,9 +293,28 @@ where
);
let doc = Rope::from(doc);
- let language_config = crate::syntax::LOADER
- .language_config_for_scope("source.rust")
- .unwrap();
+ use crate::syntax::{
+ Configuration, IndentationConfiguration, Lang, LanguageConfiguration, Loader,
+ };
+ use once_cell::sync::OnceCell;
+ let loader = Loader::new(Configuration {
+ language: vec![LanguageConfiguration {
+ scope: "source.rust".to_string(),
+ file_types: vec!["rs".to_string()],
+ language_id: Lang::Rust,
+ highlight_config: OnceCell::new(),
+ //
+ path: "../helix-syntax/languages/tree-sitter-rust".into(),
+ roots: vec![],
+ language_server: None,
+ indent: Some(IndentationConfiguration {
+ tab_width: 4,
+ unit: String::from(" "),
+ }),
+ }],
+ });
+
+ let language_config = loader.language_config_for_scope("source.rust").unwrap();
let highlight_config = language_config.highlight_config(&[]).unwrap();
let syntax = Syntax::new(&doc, highlight_config.clone());
let text = doc.slice(..);
diff --git a/helix-core/src/syntax.rs b/helix-core/src/syntax.rs
index 8a8d649a..a6b1cf61 100644
--- a/helix-core/src/syntax.rs
+++ b/helix-core/src/syntax.rs
@@ -14,7 +14,7 @@ use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
pub struct Configuration {
- language: Vec<LanguageConfiguration>,
+ pub language: Vec<LanguageConfiguration>,
}
// largely based on tree-sitter/cli/src/loader.rs