summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJán Priner <johnkie4@gmail.com>2020-10-20 19:32:14 +0200
committerJán Priner <johnkie4@gmail.com>2020-10-20 19:32:14 +0200
commitfc1f37d3df86616d8a99d70dc5d05fb637417915 (patch)
tree7990c08c4acb9bd865b6d8778eca12982deecc5c
parenta3f037773a9ba9dfa21675bc745965864cac9ee8 (diff)
Add Ninja syntax highlighting
-rw-r--r--.gitmodules3
m---------assets/syntaxes/02_Extra/Ninja0
-rw-r--r--assets/syntaxes/02_Extra/Ninja.sublime-syntax52
3 files changed, 55 insertions, 0 deletions
diff --git a/.gitmodules b/.gitmodules
index 1d94f27e..e00573c6 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -197,3 +197,6 @@
[submodule "assets/syntaxes/02_Extra/Apache"]
path = assets/syntaxes/02_Extra/Apache
url = https://github.com/colinta/ApacheConf.tmLanguage
+[submodule "assets/syntaxes/02_Extra/Ninja"]
+ path = assets/syntaxes/02_Extra/Ninja
+ url = https://github.com/pope/SublimeNinja.git
diff --git a/assets/syntaxes/02_Extra/Ninja b/assets/syntaxes/02_Extra/Ninja
new file mode 160000
+Subproject 25830aaec9316b7fca6600000535214164525d7
diff --git a/assets/syntaxes/02_Extra/Ninja.sublime-syntax b/assets/syntaxes/02_Extra/Ninja.sublime-syntax
new file mode 100644
index 00000000..e86a522e
--- /dev/null
+++ b/assets/syntaxes/02_Extra/Ninja.sublime-syntax
@@ -0,0 +1,52 @@
+%YAML 1.2
+---
+# http://www.sublimetext.com/docs/3/syntax.html
+name: Ninja
+file_extensions:
+ - ninja
+scope: source.ninja
+contexts:
+ main:
+ - match: (#).*$\n?
+ comment: Comment line.
+ scope: comment.line.number-sign.ninja
+ captures:
+ 1: punctuation.definition.comment.ninja
+ - match: ^(rule)\b
+ comment: Rule keyword and keywords for a rule.
+ captures:
+ 1: keyword.other.ninja
+ push:
+ - match: ^(?=\S)
+ pop: true
+ - include: main
+ - match: \b(?:command|deps|depfile|description|generator|pool|restat|rspfile|rspfile_content)\b
+ scope: keyword.other.ninja
+ - match: ^(pool)\b
+ comment: Pool keyword and keywords for a pool.
+ captures:
+ 1: keyword.other.ninja
+ push:
+ - match: ^(?=\S)
+ pop: true
+ - include: main
+ - match: \b(?:depth)\b
+ scope: keyword.other.ninja
+ - match: ^(?:build|rule|default|include|subninja)\b
+ comment: Other Keywords.
+ scope: keyword.other.ninja
+ - match: '(?:[=:]|\|{1,2})(?=\s)'
+ comment: Operators for variable assignment (=), rule definition (:), implicit (|) and order only (||) dependencies.
+ scope: keyword.operator.ninja
+ - match: \$$
+ comment: Line wrap.
+ scope: keyword.operator.ninja
+ - match: \$\$
+ comment: Dollar literal.
+ scope: keyword.operator.ninja
+ - match: '\$[[:alnum:]_-]+'
+ comment: Simple variables, e.g. $var.
+ scope: variable.other.ninja
+ - match: '\${[[:alnum:]_.-]+}'
+ comment: "Variables, e.g. ${some.var.name}."
+ scope: variable.other.ninja