Add QML language support (#4842)
Fixes https://github.com/helix-editor/helix/issues/2771
This commit is contained in:
parent
42e37a571e
commit
26ec1cf39a
5 changed files with 126 additions and 0 deletions
|
@ -93,6 +93,7 @@
|
|||
| protobuf | ✓ | | ✓ | |
|
||||
| purescript | ✓ | | | `purescript-language-server` |
|
||||
| python | ✓ | ✓ | ✓ | `pylsp` |
|
||||
| qml | ✓ | | ✓ | `qmlls` |
|
||||
| r | ✓ | | | `R` |
|
||||
| racket | | | | `racket` |
|
||||
| regex | ✓ | | | |
|
||||
|
|
|
@ -1980,3 +1980,16 @@ language-server = { command = "bicep-langserver" }
|
|||
[[grammar]]
|
||||
name = "bicep"
|
||||
source = { git = "https://github.com/the-mikedavis/tree-sitter-bicep", rev = "d8e097fcfa143854861ef737161163a09cc2916b" }
|
||||
|
||||
[[language]]
|
||||
name = "qml"
|
||||
scope = "source.qml"
|
||||
file-types = ["qml"]
|
||||
roots = []
|
||||
language-server = { command = "qmlls" }
|
||||
indent = { tab-width = 4, unit = " " }
|
||||
grammar = "qmljs"
|
||||
|
||||
[[grammar]]
|
||||
name = "qmljs"
|
||||
source = { git = "https://github.com/yuja/tree-sitter-qmljs", rev = "0b2b25bcaa7d4925d5f0dda16f6a99c588a437f1" }
|
||||
|
|
90
runtime/queries/qml/highlights.scm
Normal file
90
runtime/queries/qml/highlights.scm
Normal file
|
@ -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
|
6
runtime/queries/qml/indents.scm
Normal file
6
runtime/queries/qml/indents.scm
Normal file
|
@ -0,0 +1,6 @@
|
|||
[
|
||||
(enum_body)
|
||||
(ui_object_initializer)
|
||||
] @indent
|
||||
|
||||
"}" @outdent
|
16
runtime/queries/qml/injections.scm
Normal file
16
runtime/queries/qml/injections.scm
Normal file
|
@ -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"))
|
Loading…
Add table
Reference in a new issue