Unnamed repository; edit this file 'description' to name the repository.
Add support for dune project language (#11829)
Christopher Kaster 2024-10-07
parent f6d39cb · commit 048973f
-rw-r--r--book/src/generated/lang-support.md1
-rw-r--r--languages.toml17
-rw-r--r--runtime/queries/dune/highlights.scm1
3 files changed, 19 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md
index 79f3a696..c5f79aa2 100644
--- a/book/src/generated/lang-support.md
+++ b/book/src/generated/lang-support.md
@@ -39,6 +39,7 @@
| dockerfile | ✓ | ✓ | | `docker-langserver` |
| dot | ✓ | | | `dot-language-server` |
| dtd | ✓ | | | |
+| dune | ✓ | | | |
| earthfile | ✓ | ✓ | ✓ | `earthlyls` |
| edoc | ✓ | | | |
| eex | ✓ | | | |
diff --git a/languages.toml b/languages.toml
index 806aa815..9be8a017 100644
--- a/languages.toml
+++ b/languages.toml
@@ -1244,6 +1244,23 @@ name = "ocaml-interface"
source = { git = "https://github.com/tree-sitter/tree-sitter-ocaml", rev = "9965d208337d88bbf1a38ad0b0fe49e5f5ec9677", subpath = "interface" }
[[language]]
+name = "dune"
+scope = "source.dune"
+roots = ["dune-project"]
+file-types = [{ glob = "dune-project" }, { glob = "dune" }]
+comment-token = ";"
+indent = { tab-width = 1, unit = " " }
+grammar = "scheme"
+auto-format = true
+formatter = { command = "dune", args = ["format-dune-file"] }
+
+[language.auto-pairs]
+'(' = ')'
+'{' = '}'
+'[' = ']'
+'"' = '"'
+
+[[language]]
name = "lua"
injection-regex = "lua"
scope = "source.lua"
diff --git a/runtime/queries/dune/highlights.scm b/runtime/queries/dune/highlights.scm
new file mode 100644
index 00000000..e11eb788
--- /dev/null
+++ b/runtime/queries/dune/highlights.scm
@@ -0,0 +1 @@
+; inherits: scheme