aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcgahr2023-11-03 21:21:54 +0000
committerGitHub2023-11-03 21:21:54 +0000
commit5c325fe342c26f31df495ec478a1d427270e8e42 (patch)
treec49ea54536a6ab5cc8296d29ad062e13d5df02f6
parent70bbbd7d193a7928c9b621af9a7e192ef8251f6b (diff)
replace kdl tree-sitter to fix highlighting (#8652)
* replace kdl tree-sitter * kdl: adopt highlights for new tree-sitter * kdl: add indent queries * kdl: add textobjects * kdl: improve syntax highlighting * kdl: update lang-support * kdl: make indents more concise --------- Co-authored-by: Constantin Gahr <constantin.gahr@ipp.mpg.de>
-rw-r--r--book/src/generated/lang-support.md2
-rw-r--r--languages.toml2
-rw-r--r--runtime/queries/kdl/highlights.scm8
-rw-r--r--runtime/queries/kdl/indents.scm3
-rw-r--r--runtime/queries/kdl/textobjects.scm27
5 files changed, 36 insertions, 6 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index c879a967..3b2a115f 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -81,7 +81,7 @@
| jsx | ✓ | ✓ | ✓ | `typescript-language-server` |
| julia | ✓ | ✓ | ✓ | `julia` |
| just | ✓ | ✓ | ✓ | |
-| kdl | ✓ | | | |
+| kdl | ✓ | ✓ | ✓ | |
| kotlin | ✓ | | | `kotlin-language-server` |
| latex | ✓ | ✓ | | `texlab` |
| lean | ✓ | | | `lean` |
diff --git a/languages.toml b/languages.toml
index 24e20654..6e637be7 100644
--- a/languages.toml
+++ b/languages.toml
@@ -2340,7 +2340,7 @@ injection-regex = "kdl"
[[grammar]]
name = "kdl"
-source = { git = "https://github.com/Unoqwy/tree-sitter-kdl", rev = "e1cd292c6d15df6610484e1d4b5c987ecad52373" }
+source = { git = "https://github.com/amaanq/tree-sitter-kdl", rev = "3ca569b9f9af43593c24f9e7a21f02f43a13bb88" }
[[language]]
name = "xml"
diff --git a/runtime/queries/kdl/highlights.scm b/runtime/queries/kdl/highlights.scm
index d83bde19..78e5acf4 100644
--- a/runtime/queries/kdl/highlights.scm
+++ b/runtime/queries/kdl/highlights.scm
@@ -1,12 +1,12 @@
-(comment) @comment
(single_line_comment) @comment
+(multi_line_comment) @comment
(node
- name: (identifier) @function)
+ (identifier) @variable)
+
(prop (identifier) @attribute)
-(type) @type
-(bare_identifier) @variable.other.member
+(type (_) @type) @punctuation.bracket
(keyword) @keyword
diff --git a/runtime/queries/kdl/indents.scm b/runtime/queries/kdl/indents.scm
new file mode 100644
index 00000000..bc2ffc15
--- /dev/null
+++ b/runtime/queries/kdl/indents.scm
@@ -0,0 +1,3 @@
+(node_children) @indent
+
+ "}" @outdent
diff --git a/runtime/queries/kdl/textobjects.scm b/runtime/queries/kdl/textobjects.scm
new file mode 100644
index 00000000..7f9a562c
--- /dev/null
+++ b/runtime/queries/kdl/textobjects.scm
@@ -0,0 +1,27 @@
+(type (_) @test.inside) @test.around
+
+(node
+ children: (node_children)? @class.inside) @class.around
+
+(node
+ children: (node_children)? @function.inside) @function.around
+
+(node (identifier) @function.movement)
+
+[
+ (single_line_comment)
+ (multi_line_comment)
+] @comment.inside
+
+[
+ (single_line_comment)+
+ (multi_line_comment)+
+] @comment.around
+
+[
+ (prop)
+ (value)
+] @parameter.inside
+
+(value (type) ? (_) @parameter.inside @parameter.movement . ) @parameter.around
+