From 5498d5cf04d87a20c1c198135d2a41afa7ae90b1 Mon Sep 17 00:00:00 2001 From: Snoweuph Date: Sun, 19 Apr 2026 02:41:21 +0200 Subject: [PATCH] lsp/presets/docker-language-server: init --- docs/manual/release-notes/rl-0.9.md | 4 ++- modules/plugins/lsp/presets/default.nix | 1 + .../lsp/presets/docker-language-server.nix | 33 +++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 modules/plugins/lsp/presets/docker-language-server.nix diff --git a/docs/manual/release-notes/rl-0.9.md b/docs/manual/release-notes/rl-0.9.md index 77af9825..e08ad49d 100644 --- a/docs/manual/release-notes/rl-0.9.md +++ b/docs/manual/release-notes/rl-0.9.md @@ -309,13 +309,15 @@ more flexibility in nvf and reuse of LSPs across languages. Dropped `deprecatedSingleOrListOf` in favor of `listOf` for the affected LSP options. +- Added {option}`vim.lsp.presets.docker-language-server.enable` for Docker + support. + - Added {option}`vim.lsp.presets.angular-language-server.enable` for Angular Template support. - Added {option}`vim.lsp.presets.vtsls.enable` for Vue TypeScript support. - Added {option}`vim.lsp.presets.vue-language-server.enable` for Vue Template - support. - Added {option}`vim.lsp.presets.some-sass-language-server.enable`. diff --git a/modules/plugins/lsp/presets/default.nix b/modules/plugins/lsp/presets/default.nix index f5f71c35..b7a7e7f5 100644 --- a/modules/plugins/lsp/presets/default.nix +++ b/modules/plugins/lsp/presets/default.nix @@ -13,6 +13,7 @@ ./cue.nix ./dart.nix ./deno.nix + ./docker-language-server.nix ./elixir-ls.nix ./elm-language-server.nix ./emmet-ls.nix diff --git a/modules/plugins/lsp/presets/docker-language-server.nix b/modules/plugins/lsp/presets/docker-language-server.nix new file mode 100644 index 00000000..fdaab427 --- /dev/null +++ b/modules/plugins/lsp/presets/docker-language-server.nix @@ -0,0 +1,33 @@ +{ + config, + lib, + pkgs, + ... +}: let + inherit (lib.meta) getExe; + inherit (lib.modules) mkIf; + inherit (lib.nvim.types) mkLspPresetEnableOption; + + cfg = config.vim.lsp.presets.docker-language-server; +in { + options.vim.lsp.presets.docker-language-server = { + enable = mkLspPresetEnableOption "docker-language-server" "Docker" []; + }; + + config = mkIf cfg.enable { + vim.lsp.servers.docker-language-server = { + enable = true; + cmd = [(getExe pkgs.docker-language-server) "start" "--stdio"]; + root_markers = [ + ".git" + "Dockerfile" + "docker-compose.yaml" + "docker-compose.yml" + "compose.yaml" + "compose.yml" + "docker-bake.json" + "docker-bake.hcl" + ]; + }; + }; +}