on master help sign in
Add Graphviz Dot lang support (#3241)
919edfbErasin
book/src/generated/lang-support.md+1
@@ -13,6 +13,7 @@
13| dart | ✓ | | ✓ | `dart` |
13| dart | ✓ | | ✓ | `dart` |
14| devicetree | ✓ | | ✓ | |
14| devicetree | ✓ | | ✓ | |
15| dockerfile | ✓ | | | `docker-langserver` |
15| dockerfile | ✓ | | | `docker-langserver` |
16+| dot | ✓ | | | `dot-language-server` |
16| edoc | ✓ | | | |
17| edoc | ✓ | | | |
17| eex | ✓ | | | |
18| eex | ✓ | | | |
18| ejs | ✓ | | | |
19| ejs | ✓ | | | |
languages.toml+14
@@ -1570,3 +1570,17 @@ indent = { tab-width = 2, unit = " " }
1570[[grammar]]
1570[[grammar]]
1571name = "ungrammar"
1571name = "ungrammar"
1572source = { git = "https://github.com/Philipp-M/tree-sitter-ungrammar", rev = "0113de880a58ea14f2a75802e9b99fcc25003d9c" }
1572source = { git = "https://github.com/Philipp-M/tree-sitter-ungrammar", rev = "0113de880a58ea14f2a75802e9b99fcc25003d9c" }
1573+
1574+[[language]]
1575+name = "dot"
1576+scope = "source.dot"
1577+injection-regex = "dot"
1578+file-types = ["dot"]
1579+roots = []
1580+comment-token = "//"
1581+indent = { tab-width = 4, unit = " " }
1582+language-server = { command = "dot-language-server", args = ["--stdio"] }
1583+
1584+[[grammar]]
1585+name = "dot"
1586+source = { git = "https://github.com/rydesun/tree-sitter-dot", rev = "917230743aa10f45a408fea2ddb54bbbf5fbe7b7" }
runtime/queries/dot/highlights.scmnew file+43
@@ -0,0 +1,43 @@
1+(keyword) @keyword
2+(string_literal) @string
3+(number_literal) @constant.numeric
4+
5+[
6+ (edgeop)
7+ (operator)
8+] @operator
9+
10+[
11+ ","
12+ ";"
13+] @punctuation.delimiter
14+
15+[
16+ "{"
17+ "}"
18+ "["
19+ "]"
20+ "<"
21+ ">"
22+] @punctuation.bracket
23+
24+(subgraph
25+ id: (id
26+ (identifier) @namespace)
27+)
28+
29+(attribute
30+ name: (id
31+ (identifier) @type)
32+ value: (id
33+ (identifier) @constant)
34+)
35+
36+[
37+ (comment)
38+ (preproc)
39+] @comment
40+
41+(ERROR) @error
42+
43+(identifier) @variable
runtime/queries/dot/injections.scmnew file+2
@@ -0,0 +1,2 @@
1+((html_internal) @injection.content
2+ (#set! injection.language "html"))