Unnamed repository; edit this file 'description' to name the repository.
Add injections for mise config (#14525)
| -rw-r--r-- | book/src/generated/lang-support.md | 1 | ||||
| -rw-r--r-- | languages.toml | 19 | ||||
| -rw-r--r-- | runtime/queries/miseconfig/highlights.scm | 1 | ||||
| -rw-r--r-- | runtime/queries/miseconfig/indents.scm | 1 | ||||
| -rw-r--r-- | runtime/queries/miseconfig/injections.scm | 34 | ||||
| -rw-r--r-- | runtime/queries/miseconfig/textobjects.scm | 1 |
6 files changed, 57 insertions, 0 deletions
diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 0d92a856..a0cc5c52 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -168,6 +168,7 @@ | mermaid | ✓ | | | | | | | meson | ✓ | | ✓ | | | `mesonlsp` | | mint | | | | | | `mint` | +| miseconfig | ✓ | ✓ | ✓ | | | `taplo`, `tombi` | | mojo | ✓ | ✓ | ✓ | | | `pixi` | | move | ✓ | | | | | | | msbuild | ✓ | | ✓ | | | | diff --git a/languages.toml b/languages.toml index d4ddd091..1d5c1a50 100644 --- a/languages.toml +++ b/languages.toml @@ -3713,6 +3713,25 @@ name = "jjtemplate" source = { git = "https://github.com/bryceberger/tree-sitter-jjtemplate", rev = "4313eda8ac31c60e550e3ad5841b100a0a686715" } [[language]] +name = "miseconfig" +scope = "source.miseconfig" +injection-regex = "miseconfig" +grammar = "toml" +file-types = [ + { glob = "mise.toml" }, + { glob = ".mise.toml" }, + { glob = "mise.*.toml" }, + { glob = ".mise.*.toml" }, + { glob = "mise/config.toml" }, + { glob = ".mise/config.toml" }, + { glob = ".config/mise.toml" }, + { glob = ".config/mise/conf.d/*.toml" }, +] +comment-token = "#" +language-servers = [ "taplo", "tombi" ] +indent = { tab-width = 2, unit = " " } + +[[language]] name = "jq" scope = "source.jq" injection-regex = "jq" diff --git a/runtime/queries/miseconfig/highlights.scm b/runtime/queries/miseconfig/highlights.scm new file mode 100644 index 00000000..b55e36da --- /dev/null +++ b/runtime/queries/miseconfig/highlights.scm @@ -0,0 +1 @@ +; inherits: toml diff --git a/runtime/queries/miseconfig/indents.scm b/runtime/queries/miseconfig/indents.scm new file mode 100644 index 00000000..b55e36da --- /dev/null +++ b/runtime/queries/miseconfig/indents.scm @@ -0,0 +1 @@ +; inherits: toml diff --git a/runtime/queries/miseconfig/injections.scm b/runtime/queries/miseconfig/injections.scm new file mode 100644 index 00000000..01da52cb --- /dev/null +++ b/runtime/queries/miseconfig/injections.scm @@ -0,0 +1,34 @@ +; inherits: toml + +; This part covers simple tasks where only the command(s) to run +; are specified as a string or array of strings, e.g. +; +; [tasks] +; simple = "simple-command arg1 arg2" +; many-simple = [ +; "simple-command-1", +; "simple-command-2", +; ] +; +(table + (bare_key) @table-name (#eq? @table-name "tasks") + (pair (_) [ + ((string) @injection.shebang @injection.content (#set! injection.language "bash")) + ((array (string) @injection.shebang @injection.content (#set! injection.language "bash"))) + ]) +) + +; This part covers advanced tasks which are specified as a table. +; Only the "run" key is subject to injections. +; +; [tasks.foo] +; description = "This is regular text." +; run = "this is bash" +; +(table + (dotted_key (bare_key) @table-name (#eq? @table-name "tasks")) + (pair (bare_key) @key-name (#eq? @key-name "run") [ + ((string) @injection.shebang @injection.content (#set! injection.language "bash")) + ((array (string) @injection.shebang @injection.content (#set! injection.language "bash"))) + ]) +) diff --git a/runtime/queries/miseconfig/textobjects.scm b/runtime/queries/miseconfig/textobjects.scm new file mode 100644 index 00000000..b55e36da --- /dev/null +++ b/runtime/queries/miseconfig/textobjects.scm @@ -0,0 +1 @@ +; inherits: toml |