on master help sign in
Add QML syntax

QML.sublime-syntax file generated from Support/QML.tmLanguage using Sublime's built-in converter. Fix sharkdp/bat#962

commit74ec390770229ee70a3c484b1f534986836b94ad authorpylipp <beth.aleph@yahoo.de> dateWed 29 Apr 2020, 20:57 (7 years ago) parent9014ffc
3 files changed+107
.gitmodules+3 CHANGELOG.md+1 assets/syntaxes/02_Extra/QML.sublime-syntax+103
.gitmodules+3
@@ -185,3 +185,6 @@
185185[submodule "assets/syntaxes/02_Extra/Email"]
186186 path = assets/syntaxes/02_Extra/Email
187187 url = https://github.com/mariozaizar/email.sublime-syntax.git
188+[submodule "assets/syntaxes/02_Extra/QML"]
189+ path = assets/syntaxes/02_Extra/QML
190+ url = https://github.com/skozlovf/Sublime-QML
CHANGELOG.md+1
@@ -7,6 +7,7 @@
77
88- Fortran, see #957
99- Email (@mariozaizar)
10+- QML, see #962 (@pylipp)
1011
1112## New themes
1213## `bat` as a library
assets/syntaxes/02_Extra/QML.sublime-syntaxnew file+103
@@ -0,0 +1,103 @@
1+%YAML 1.2
2+---
3+# http://www.sublimetext.com/docs/3/syntax.html
4+name: QML
5+file_extensions:
6+ - qml
7+ - qmlproject
8+scope: source.qml
9+contexts:
10+ main:
11+ - match: /\*(?!/)
12+ comment: Block comment.
13+ push:
14+ - meta_scope: comment.block.documentation.qml
15+ - match: \*/
16+ pop: true
17+ - match: //.*$
18+ comment: Line comment.
19+ scope: comment.line.double-slash.qml
20+ - match: \b(import)\s+
21+ comment: import statement.
22+ captures:
23+ 1: keyword.other.import.qml
24+ push:
25+ - meta_scope: meta.import.qml
26+ - match: $
27+ pop: true
28+ - match: '([\w\d\.]+)\s+(\d+\.\d+)(?:\s+(as)\s+([A-Z][\w\d]*))?'
29+ comment: "import Namespace VersionMajor.VersionMinor [as SingletonTypeIdentifier]"
30+ scope: meta.import.namespace.qml
31+ captures:
32+ 1: entity.name.class.qml
33+ 2: constant.numeric.qml
34+ 3: keyword.other.import.qml
35+ 4: entity.name.class.qml
36+ - match: '(\"[^\"]+\")(?:\s+(as)\s+([A-Z][\w\d]*))?'
37+ comment: "import <string> [as Script]"
38+ scope: meta.import.dirjs.qml
39+ captures:
40+ 1: string.quoted.double.qml
41+ 2: keyword.other.import.qml
42+ 3: entity.name.class.qml
43+ - match: '\b[A-Z]\w*\b'
44+ comment: Capitalized word (class or enum).
45+ scope: support.class.qml
46+ - match: '(((^|\{)\s*)|\b)on[A-Z]\w*\b'
47+ comment: onSomething - handler.
48+ scope: support.class.qml
49+ - match: '(?:^|\{)\s*(id)\s*\:\s*([^;\s]+)\b'
50+ comment: "id: <something>"
51+ scope: meta.id.qml
52+ captures:
53+ 1: keyword.other.qml
54+ 2: storage.modifier.qml
55+ - match: '^\s*(?:(default|readonly)\s+)?(property)\s+(?:(alias)|([\w\<\>]+))\s+(\w+)'
56+ comment: property definition.
57+ scope: meta.propertydef.qml
58+ captures:
59+ 1: keyword.other.qml
60+ 2: keyword.other.qml
61+ 3: keyword.other.qml
62+ 4: storage.type.qml
63+ 5: entity.other.attribute-name.qml
64+ - match: \b(signal)\s+(\w+)\s*
65+ comment: "signal <signalName>[([<type> <parameter>[, ...]])]"
66+ captures:
67+ 1: keyword.other.qml
68+ 2: support.function.qml
69+ push:
70+ - meta_scope: meta.signal.qml
71+ - match: ;|(?=/)|$
72+ pop: true
73+ - match: (\w+)\s+(\w+)
74+ scope: meta.signal.parameters.qml
75+ captures:
76+ 1: storage.type.qml
77+ 2: variable.parameter.qml
78+ - 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
79+ comment: js keywords.
80+ scope: meta.keyword.qml
81+ captures:
82+ 1: constant.language.qml
83+ 2: storage.type.qml
84+ 3: keyword.control.qml
85+ - match: '\b(function)\s+([\w_]+)\s*(?=\()'
86+ comment: function definition.
87+ scope: meta.function.qml
88+ captures:
89+ 1: storage.type.qml
90+ 2: entity.name.function.untitled
91+ - match: '\b[\w_]+\s*(?=\()'
92+ comment: function call.
93+ scope: support.function.qml
94+ - match: '(?:^|\{|;)\s*[a-z][\w\.]*\s*(?=\:)'
95+ comment: "property (property: <something>)."
96+ scope: entity.other.attribute-name.qml
97+ - match: (?<=\.)\b\w*
98+ comment: property of the variable (name.property).
99+ scope: entity.other.attribute-name.qml
100+ - match: '\b([a-z_]\w*)\b'
101+ comment: All non colored words are assumed to be variables.
102+ scope: variable.parameter
103+ - include: scope:source.js