aboutsummaryrefslogtreecommitdiffstats
path: root/queries/javascript
diff options
context:
space:
mode:
authorSteven Sojka <steelsojka@gmail.com>2020-06-12 07:41:20 -0500
committerSteven Sojka <steelsojka@gmail.com>2020-06-14 13:41:23 -0500
commitac8ae3b1c7b5644f8317cdc88d604cdb558b6296 (patch)
tree1ab0212656225f8746ed947df5747d7b1c9d6817 /queries/javascript
parentMerge pull request #77 from TravonteD/76-syntax-update (diff)
downloadnvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.tar
nvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.tar.gz
nvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.tar.bz2
nvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.tar.lz
nvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.tar.xz
nvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.tar.zst
nvim-treesitter-ac8ae3b1c7b5644f8317cdc88d604cdb558b6296.zip
feat(queries): add typescript and javascript queries
Diffstat (limited to 'queries/javascript')
-rw-r--r--queries/javascript/highlights.scm190
-rw-r--r--queries/javascript/locals.scm35
2 files changed, 225 insertions, 0 deletions
diff --git a/queries/javascript/highlights.scm b/queries/javascript/highlights.scm
new file mode 100644
index 000000000..da88d85d0
--- /dev/null
+++ b/queries/javascript/highlights.scm
@@ -0,0 +1,190 @@
+; Types
+
+; Javascript
+; Special identifiers
+;--------------------
+
+((identifier) @constant
+ (#match? @constant "^[A-Z_][A-Z\\d_]+$"))
+
+((shorthand_property_identifier) @constant
+ (#match? @constant "^[A-Z_][A-Z\\d_]+$"))
+
+((identifier) @constructor
+ (#match? @constructor "^[A-Z]"))
+
+((identifier) @variable.builtin
+ (#match? @variable.builtin "^(arguments|module|console|window|document)$"))
+
+((identifier) @function.builtin
+ (#eq? @function.builtin "require"))
+
+; Function and method definitions
+;--------------------------------
+
+(function
+ name: (identifier) @function)
+(function_declaration
+ name: (identifier) @function)
+(method_definition
+ name: (property_identifier) @function.method)
+
+(pair
+ key: (property_identifier) @function.method
+ value: (function))
+(pair
+ key: (property_identifier) @function.method
+ value: (arrow_function))
+
+(assignment_expression
+ left: (member_expression
+ property: (property_identifier) @function.method)
+ right: (arrow_function))
+(assignment_expression
+ left: (member_expression
+ property: (property_identifier) @function.method)
+ right: (function))
+
+(variable_declarator
+ name: (identifier) @function
+ value: (arrow_function))
+(variable_declarator
+ name: (identifier) @function
+ value: (function))
+
+(assignment_expression
+ left: (identifier) @function
+ right: (arrow_function))
+(assignment_expression
+ left: (identifier) @function
+ right: (function))
+
+; Function and method calls
+;--------------------------
+
+(call_expression
+ function: (identifier) @function)
+
+(call_expression
+ function: (member_expression
+ property: (property_identifier) @function.method))
+
+; Variables
+;----------
+
+(formal_parameters (identifier) @variable.parameter)
+
+(identifier) @variable
+
+; Properties
+;-----------
+
+(property_identifier) @property
+
+; Literals
+;---------
+
+(this) @variable.builtin
+(super) @variable.builtin
+
+(true) @constant.builtin
+(false) @constant.builtin
+(null) @constant.builtin
+(comment) @comment
+(string) @string
+(regex) @string.special
+(template_string) @string
+(number) @number
+
+; Punctuation
+;------------
+
+(template_substitution
+ "${" @punctuation.special
+ "}" @punctuation.special) @embedded
+
+";" @punctuation.delimiter
+"." @punctuation.delimiter
+"," @punctuation.delimiter
+
+"--" @operator
+"-" @operator
+"-=" @operator
+"&&" @operator
+"+" @operator
+"++" @operator
+"+=" @operator
+"<" @operator
+"<<" @operator
+"=" @operator
+"==" @operator
+"===" @operator
+"=>" @operator
+">" @operator
+">>" @operator
+"||" @operator
+"??" @operator
+
+"(" @punctuation.bracket
+")" @punctuation.bracket
+"[" @punctuation.bracket
+"]" @punctuation.bracket
+"{" @punctuation.bracket
+"}" @punctuation.bracket
+
+; Keywords
+;----------
+
+[
+"if"
+"else"
+"switch"
+"case"
+"default"
+] @conditional
+
+[
+"import"
+"from"
+"as"
+] @include
+
+[
+"for"
+"of"
+"do"
+"while"
+"continue"
+] @repeat
+
+[
+"async"
+"await"
+"break"
+"catch"
+"class"
+"const"
+"debugger"
+"delete"
+"export"
+"extends"
+"finally"
+"function"
+"get"
+"in"
+"instanceof"
+"let"
+"new"
+"return"
+"set"
+"static"
+"switch"
+"target"
+"throw"
+"try"
+"typeof"
+"var"
+"void"
+"with"
+"yield"
+] @keyword
diff --git a/queries/javascript/locals.scm b/queries/javascript/locals.scm
new file mode 100644
index 000000000..165adfed9
--- /dev/null
+++ b/queries/javascript/locals.scm
@@ -0,0 +1,35 @@
+; Scopes
+;-------
+
+(statement_block) @scope
+(function) @scope
+(arrow_function) @scope
+(function_declaration) @scope
+(method_definition) @scope
+
+; Definitions
+;------------
+
+(formal_parameters
+ (identifier) @definition)
+
+(formal_parameters
+ (object_pattern
+ (identifier) @definition))
+
+(formal_parameters
+ (object_pattern
+ (shorthand_property_identifier) @definition))
+
+(formal_parameters
+ (array_pattern
+ (identifier) @definition))
+
+(variable_declarator
+ name: (identifier) @definition)
+
+; References
+;------------
+
+(identifier) @reference
+