From 4b5966c81afffd3ee16e05c7df5ade1d057bbb97 Mon Sep 17 00:00:00 2001 From: Access Date: Thu, 7 Jul 2022 22:33:47 +0800 Subject: add qmljs (#3126) --- queries/qmljs/highlights.scm | 133 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 queries/qmljs/highlights.scm (limited to 'queries/qmljs') diff --git a/queries/qmljs/highlights.scm b/queries/qmljs/highlights.scm new file mode 100644 index 00000000..cfaeeeda --- /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: 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 + -- cgit v1.2.3