aboutsummaryrefslogtreecommitdiffstats
path: root/queries/qmljs
diff options
context:
space:
mode:
authorAccess <ShootingStarDragons@protonmail.com>2022-07-07 22:33:47 +0800
committerGitHub <noreply@github.com>2022-07-07 16:33:47 +0200
commit4b5966c81afffd3ee16e05c7df5ade1d057bbb97 (patch)
tree9e86e0cfb8fd26653ca0151f7e164735768e09a3 /queries/qmljs
parentUpdate lockfile.json (diff)
downloadnvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.tar
nvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.tar.gz
nvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.tar.bz2
nvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.tar.lz
nvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.tar.xz
nvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.tar.zst
nvim-treesitter-4b5966c81afffd3ee16e05c7df5ade1d057bbb97.zip
add qmljs (#3126)
Diffstat (limited to 'queries/qmljs')
-rw-r--r--queries/qmljs/highlights.scm133
1 files changed, 133 insertions, 0 deletions
diff --git a/queries/qmljs/highlights.scm b/queries/qmljs/highlights.scm
new file mode 100644
index 000000000..cfaeeedaa
--- /dev/null
+++ b/queries/qmljs/highlights.scm
@@ -0,0 +1,133 @@
+; inherits: ecma
+
+;;; Annotations
+
+(ui_annotation
+ "@" @operator
+ type_name: [
+ (identifier) @attribute
+ (nested_identifier (identifier) @attribute)
+ ])
+
+;; type
+(ui_property
+ type: (type_identifier) @type)
+
+;;; Properties
+
+(ui_object_definition_binding
+ name: [
+ (identifier) @property
+ (nested_identifier (identifier) @property)
+ ])
+
+(ui_binding
+ name: [
+ (identifier) @property
+ (nested_identifier (identifier) @property)
+ ])
+
+;; locals query appears not working unless id: <ref> isn't a parameter.
+(ui_binding
+ name: (identifier) @property
+ (#eq? @property "id")
+ value: (expression_statement (identifier) @variable))
+
+(ui_property
+ name: (identifier) @property)
+
+(ui_required
+ name: (identifier) @property)
+
+(ui_list_property_type
+ ["<" ">"] @punctuation.bracket)
+
+;;; Signals
+
+(ui_signal
+ name: (identifier) @function)
+
+(ui_signal_parameter
+ (identifier) @variable)
+
+;;; ui_object_definition
+(ui_object_definition
+ type_name: (identifier) @type)
+(ui_object_definition
+ type_name: (nested_identifier) @type)
+
+
+;;; js
+
+; Properties
+;-----------
+
+(property_identifier) @property
+
+; Literals
+;---------
+
+[
+ (true)
+ (false)
+ (null)
+ (undefined)
+] @constant.builtin
+
+(comment) @comment
+
+[
+ (string)
+ (template_string)
+] @string
+
+(regex) @string.special
+(number) @number
+
+; Tokens
+;-------
+
+
+
+;;; keywrod in qml
+[
+ "required"
+ "property"
+ "signal"
+] @keyword
+
+; from typescript
+
+(type_identifier) @type
+(predefined_type) @type.builtin
+
+((identifier) @type
+ (#match? @type "^[A-Z]"))
+
+(type_arguments
+ "<" @punctuation.bracket
+ ">" @punctuation.bracket)
+
+; Variables
+
+(required_parameter (identifier) @variable)
+(optional_parameter (identifier) @variable)
+
+; Keywords
+
+[ "abstract"
+ "declare"
+ "enum"
+ "export"
+ "implements"
+ "interface"
+ "keyof"
+ "namespace"
+ "private"
+ "protected"
+ "public"
+ "type"
+ "readonly"
+ "override"
+] @keyword
+