mirror of
https://github.com/sharkdp/bat.git
synced 2024-11-01 12:31:01 +01:00
104 lines
3.5 KiB
Plaintext
104 lines
3.5 KiB
Plaintext
|
%YAML 1.2
|
||
|
---
|
||
|
# http://www.sublimetext.com/docs/3/syntax.html
|
||
|
name: QML
|
||
|
file_extensions:
|
||
|
- qml
|
||
|
- qmlproject
|
||
|
scope: source.qml
|
||
|
contexts:
|
||
|
main:
|
||
|
- match: /\*(?!/)
|
||
|
comment: Block comment.
|
||
|
push:
|
||
|
- meta_scope: comment.block.documentation.qml
|
||
|
- match: \*/
|
||
|
pop: true
|
||
|
- match: //.*$
|
||
|
comment: Line comment.
|
||
|
scope: comment.line.double-slash.qml
|
||
|
- match: \b(import)\s+
|
||
|
comment: import statement.
|
||
|
captures:
|
||
|
1: keyword.other.import.qml
|
||
|
push:
|
||
|
- meta_scope: meta.import.qml
|
||
|
- match: $
|
||
|
pop: true
|
||
|
- match: '([\w\d\.]+)\s+(\d+\.\d+)(?:\s+(as)\s+([A-Z][\w\d]*))?'
|
||
|
comment: "import Namespace VersionMajor.VersionMinor [as SingletonTypeIdentifier]"
|
||
|
scope: meta.import.namespace.qml
|
||
|
captures:
|
||
|
1: entity.name.class.qml
|
||
|
2: constant.numeric.qml
|
||
|
3: keyword.other.import.qml
|
||
|
4: entity.name.class.qml
|
||
|
- match: '(\"[^\"]+\")(?:\s+(as)\s+([A-Z][\w\d]*))?'
|
||
|
comment: "import <string> [as Script]"
|
||
|
scope: meta.import.dirjs.qml
|
||
|
captures:
|
||
|
1: string.quoted.double.qml
|
||
|
2: keyword.other.import.qml
|
||
|
3: entity.name.class.qml
|
||
|
- match: '\b[A-Z]\w*\b'
|
||
|
comment: Capitalized word (class or enum).
|
||
|
scope: support.class.qml
|
||
|
- match: '(((^|\{)\s*)|\b)on[A-Z]\w*\b'
|
||
|
comment: onSomething - handler.
|
||
|
scope: support.class.qml
|
||
|
- match: '(?:^|\{)\s*(id)\s*\:\s*([^;\s]+)\b'
|
||
|
comment: "id: <something>"
|
||
|
scope: meta.id.qml
|
||
|
captures:
|
||
|
1: keyword.other.qml
|
||
|
2: storage.modifier.qml
|
||
|
- match: '^\s*(?:(default|readonly)\s+)?(property)\s+(?:(alias)|([\w\<\>]+))\s+(\w+)'
|
||
|
comment: property definition.
|
||
|
scope: meta.propertydef.qml
|
||
|
captures:
|
||
|
1: keyword.other.qml
|
||
|
2: keyword.other.qml
|
||
|
3: keyword.other.qml
|
||
|
4: storage.type.qml
|
||
|
5: entity.other.attribute-name.qml
|
||
|
- match: \b(signal)\s+(\w+)\s*
|
||
|
comment: "signal <signalName>[([<type> <parameter>[, ...]])]"
|
||
|
captures:
|
||
|
1: keyword.other.qml
|
||
|
2: support.function.qml
|
||
|
push:
|
||
|
- meta_scope: meta.signal.qml
|
||
|
- match: ;|(?=/)|$
|
||
|
pop: true
|
||
|
- match: (\w+)\s+(\w+)
|
||
|
scope: meta.signal.parameters.qml
|
||
|
captures:
|
||
|
1: storage.type.qml
|
||
|
2: variable.parameter.qml
|
||
|
- match: (?:\b|\s+)(?:(true|false|null|undefined)|(var|void)|(on|as|enum|connect|break|case|catch|continue|debugger|default|delete|do|else|finally|for|if|in|instanceof|new|return|switch|this|throw|try|typeof|while|with))\b
|
||
|
comment: js keywords.
|
||
|
scope: meta.keyword.qml
|
||
|
captures:
|
||
|
1: constant.language.qml
|
||
|
2: storage.type.qml
|
||
|
3: keyword.control.qml
|
||
|
- match: '\b(function)\s+([\w_]+)\s*(?=\()'
|
||
|
comment: function definition.
|
||
|
scope: meta.function.qml
|
||
|
captures:
|
||
|
1: storage.type.qml
|
||
|
2: entity.name.function.untitled
|
||
|
- match: '\b[\w_]+\s*(?=\()'
|
||
|
comment: function call.
|
||
|
scope: support.function.qml
|
||
|
- match: '(?:^|\{|;)\s*[a-z][\w\.]*\s*(?=\:)'
|
||
|
comment: "property (property: <something>)."
|
||
|
scope: entity.other.attribute-name.qml
|
||
|
- match: (?<=\.)\b\w*
|
||
|
comment: property of the variable (name.property).
|
||
|
scope: entity.other.attribute-name.qml
|
||
|
- match: '\b([a-z_]\w*)\b'
|
||
|
comment: All non colored words are assumed to be variables.
|
||
|
scope: variable.parameter
|
||
|
- include: scope:source.js
|