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/solidity | |
| 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/solidity')
| -rw-r--r-- | queries/solidity/highlights.scm | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/queries/solidity/highlights.scm b/queries/solidity/highlights.scm index f537cfab2..70ad31a1b 100644 --- a/queries/solidity/highlights.scm +++ b/queries/solidity/highlights.scm @@ -3,16 +3,16 @@ [ "pragma" "solidity" -] @preproc +] @keyword.directive (solidity_pragma_token - "||" @symbol) + "||" @string.special.symbol) (solidity_pragma_token - "-" @symbol) + "-" @string.special.symbol) (solidity_version_comparison_operator) @operator -(solidity_version) @text.underline @string.special +(solidity_version) @string.special ; Literals @@ -22,11 +22,11 @@ ] @string (hex_string_literal - "hex" @symbol + "hex" @string.special.symbol (_) @string) (unicode_string_literal - "unicode" @symbol + "unicode" @string.special.symbol (_) @string) [ @@ -57,7 +57,7 @@ (contract_declaration name: (identifier) @type) (struct_declaration name: (identifier) @type) -(struct_member name: (identifier) @field) +(struct_member name: (identifier) @variable.member) (enum_declaration name: (identifier) @type) (emit_statement . (identifier) @type) ; Handles ContractA, ContractB in function foo() override(ContractA, contractB) {} @@ -77,26 +77,26 @@ (modifier_invocation (identifier) @function) ; Handles expressions like structVariable.g(); -(call_expression . (member_expression (identifier) @method.call)) +(call_expression . (member_expression (identifier) @function.method.call)) ; Handles expressions like g(); (call_expression . (identifier) @function.call) ; Function parameters -(event_paramater name: (identifier) @parameter) -(parameter name: (identifier) @parameter) +(event_paramater name: (identifier) @variable.parameter) +(parameter name: (identifier) @variable.parameter) ; Yul functions (yul_function_call function: (yul_identifier) @function.call) ; Yul function parameters -(yul_function_definition . (yul_identifier) @function (yul_identifier) @parameter) +(yul_function_definition . (yul_identifier) @function (yul_identifier) @variable.parameter) (meta_type_expression "type" @keyword) -(member_expression property: (identifier) @field) -(call_struct_argument name: (identifier) @field) -(struct_field_assignment name: (identifier) @field) +(member_expression property: (identifier) @variable.member) +(call_struct_argument name: (identifier) @variable.member) +(struct_field_assignment name: (identifier) @variable.member) (enum_value) @constant ; Keywords @@ -143,7 +143,7 @@ "storage" "calldata" "constant" -] @storageclass +] @keyword.storage [ "for" @@ -151,7 +151,7 @@ "do" "break" "continue" -] @repeat +] @keyword.repeat [ "if" @@ -159,17 +159,17 @@ "switch" "case" "default" -] @conditional +] @keyword.conditional (ternary_expression - "?" @conditional.ternary - ":" @conditional.ternary) + "?" @keyword.conditional.ternary + ":" @keyword.conditional.ternary) [ "try" "catch" "revert" -] @exception +] @keyword.exception [ "return" @@ -182,11 +182,11 @@ [ "import" "using" -] @include -(import_directive "as" @include) -(import_directive "from" @include) -((import_directive source: (string) @text.underline) - (#offset! @text.underline 0 1 0 -1)) +] @keyword.import +(import_directive "as" @keyword.import) +(import_directive "from" @keyword.import) +((import_directive source: (string) @string.special.path) + (#offset! @string.special.path 0 1 0 -1)) ; Punctuation |
