diff --git a/nvim/README.md b/nvim/README.md index 3cf68ba..dd4ca82 100644 --- a/nvim/README.md +++ b/nvim/README.md @@ -31,6 +31,9 @@ brew install tree-sitter # https://github.com/redhat-developer/yaml-language-server brew install yaml-language-server +# https://github.com/docker/docker-language-server +brew install docker-language-server + # https://github.com/ryanoasis/nerd-fonts brew install --cask font-jetbrains-mono-nerd-font ``` diff --git a/nvim/filetype.lua b/nvim/filetype.lua index 6bd5d61..02f416c 100644 --- a/nvim/filetype.lua +++ b/nvim/filetype.lua @@ -14,3 +14,10 @@ vim.filetype.add({ ['.*%.tfvars'] = 'terraform.vars' }, }) + +-- Docker LSP +vim.filetype.add({ + pattern = { + ['docker%-compose%.ya?ml'] = 'yaml.docker-compose', + }, +}) diff --git a/nvim/lsp/dockerls.lua b/nvim/lsp/dockerls.lua new file mode 100644 index 0000000..8c1492f --- /dev/null +++ b/nvim/lsp/dockerls.lua @@ -0,0 +1,22 @@ +return { + cmd = { 'docker-language-server', 'start', '--stdio' }, + filetypes = { 'dockerfile', 'yaml.docker-compose' }, + get_language_id = function(_, ftype) + if ftype == 'yaml.docker-compose' or ftype:lower():find('ya?ml') then + return 'dockercompose' + else + return ftype + end + end, + root_markers = { + 'Dockerfile', + 'docker-compose.yaml', + 'docker-compose.yml', + 'compose.yaml', + 'compose.yml', + 'docker-bake.json', + 'docker-bake.hcl', + 'docker-bake.override.json', + 'docker-bake.override.hcl', + }, +} diff --git a/nvim/lua/config/lsp.lua b/nvim/lua/config/lsp.lua index 9be8673..bcca2e5 100644 --- a/nvim/lua/config/lsp.lua +++ b/nvim/lua/config/lsp.lua @@ -1,4 +1,5 @@ vim.lsp.enable({ + "dockerls", "gitlabcils", "luals", "terraformls",