Skip to content

Commit

Permalink
syntax: Don't force lower-case for filenames (helix-editor#4346)
Browse files Browse the repository at this point in the history
Just like for grammars we currently force a lower-case of the name for
some actions (like filesystem lookup). To make this consistent and less
surprising for users, we remove this lower-casing here.

Note: it is still the preferred way to name both language and grammar in
lower-case

Signed-off-by: Christian Speich <cspeich@emlix.com>
  • Loading branch information
Christian Speich authored and pathwave committed Nov 4, 2022
1 parent 5af56c0 commit 14c0b51
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 13 deletions.
26 changes: 15 additions & 11 deletions helix-core/src/syntax.rs
Original file line number Diff line number Diff line change
Expand Up @@ -361,14 +361,12 @@ pub fn read_query(language: &str, filename: &str) -> String {

impl LanguageConfiguration {
fn initialize_highlight(&self, scopes: &[String]) -> Option<Arc<HighlightConfiguration>> {
let language = self.language_id.to_ascii_lowercase();

let highlights_query = read_query(&language, "highlights.scm");
let highlights_query = read_query(&self.language_id, "highlights.scm");
// always highlight syntax errors
// highlights_query += "\n(ERROR) @error";

let injections_query = read_query(&language, "injections.scm");
let locals_query = read_query(&language, "locals.scm");
let injections_query = read_query(&self.language_id, "injections.scm");
let locals_query = read_query(&self.language_id, "locals.scm");

if highlights_query.is_empty() {
None
Expand Down Expand Up @@ -432,14 +430,20 @@ impl LanguageConfiguration {
}

fn load_query(&self, kind: &str) -> Option<Query> {
let lang_name = self.language_id.to_ascii_lowercase();
let query_text = read_query(&lang_name, kind);
let query_text = read_query(&self.language_id, kind);
if query_text.is_empty() {
return None;
}
let lang = self.highlight_config.get()?.as_ref()?.language;
Query::new(lang, &query_text)
.map_err(|e| log::error!("Failed to parse {} queries for {}: {}", kind, lang_name, e))
.map_err(|e| {
log::error!(
"Failed to parse {} queries for {}: {}",
kind,
self.language_id,
e
)
})
.ok()
}
}
Expand Down Expand Up @@ -2119,7 +2123,7 @@ mod test {
);

let loader = Loader::new(Configuration { language: vec![] });
let language = get_language("Rust").unwrap();
let language = get_language("rust").unwrap();

let query = Query::new(language, query_str).unwrap();
let textobject = TextObjectQuery { query };
Expand Down Expand Up @@ -2179,7 +2183,7 @@ mod test {

let loader = Loader::new(Configuration { language: vec![] });

let language = get_language("Rust").unwrap();
let language = get_language("rust").unwrap();
let config = HighlightConfiguration::new(
language,
&std::fs::read_to_string("../runtime/grammars/sources/rust/queries/highlights.scm")
Expand Down Expand Up @@ -2275,7 +2279,7 @@ mod test {
let source = Rope::from_str(source);

let loader = Loader::new(Configuration { language: vec![] });
let language = get_language("Rust").unwrap();
let language = get_language("rust").unwrap();

let config = HighlightConfiguration::new(language, "", "", "").unwrap();
let syntax = Syntax::new(&source, Arc::new(config), Arc::new(loader));
Expand Down
4 changes: 2 additions & 2 deletions xtask/src/querycheck.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ pub fn query_check() -> Result<(), DynError> {
];

for language in lang_config().language {
let language_name = language.language_id.to_ascii_lowercase();
let grammar_name = language.grammar.unwrap_or(language.language_id);
let language_name = &language.language_id;
let grammar_name = language.grammar.as_ref().unwrap_or(language_name);
for query_file in query_files {
let language = get_language(&grammar_name);
let query_text = read_query(&language_name, query_file);
Expand Down

0 comments on commit 14c0b51

Please sign in to comment.