summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilfred Hughes <me@wilfred.me.uk>2023-07-27 08:33:38 -0700
committerWilfred Hughes <me@wilfred.me.uk>2023-07-27 08:33:38 -0700
commit797af40ae8ea258f61748238d84be78a2b4bb1f2 (patch)
treed9083d66eac11a3560427a06cf77aabcdb18534f
parentb2c8cb640fad0091a8c13ea3e3275b51e56c6a09 (diff)
Improve Java highlighting
-rw-r--r--CHANGELOG.md4
-rw-r--r--sample_files/compare.expected2
-rw-r--r--src/parse/tree_sitter_parser.rs18
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,