diff options
author | Wilfred Hughes <me@wilfred.me.uk> | 2023-07-27 08:33:38 -0700 |
---|---|---|
committer | Wilfred Hughes <me@wilfred.me.uk> | 2023-07-27 08:33:38 -0700 |
commit | 797af40ae8ea258f61748238d84be78a2b4bb1f2 (patch) | |
tree | d9083d66eac11a3560427a06cf77aabcdb18534f | |
parent | b2c8cb640fad0091a8c13ea3e3275b51e56c6a09 (diff) |
Improve Java highlighting
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | sample_files/compare.expected | 2 | ||||
-rw-r--r-- | src/parse/tree_sitter_parser.rs | 18 |
3 files changed, 22 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index d77869589..791acc034 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 0.50 (unreleased) +### Display + +Improved syntax hightling for Java built-in types. + ## 0.49 (release 26th July 2023) ### Parsing diff --git a/sample_files/compare.expected b/sample_files/compare.expected index fcb9977e8..e2e2485cf 100644 --- a/sample_files/compare.expected +++ b/sample_files/compare.expected @@ -95,7 +95,7 @@ sample_files/janet_before.janet sample_files/janet_after.janet 70d4add9e053b8a4355e470de52654e9 - sample_files/java_before.java sample_files/java_after.java -96fabae990d201558531d24b777ca8f5 - +8e3b1527415d8ed3ec71d69b30a86f0b - sample_files/javascript_before.js sample_files/javascript_after.js d738cb26e3f5086c9aa36df22c6d9a74 - diff --git a/src/parse/tree_sitter_parser.rs b/src/parse/tree_sitter_parser.rs index ab0cc07da..c9febc429 100644 --- a/src/parse/tree_sitter_parser.rs +++ b/src/parse/tree_sitter_parser.rs @@ -526,7 +526,23 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig { let language = unsafe { tree_sitter_java() }; TreeSitterConfig { language, - atom_nodes: vec!["string_literal"].into_iter().collect(), + atom_nodes: vec![ + "string_literal", + // The Java parser has a subnode (boolean_type + // ("bool")) for built-in types. This isn't a + // problem for diffing, but the syntax + // highlighting only applies to the parent node, so flatten. + // + // TODO: our syntax highlighting logic should + // consider parent tree-sitter nodes when applying + // the highlights.scm. + "boolean_type", + "integral_type", + "floating_point_type", + "void_type", + ] + .into_iter() + .collect(), delimiter_tokens: vec![("(", ")"), ("{", "}"), ("[", "]")], highlight_query: ts::Query::new( language, |