From 26ec1cf39a3c5f548f199918b0a84d614a5c6be7 Mon Sep 17 00:00:00 2001 From: alois31 Date: Wed, 23 Nov 2022 04:49:02 +0100 Subject: Add QML language support (#4842) Fixes https://github.com/helix-editor/helix/issues/2771--- runtime/queries/qml/highlights.scm | 90 ++++++++++++++++++++++++++++++++++++++ runtime/queries/qml/indents.scm | 6 +++ runtime/queries/qml/injections.scm | 16 +++++++ 3 files changed, 112 insertions(+) create mode 100644 runtime/queries/qml/highlights.scm create mode 100644 runtime/queries/qml/indents.scm create mode 100644 runtime/queries/qml/injections.scm (limited to 'runtime') diff --git a/runtime/queries/qml/highlights.scm b/runtime/queries/qml/highlights.scm new file mode 100644 index 00000000..11178fcd --- /dev/null +++ b/runtime/queries/qml/highlights.scm @@ -0,0 +1,90 @@ +(comment) @comment + +(ui_import + source: _ @namespace + version: _? @constant + alias: _? @namespace) + +(ui_pragma + name: (identifier) @attribute + value: (identifier)? @constant) + +(ui_annotation + "@" @punctuation + type_name: _ @type) + +;;; Declarations + +(enum_declaration + name: (identifier) @type) + +(enum_assignment + name: (identifier) @constant + value: _ @constant) + +(enum_body + name: (identifier) @constant) + +(ui_inline_component + name: (identifier) @type) + +(ui_object_definition + type_name: _ @type) + +(ui_object_definition_binding + type_name: _ @type + name: _ @variable.other.member) + +(ui_property + type: _ @type + name: (identifier) @variable.other.member) + +(ui_signal + name: (identifier) @function) + +(ui_signal_parameter + name: (identifier) @variable.parameter + type: _ @type) + +(ui_signal_parameter + type: _ @type + name: (identifier) @variable.parameter);;; Properties and bindings + +;;; Bindings + +(ui_binding + name: _ @variable.other.member) + +;;; Other + +[ + "(" + ")" + "{" + "}" +] @punctuation.bracket + +(ui_list_property_type [ + "<" + ">" +] @punctuation.bracket) + +[ + "," + "." + ":" +] @punctuation.delimiter + +[ + "as" + "component" + "default" + "enum" + "import" + "on" + "pragma" + "property" + "readonly" + "required" + "signal" +] @keyword diff --git a/runtime/queries/qml/indents.scm b/runtime/queries/qml/indents.scm new file mode 100644 index 00000000..07492283 --- /dev/null +++ b/runtime/queries/qml/indents.scm @@ -0,0 +1,6 @@ +[ + (enum_body) + (ui_object_initializer) +] @indent + +"}" @outdent diff --git a/runtime/queries/qml/injections.scm b/runtime/queries/qml/injections.scm new file mode 100644 index 00000000..1ce987d3 --- /dev/null +++ b/runtime/queries/qml/injections.scm @@ -0,0 +1,16 @@ +((comment) @injection.content + (#set! injection.language "comment")) + +([ + (empty_statement) + (expression_statement) + (function_declaration) + (generator_function_declaration) + (statement_block) + (switch_statement) + (try_statement) + (variable_declaration) + (with_statement) + ] @injection.content + (#set! injection.include-children) + (#set! injection.language "javascript")) -- cgit v1.2.3-70-g09d2