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