mirror of
https://github.com/nvim-treesitter/nvim-treesitter.git
synced 2026-07-08 06:20:01 -04:00
Merge pull request #296 from steelsojka/feat-is-predicate
feat(highlights): add is predicate
This commit is contained in:
commit
4a747aa30c
16 changed files with 102 additions and 39 deletions
|
|
@ -1,4 +1,4 @@
|
|||
[
|
||||
[
|
||||
"const"
|
||||
"default"
|
||||
"enum"
|
||||
|
|
@ -131,8 +131,10 @@
|
|||
(comment) @comment
|
||||
|
||||
;; Parameters
|
||||
(parameter_list
|
||||
(parameter_declaration) @parameter)
|
||||
(parameter_declaration
|
||||
declarator: (identifier) @parameter)
|
||||
((identifier) @parameter.reference
|
||||
(#is? @parameter.reference parameter))
|
||||
|
||||
(preproc_params
|
||||
(identifier)) @parameter
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
(pointer_declarator
|
||||
declarator: (identifier) @definition.var)
|
||||
(parameter_declaration
|
||||
declarator: (identifier) @definition.var)
|
||||
declarator: (identifier) @definition.parameter)
|
||||
(init_declarator
|
||||
declarator: (identifier) @definition.var)
|
||||
(array_declarator
|
||||
|
|
|
|||
|
|
@ -8,7 +8,12 @@
|
|||
(#match? @field "_$"))
|
||||
|
||||
; function(Foo ...foo)
|
||||
(variadic_parameter_declaration) @parameter
|
||||
(variadic_parameter_declaration
|
||||
declarator: (variadic_declarator
|
||||
(identifier) @parameter))
|
||||
; int foo = 0
|
||||
(optional_parameter_declaration
|
||||
declarator: (identifier) @parameter)
|
||||
|
||||
;(field_expression) @parameter ;; How to highlight this?
|
||||
(template_function
|
||||
|
|
@ -42,20 +47,20 @@
|
|||
(#match? @constructor "^[A-Z]"))
|
||||
|
||||
(call_expression
|
||||
function: (scoped_identifier
|
||||
function: (scoped_identifier
|
||||
name: (identifier) @function))
|
||||
|
||||
(call_expression
|
||||
function: (field_expression
|
||||
function: (field_expression
|
||||
field: (field_identifier) @function))
|
||||
|
||||
((call_expression
|
||||
function: (scoped_identifier
|
||||
function: (scoped_identifier
|
||||
name: (identifier) @constructor))
|
||||
(#match? @constructor "^[A-Z]"))
|
||||
|
||||
((call_expression
|
||||
function: (field_expression
|
||||
function: (field_expression
|
||||
field: (field_identifier) @constructor))
|
||||
(#match? @constructor "^[A-Z]"))
|
||||
|
||||
|
|
|
|||
|
|
@ -1,3 +1,9 @@
|
|||
;; Parameters
|
||||
(variadic_parameter_declaration
|
||||
declarator: (variadic_declarator
|
||||
(identifier) @definition.parameter))
|
||||
(optional_parameter_declaration
|
||||
declarator: (identifier) @definition.parameter)
|
||||
|
||||
;; Class / struct defintions
|
||||
(class_specifier) @scope
|
||||
|
|
@ -10,14 +16,14 @@
|
|||
(identifier) @definition.var)
|
||||
|
||||
(struct_specifier
|
||||
name: (type_identifier) @definition.type)
|
||||
name: (type_identifier) @definition.type)
|
||||
|
||||
(struct_specifier
|
||||
name: (scoped_type_identifier
|
||||
name: (type_identifier) @definition.type))
|
||||
|
||||
(class_specifier
|
||||
name: (type_identifier) @definition.type)
|
||||
name: (type_identifier) @definition.type)
|
||||
|
||||
(class_specifier
|
||||
name: (scoped_type_identifier
|
||||
|
|
@ -32,7 +38,7 @@
|
|||
(template_declaration) @scope
|
||||
|
||||
;; Namespaces
|
||||
(namespace_definition
|
||||
(namespace_definition
|
||||
name: (identifier) @definition.namespace
|
||||
body: (_) @scope)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,17 @@
|
|||
; Types
|
||||
|
||||
; Javascript
|
||||
|
||||
; Properties
|
||||
;-----------
|
||||
|
||||
(property_identifier) @property
|
||||
|
||||
; Special identifiers
|
||||
;--------------------
|
||||
|
||||
(identifier) @variable
|
||||
|
||||
((identifier) @constant
|
||||
(#match? @constant "^[A-Z_][A-Z\\d_]+$"))
|
||||
|
||||
|
|
@ -14,11 +22,17 @@
|
|||
(#match? @constructor "^[A-Z]"))
|
||||
|
||||
((identifier) @variable.builtin
|
||||
(#not-is? @variable.builtin import var parameter)
|
||||
(#match? @variable.builtin "^(arguments|module|console|window|document)$"))
|
||||
|
||||
((identifier) @function.builtin
|
||||
(#not-is? @function.builtin import var parameter)
|
||||
(#eq? @function.builtin "require"))
|
||||
|
||||
((identifier) @parameter.reference
|
||||
(#is? @parameter.reference parameter))
|
||||
|
||||
|
||||
; Function and method definitions
|
||||
;--------------------------------
|
||||
|
||||
|
|
@ -78,13 +92,6 @@
|
|||
(rest_parameter
|
||||
(identifier) @parameter))
|
||||
|
||||
(identifier) @variable
|
||||
|
||||
; Properties
|
||||
;-----------
|
||||
|
||||
(property_identifier) @property
|
||||
|
||||
; Literals
|
||||
;---------
|
||||
|
||||
|
|
|
|||
|
|
@ -14,28 +14,28 @@
|
|||
;------------
|
||||
|
||||
(formal_parameters
|
||||
(identifier) @definition.var)
|
||||
(identifier) @definition.parameter)
|
||||
|
||||
(formal_parameters
|
||||
(object_pattern
|
||||
(identifier) @definition.var))
|
||||
(identifier) @definition.parameter))
|
||||
|
||||
; function(arg = []) {
|
||||
(formal_parameters
|
||||
(assignment_pattern
|
||||
(shorthand_property_identifier) @definition.var))
|
||||
(shorthand_property_identifier) @definition.parameter))
|
||||
|
||||
(formal_parameters
|
||||
(object_pattern
|
||||
(shorthand_property_identifier) @definition.var))
|
||||
(shorthand_property_identifier) @definition.parameter))
|
||||
|
||||
(formal_parameters
|
||||
(array_pattern
|
||||
(identifier) @definition.var))
|
||||
(identifier) @definition.parameter))
|
||||
|
||||
(formal_parameters
|
||||
(rest_parameter
|
||||
(identifier) @definition.var))
|
||||
(identifier) @definition.parameter))
|
||||
|
||||
(variable_declarator
|
||||
name: (identifier) @definition.var)
|
||||
|
|
|
|||
|
|
@ -93,5 +93,8 @@
|
|||
(number) @number
|
||||
(label_statement) @label
|
||||
|
||||
((identifier) @parameter.reference
|
||||
(#is? @parameter.reference parameter))
|
||||
|
||||
;; Error
|
||||
(ERROR) @error
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
(field_expression object:(*) @definition.associated (property_identifier) @definition.var)))
|
||||
|
||||
;; Parameters
|
||||
(parameters (identifier) @definition.var)
|
||||
(parameters (identifier) @definition.parameter)
|
||||
|
||||
;; Loops
|
||||
((loop_expression
|
||||
|
|
|
|||
|
|
@ -80,6 +80,8 @@
|
|||
; Normal parameters
|
||||
(parameters
|
||||
(identifier) @parameter)
|
||||
((identifier) @parameter.reference
|
||||
(#is? @parameter.reference parameter))
|
||||
; Lambda parameters
|
||||
(lambda_parameters
|
||||
(identifier) @parameter)
|
||||
|
|
|
|||
|
|
@ -18,16 +18,16 @@
|
|||
|
||||
; Function with parameters, defines parameters
|
||||
(parameters
|
||||
(identifier) @definition.var)
|
||||
(identifier) @definition.parameter)
|
||||
|
||||
(default_parameter
|
||||
(identifier) @definition.var)
|
||||
(identifier) @definition.parameter)
|
||||
|
||||
(typed_parameter
|
||||
(identifier) @definition.var)
|
||||
(identifier) @definition.parameter)
|
||||
|
||||
(typed_default_parameter
|
||||
(identifier) @definition.var)
|
||||
(identifier) @definition.parameter)
|
||||
|
||||
(with_statement
|
||||
(with_item
|
||||
|
|
@ -36,12 +36,12 @@
|
|||
; *args parameter
|
||||
(parameters
|
||||
(list_splat
|
||||
(identifier) @definition.var))
|
||||
(identifier) @definition.parameter))
|
||||
|
||||
; **kwargs parameter
|
||||
(parameters
|
||||
(dictionary_splat
|
||||
(identifier) @definition.var))
|
||||
(identifier) @definition.parameter))
|
||||
|
||||
; Function defines function and scope
|
||||
(function_definition
|
||||
|
|
@ -52,10 +52,10 @@
|
|||
(class_definition
|
||||
name: (identifier) @definition.type) @scope
|
||||
|
||||
(class_definition
|
||||
(class_definition
|
||||
body: (block
|
||||
(function_definition
|
||||
name: (identifier) @definition.method)))
|
||||
name: (identifier) @definition.method)))
|
||||
|
||||
;;; Loops
|
||||
; not a scope!
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue