aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael2023-04-12 20:28:51 +0000
committerGitHub2023-04-12 20:28:51 +0000
commit161fef2166e851071176e2fdaa9455efb5af0a6d (patch)
tree392a1241085ff5402bdb321bfbdbffc592b3c0d3
parentfff8543b5809766608be14ee1a45f8b86f5a3de2 (diff)
Add DTD language support (#6644)
- Added syntax highlighting for the DTD subset of the XML spec. - Included .dtd and .ent as common file extensions
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml20
-rw-r--r--runtime/queries/dtd/highlights.scm39
-rw-r--r--runtime/queries/dtd/injections.scm2
4 files changed, 62 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index b458bd6f..e434961b 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -28,6 +28,7 @@
| diff | ✓ | | | |
| dockerfile | ✓ | | | `docker-langserver` |
| dot | ✓ | | | `dot-language-server` |
+| dtd | ✓ | | | |
| edoc | ✓ | | | |
| eex | ✓ | | | |
| ejs | ✓ | | | |
diff --git a/languages.toml b/languages.toml
index 86688137..c497e296 100644
--- a/languages.toml
+++ b/languages.toml
@@ -2099,6 +2099,26 @@ roots = []
name = "xml"
source = { git = "https://github.com/RenjiSann/tree-sitter-xml", rev = "48a7c2b6fb9d515577e115e6788937e837815651" }
+
+[[language]]
+name = "dtd"
+scope = "source.dtd"
+injection-regex = "dtd"
+file-types = ["dtd", "ent"]
+indent = {tab-width = 2, unit = " "}
+roots = []
+
+[language.auto-pairs]
+'(' = ')'
+'[' = ']'
+'"' = '"'
+"'" = "'"
+'<' = '>'
+
+[[grammar]]
+name = "dtd"
+source = { git = "https://github.com/KMikeeU/tree-sitter-dtd", rev = "6116becb02a6b8e9588ef73d300a9ba4622e156f"}
+
[[language]]
name = "wit"
scope = "source.wit"
diff --git a/runtime/queries/dtd/highlights.scm b/runtime/queries/dtd/highlights.scm
new file mode 100644
index 00000000..cb3d482b
--- /dev/null
+++ b/runtime/queries/dtd/highlights.scm
@@ -0,0 +1,39 @@
+; highlights.scm
+
+(comment) @comment
+
+[
+ "ELEMENT"
+ "ATTLIST"
+] @keyword
+
+[
+ "#REQUIRED"
+ "#IMPLIED"
+ "#FIXED"
+ "#PCDATA"
+] @keyword.directive
+
+[
+ "EMPTY"
+ "ANY"
+ "SYSTEM"
+ "PUBLIC"
+] @constant
+
+(element_name) @module
+
+
+(attribute_name) @attribute
+
+(system_literal) @string
+(pubid_literal) @string
+(attribute_value) @string
+
+[
+ ">"
+ "</"
+ "<?"
+ "?>"
+ "<!"
+] @punctuation.bracket
diff --git a/runtime/queries/dtd/injections.scm b/runtime/queries/dtd/injections.scm
new file mode 100644
index 00000000..321c90ad
--- /dev/null
+++ b/runtime/queries/dtd/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))