diff options
author | alois31 | 2022-11-23 03:49:02 +0000 |
---|---|---|
committer | GitHub | 2022-11-23 03:49:02 +0000 |
commit | 26ec1cf39a3c5f548f199918b0a84d614a5c6be7 (patch) | |
tree | 8b0c5cd2f238ae81f66d6ae19dc67b916a17ba3c /runtime | |
parent | 42e37a571e75aaf4feb1717dfebe8cf215e535dd (diff) |
Add QML language support (#4842)
Fixes https://github.com/helix-editor/helix/issues/2771
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/queries/qml/highlights.scm | 90 | ||||
-rw-r--r-- | runtime/queries/qml/indents.scm | 6 | ||||
-rw-r--r-- | runtime/queries/qml/injections.scm | 16 |
3 files changed, 112 insertions, 0 deletions
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")) |