diff --git a/book/src/generated/lang-support.md b/book/src/generated/lang-support.md index 71b1dc0d8..907dd318e 100644 --- a/book/src/generated/lang-support.md +++ b/book/src/generated/lang-support.md @@ -40,7 +40,7 @@ | dart | ✓ | ✓ | ✓ | `dart` | | dbml | ✓ | | | | | debian | ✓ | | | | -| devicetree | ✓ | | | | +| devicetree | ✓ | | | `dts-lsp` | | dhall | ✓ | ✓ | | `dhall-lsp-server` | | diff | ✓ | | | | | djot | ✓ | | | | @@ -228,6 +228,7 @@ | svelte | ✓ | | ✓ | `svelteserver` | | sway | ✓ | ✓ | ✓ | `forc` | | swift | ✓ | ✓ | | `sourcekit-lsp` | +| systemd | ✓ | | | `systemd-lsp` | | t32 | ✓ | | | | | tablegen | ✓ | ✓ | ✓ | | | tact | ✓ | ✓ | ✓ | | diff --git a/languages.toml b/languages.toml index e1494c09b..96478f304 100644 --- a/languages.toml +++ b/languages.toml @@ -35,6 +35,7 @@ dhall-lsp-server = { command = "dhall-lsp-server" } docker-langserver = { command = "docker-langserver", args = ["--stdio"] } docker-compose-langserver = { command = "docker-compose-langserver", args = ["--stdio"]} dot-language-server = { command = "dot-language-server", args = ["--stdio"] } +dts-lsp = { command = "dts-lsp" } earthlyls = { command = "earthlyls" } elixir-ls = { command = "elixir-ls", config = { elixirLS.dialyzerEnabled = false } } elm-language-server = { command = "elm-language-server" } @@ -110,6 +111,7 @@ ruby-lsp = { command = "ruby-lsp" } serve-d = { command = "serve-d" } slangd = { command = "slangd" } slint-lsp = { command = "slint-lsp", args = [] } +systemd-lsp = { command = "systemd-lsp" } solargraph = { command = "solargraph", args = ["stdio"] } solc = { command = "solc", args = ["--lsp"] } sourcekit-lsp = { command = "sourcekit-lsp" } @@ -2319,6 +2321,7 @@ file-types = ["dts", "dtsi"] comment-token = "//" block-comment-tokens = { start = "/*", end = "*/" } indent = { tab-width = 4, unit = "\t" } +language-servers = [ "dts-lsp" ] [[grammar]] name = "devicetree" @@ -2966,15 +2969,12 @@ indent = { tab-width = 4, unit = "\t" } grammar = "bash" [[language]] -name = "ini" +name = "systemd" scope = "source.ini" file-types = [ - "ini", # Systemd unit files "service", "automount", - "desktop", - { glob = "mimeapps.list" }, "device", "mount", "nspawn", @@ -2986,6 +2986,19 @@ file-types = [ "target", "timer", { glob = "systemd/**/*.conf" }, +] +injection-regex = "systemd" +comment-token = "#" +grammar = "ini" +language-servers = ["systemd-lsp"] + +[[language]] +name = "ini" +scope = "source.ini" +file-types = [ + "ini", + "desktop", + { glob = "mimeapps.list" }, # Podman quadlets "container", "volume", diff --git a/runtime/queries/ini/highlights.scm b/runtime/queries/ini/highlights.scm index 70e649a11..95b5e6517 100644 --- a/runtime/queries/ini/highlights.scm +++ b/runtime/queries/ini/highlights.scm @@ -12,4 +12,4 @@ (setting (setting_name) @variable.other.member - (setting_value) @string) + ((setting_value) @string)?) diff --git a/runtime/queries/systemd/highlights.scm b/runtime/queries/systemd/highlights.scm new file mode 100644 index 000000000..5fa4bb828 --- /dev/null +++ b/runtime/queries/systemd/highlights.scm @@ -0,0 +1 @@ +; inherits: ini