aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SUPPORTED_LANGUAGES.md1
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--runtime/queries/kitty/highlights.scm175
-rw-r--r--runtime/queries/kitty/injections.scm31
4 files changed, 215 insertions, 0 deletions
diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md
index 2cc4bd6a9..3386e6bf2 100644
--- a/SUPPORTED_LANGUAGES.md
+++ b/SUPPORTED_LANGUAGES.md
@@ -160,6 +160,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | | @steelsojka
[kcl](https://github.com/kcl-lang/tree-sitter-kcl) | unstable | `HF J ` | | @bertbaron
[kconfig](https://github.com/tree-sitter-grammars/tree-sitter-kconfig) | unstable | `HFIJL` | | @amaanq
[kdl](https://github.com/tree-sitter-grammars/tree-sitter-kdl) | unstable | `HFIJL` | | @amaanq
+[kitty](https://github.com/OXY2DEV/tree-sitter-kitty) | unstable | `H  J ` | | @OXY2DEV
[kotlin](https://github.com/fwcd/tree-sitter-kotlin) | unstable | `HF JL` | | @SalBakraa
[koto](https://github.com/koto-lang/tree-sitter-koto) | unstable | `HF JL` | | @irh
[kusto](https://github.com/Willem-J-an/tree-sitter-kusto) | unstable | `H  J ` | | @Willem-J-an
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 67a492baa..34a5aa04e 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1205,6 +1205,14 @@ return {
maintainers = { '@amaanq' },
tier = 2,
},
+ kitty = {
+ install_info = {
+ revision = '49f877cff80ab613808b34bde170ea477ec182fe',
+ url = 'https://github.com/OXY2DEV/tree-sitter-kitty',
+ },
+ maintainers = { '@OXY2DEV' },
+ tier = 2,
+ },
kotlin = {
install_info = {
revision = '57fb4560ba8641865bc0baa6b3f413b236112c4c',
diff --git a/runtime/queries/kitty/highlights.scm b/runtime/queries/kitty/highlights.scm
new file mode 100644
index 000000000..c6b5a5dfd
--- /dev/null
+++ b/runtime/queries/kitty/highlights.scm
@@ -0,0 +1,175 @@
+(line_continuation) @comment
+
+(comment
+ (comment_content) @spell) @comment
+
+[
+ (pixel)
+ (percentage)
+ (number)
+] @number
+
+[
+ "steps"
+ "cubic-bezier"
+] @function.call
+
+(boolean) @boolean
+
+(color) @constant
+
+(string) @string
+
+[
+ (ctrl)
+ (alt)
+ (shift)
+ (function)
+ (super)
+ (mouse_button)
+ (up)
+ (left)
+ (right)
+ (middle)
+ (down)
+] @constant.builtin
+
+[
+ "+"
+ ">"
+ ":"
+ "-"
+ (separator)
+ "="
+ ","
+ "'"
+ ":"
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+] @punctuation.bracket
+
+(special) @variable.builtin
+
+(key) @character
+
+(path) @string.special.path
+
+(label) @label
+
+(constant) @constant
+
+(direction) @constant
+
+(pattern) @string.regexp
+
+(flag) @constant
+
+((string) @constant
+ (#lua-match? @constant "^-"))
+
+(generic_action) @function.call
+
+(action_name) @function.call
+
+[
+ "pt"
+ "px"
+ "%"
+ "ratio"
+ (signal_name)
+ (clear_target)
+ (ligature_target)
+ (window_location)
+ (stdin_source)
+ (marker_type)
+ (window_state)
+ (logo_position)
+ (mouse_selection_type)
+ (window_layout)
+ (os_window)
+ "ignore-shell"
+ (detach_into)
+ "@selection"
+ (kitty_shell_open_as)
+ (mouse_event)
+ (font_modification_type)
+ (ease_step_position)
+ "c"
+ (filter_element_type)
+ "all"
+ (ligature_disabled)
+ (clipboard_action)
+ (shell_feature)
+ (source_strategy)
+ (notification_time)
+ (paste_action)
+ (pointer)
+ (layout)
+ (launch_type_value)
+ (os_window_class)
+ (layout_type)
+ (time_suffix)
+ (cursor)
+ (spacing_type)
+ (remote_action)
+ (font_feature)
+] @type
+
+(kitten
+ target: (string) @type)
+
+[
+ (color_option_name)
+ "map"
+ "mouse_map"
+ (option_name)
+] @keyword
+
+(open_url
+ value: (string) @string.special.url)
+
+(handle_click_actions
+ _ @type)
+
+(title) @string.special
+
+(font_change_amount
+ sign: (font_change_sign) @operator)
+
+(aliased_action
+ name: (string) @function.call)
+
+(set_colors
+ "set_colors" @function.call)
+
+(include
+ environment_variable: (string) @variable.builtin)
+
+(key_focus_on
+ condition: (string) @string.special)
+
+(mouse_mode
+ [
+ "grabbed"
+ "ungrabbed"
+ ] @variable.parameter)
+
+(font_property
+ name: (string) @variable.parameter)
+
+(url_excluded_characters
+ value: (string) @character)
+
+(transparent_color
+ "@" @punctuation.special
+ (alpha) @number)
+
+(env
+ variable: (string) @variable.builtin)
+
+(boolean_operator) @keyword.operator
+
+(notification_action) @function.call
diff --git a/runtime/queries/kitty/injections.scm b/runtime/queries/kitty/injections.scm
new file mode 100644
index 000000000..74fde7b76
--- /dev/null
+++ b/runtime/queries/kitty/injections.scm
@@ -0,0 +1,31 @@
+(launch_source_window
+ value: (string) @injection.content
+ (#set! injection.language "regex"))
+
+(launch_next_to
+ value: (string) @injection.content
+ (#set! injection.language "regex"))
+
+(marker_entry
+ (pattern) @injection.content
+ (#set! injection.language "regex"))
+
+(color_match
+ (pattern) @injection.content
+ (#set! injection.language "regex"))
+
+(color_match_tab
+ (pattern) @injection.content
+ (#set! injection.language "regex"))
+
+(include
+ glob: (pattern) @injection.content
+ (#set! injection.language "regex"))
+
+(filter_element
+ (pattern) @injection.content
+ (#set! injection.language "regex"))
+
+(comment
+ (comment_content) @injection.content
+ (#set! injection.language "comment"))