Make the fields of buffer::Language private

This commit is contained in:
Max Brunsfeld 2021-10-05 11:23:00 -07:00
parent 0282e6f255
commit 3cb7ba0f57
6 changed files with 97 additions and 100 deletions

View file

@ -1,8 +1,7 @@
use buffer::{HighlightMap, Language, LanguageRegistry};
use parking_lot::Mutex;
use buffer::{Language, LanguageRegistry};
use rust_embed::RustEmbed;
use std::borrow::Cow;
use std::{str, sync::Arc};
use tree_sitter::Query;
#[derive(RustEmbed)]
#[folder = "languages"]
@ -18,19 +17,16 @@ fn rust() -> Language {
let grammar = tree_sitter_rust::language();
let rust_config =
toml::from_slice(&LanguageDir::get("rust/config.toml").unwrap().data).unwrap();
Language {
config: rust_config,
grammar,
highlight_query: load_query(grammar, "rust/highlights.scm"),
brackets_query: load_query(grammar, "rust/brackets.scm"),
highlight_map: Mutex::new(HighlightMap::default()),
}
Language::new(rust_config, grammar)
.with_highlights_query(load_query("rust/highlights.scm").as_ref())
.unwrap()
.with_brackets_query(load_query("rust/brackets.scm").as_ref())
.unwrap()
}
fn load_query(grammar: tree_sitter::Language, path: &str) -> Query {
Query::new(
grammar,
str::from_utf8(&LanguageDir::get(path).unwrap().data).unwrap(),
)
.unwrap()
fn load_query(path: &str) -> Cow<'static, str> {
match LanguageDir::get(path).unwrap().data {
Cow::Borrowed(s) => Cow::Borrowed(str::from_utf8(s).unwrap()),
Cow::Owned(s) => Cow::Owned(String::from_utf8(s).unwrap()),
}
}