diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-12-24 10:00:20 +0100 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2024-01-19 16:58:37 +0100 |
| commit | 1ae9b0e4558fe7868f8cda2db65239cfb14836d0 (patch) | |
| tree | 4eea14b40b8b81d9388fb35cbc9e35b341a75c98 /queries/clojure | |
| parent | chore(tests): consistent captures (diff) | |
| download | nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.tar nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.tar.gz nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.tar.bz2 nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.tar.lz nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.tar.xz nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.tar.zst nvim-treesitter-1ae9b0e4558fe7868f8cda2db65239cfb14836d0.zip | |
feat!: align standard captures with upstream
Problem: Sharing highlight queries with upstream tree-sitter and
Helix is difficult.
Solution: Where reasonable, use capture names in tree-sitter's standard
list or Helix's Atom-style hierarchy.
Specifically:
* tree-sitter "standard capture names"
(https://github.com/tree-sitter/tree-sitter/blob/3f44b896852eb7daaa6df4fb778c9bb52c70c815/highlight/src/lib.rs#L20-L72):
- `@parameter` -> `@variable.parameter`
- `@field` -> `@variable.member`
- `@namespace` -> `@module`
- `@float` -> `@number.float`
- `@symbol` -> `@string.special.symbol`
- `@string.regex` -> `@string.regexp`
- `@text.*` -> `@markup.*` (`strong`, `italic`, `link`, `strikethrough`; with exceptions; see below)
- `@text.title` -> `@markup.heading`
- `@text.literal` -> `@markup.raw`
- `@text.reference` -> `@markup.link`
- `@text.uri` -> `@markup.link.url` (in markup links)
- `@string.special` -> `@markup.link.label` (non-url links)
- `@punctuation.special` -> `@markup.list` (markdown lists only; move subitems from `@text.todo`)
* Helix captures
(https://docs.helix-editor.com/master/themes.html#syntax-highlighting):
- `@method` -> `@function.method`
- `@method.call` -> `@function.method.call`
- `@text.{todo,warning,note,danger}` -> `@comment.{error,warning,hint,info,todo}`
- `@text.diff.{add,delete,}` -> `@diff.{plus,minus,delta}`
- `@text.uri` -> `@string.special.url` (outside markup)
- `@preproc` -> `@keyword.directive`
- `@define` -> `@keyword.directive`(`.define`?)
- `@storageclass` -> `@keyword.storage`
- `@conditional` -> `@keyword.conditional`
- `@debug` -> `@keyword.debug`
- `@exception` -> `@keyword.exception`
- `@include` -> `@keyword.import`
- `@repeat` -> `@keyword.repeat`
* cleanup
- remove some redundant `@conceal` (but still allow it for conceal-only patterns)
- remove obsolete `@error` (syntax linting is out of scope for this repo)
- sort, cleanup capture list in `CONTRIBUTING.md`
Diffstat (limited to 'queries/clojure')
| -rw-r--r-- | queries/clojure/highlights.scm | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/queries/clojure/highlights.scm b/queries/clojure/highlights.scm index 2d3922adf..d0b0bf0cb 100644 --- a/queries/clojure/highlights.scm +++ b/queries/clojure/highlights.scm @@ -17,14 +17,14 @@ (dis_expr) @comment (#set! "priority" 105) ; Higher priority to mark the whole sexpr as a comment ) -(kwd_lit) @symbol +(kwd_lit) @string.special.symbol (str_lit) @string (num_lit) @number (char_lit) @character (bool_lit) @boolean (nil_lit) @constant.builtin (comment) @comment @spell -(regex_lit) @string.regex +(regex_lit) @string.regexp ["'" "`"] @string.escape @@ -49,13 +49,13 @@ ; Quoted symbols (quoting_lit - (sym_lit) @symbol) + (sym_lit) @string.special.symbol) (syn_quoting_lit - (sym_lit) @symbol) + (sym_lit) @string.special.symbol) ; Used in destructure pattern -((sym_lit) @parameter - (#lua-match? @parameter "^[&]")) +((sym_lit) @variable.parameter + (#lua-match? @variable.parameter "^[&]")) ; Inline function variables ((sym_lit) @variable.builtin @@ -102,19 +102,19 @@ ; Interop ; (.instanceMember instance args*) ; (.instanceMember Classname args*) -((sym_lit) @method - (#lua-match? @method "^%.[^-]")) +((sym_lit) @function.method + (#lua-match? @function.method "^%.[^-]")) ; (.-instanceField instance) -((sym_lit) @field - (#lua-match? @field "^%.%-.*")) +((sym_lit) @variable.member + (#lua-match? @variable.member "^%.%-.*")) ; Classname/staticField -((sym_lit) @field - (#lua-match? @field "^[%u].*/.+")) +((sym_lit) @variable.member + (#lua-match? @variable.member "^[%u].*/.+")) ; (Classname/staticMethod args*) (list_lit . - (sym_lit) @method - (#lua-match? @method "^[%u].*/.+")) + (sym_lit) @function.method + (#lua-match? @function.method "^[%u].*/.+")) ;; TODO: Special casing for the `.` macro ; Operators @@ -145,29 +145,29 @@ (#any-of? @comment "comment")) ; Conditionals -((sym_lit) @conditional - (#any-of? @conditional +((sym_lit) @keyword.conditional + (#any-of? @keyword.conditional "case" "cond" "cond->" "cond->>" "condp")) -((sym_lit) @conditional - (#any-of? @conditional +((sym_lit) @keyword.conditional + (#any-of? @keyword.conditional "if" "if-let" "if-not" "if-some")) -((sym_lit) @conditional - (#any-of? @conditional +((sym_lit) @keyword.conditional + (#any-of? @keyword.conditional "when" "when-first" "when-let" "when-not" "when-some")) ; Repeats -((sym_lit) @repeat - (#any-of? @repeat +((sym_lit) @keyword.repeat + (#any-of? @keyword.repeat "doseq" "dotimes" "for" "loop" "recur" "while")) ; Exception -((sym_lit) @exception - (#any-of? @exception +((sym_lit) @keyword.exception + (#any-of? @keyword.exception "throw" "try" "catch" "finally")) ; Includes -((sym_lit) @include - (#any-of? @include "ns" "import" "require" "use")) +((sym_lit) @keyword.import + (#any-of? @keyword.import "ns" "import" "require" "use")) ; Builtin macros ;; TODO: Do all these items belong here? @@ -350,18 +350,18 @@ ;; TODO: Reproduce bug and file ticket ;. ;[(vec_lit - ; (sym_lit)* @parameter) + ; (sym_lit)* @variable.parameter) ; (list_lit ; (vec_lit - ; (sym_lit)* @parameter))]) + ; (sym_lit)* @variable.parameter))]) ;[((list_lit ; (vec_lit -; (sym_lit) @parameter) +; (sym_lit) @variable.parameter) ; (_) ; + ; ((vec_lit -; (sym_lit) @parameter) +; (sym_lit) @variable.parameter) ; (_))) @@ -378,4 +378,4 @@ (sym_lit) @_include (#eq? @_include "ns") . - (sym_lit) @namespace) + (sym_lit) @module) |
