# chezmoi:template:left-delimiter=--{{ --{{- /* vim: set filetype=lua: */ -}} local M = { "neovim/nvim-lspconfig" } M.name = "lspconfig" M.tag = "v1.0.0" M.dependencies = { { "j-hui/fidget.nvim", tag = "legacy", opts = {} }, { "folke/trouble.nvim", tag = "v3.6.0" }, { "folke/lazydev.nvim", tag = "v1.9.0", ft = "lua", opts = {} }, } local function format_buffer(_) vim.lsp.buf.format() end local function on_attach(_, buffer) -- Create a command `:Format` local to the LSP buffer vim.api.nvim_buf_create_user_command(buffer, "Format", format_buffer, { desc = "Format current buffer with LSP", }) end function M.config() local lspconfig = require("lspconfig") local capabilities = require("cmp_nvim_lsp").default_capabilities( vim.lsp.protocol.make_client_capabilities()) --{{ if lookPath "bash-language-server" -}} -- npm install --global bash-language-server lspconfig.bashls.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } --{{- end }} -- --{{ if lookPath "buf" -}} lspconfig.buf_ls.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } --{{- end }} --{{ if lookPath "go" -}} lspconfig.gopls.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } --{{- end }} --{{ if lookPath "nu" -}} lspconfig.nushell.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } --{{- end }} --{{ if lookPath "templ" -}} lspconfig.templ.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } --{{- end }} --{{ if lookPath "vscode-eslint-language-server" -}} -- # npm i -g vscode-langservers-extracted lspconfig.eslint.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } lspconfig.html.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } lspconfig.cssls.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } lspconfig.jsonls.setup { capabilities = capabilities, on_attach = on_attach, settings = {}, } --{{- end }} --{{ if lookPath "lua-language-server" -}} lspconfig.lua_ls.setup { capabilities = capabilities, on_attach = on_attach, settings = { Lua = { workspace = { checkThirdParty = false }, telemetry = { enable = false }, }, }, } --{{- end }} end return M