local config = function() require("neoconf").setup({}) local cmp_nvim_lsp = require("cmp_nvim_lsp") local lspconfig = require("lspconfig") local capabilities = cmp_nvim_lsp.default_capabilities() -- lua -- lspconfig.lua_ls.setup({ -- capabilities = capabilities, -- on_attach = on_attach, -- settings = { -- custom settings for lua -- Lua = { -- -- make the language server recognize "vim" global -- diagnostics = { -- globals = { "vim" }, -- }, -- workspace = { -- -- make language server aware of runtime files -- library = { -- [vim.fn.expand("$VIMRUNTIME/lua")] = true, -- [vim.fn.stdpath("config") .. "/lua"] = true, -- }, -- }, -- }, -- }, -- }) -- python lspconfig.pyright.setup({ capabilities = capabilities, on_attach = on_attach, settings = { pyright = { disableOrganizeImports = false, analysis = { useLibraryCodeForTypes = true, autoSearchPaths = true, diagnosticMode = "workspace", autoImportCompletions = true, }, }, }, }) -- bash lspconfig.bashls.setup({ capabilities = capabilities, on_attach = on_attach, filetypes = { "sh" }, }) -- docker lspconfig.dockerls.setup({ capabilities = capabilities, on_attach = on_attach, }) -- local luacheck = require("efmls-configs.linters.luacheck") -- local stylua = require("efmls-configs.formatters.stylua") -- local flake8 = require("efmls-configs.linters.flake8") -- local black = require("efmls-configs.formatters.black") -- local eslint_d = require("efmls-configs.linters.eslint_d") -- local prettierd = require("efmls-configs.formatters.prettier_d") -- local fixjson = require("efmls-configs.formatters.fixjson") -- local shellcheck = require("efmls-configs.linters.shellcheck") -- local shfmt = require("efmls-configs.formatters.shfmt") -- local alex = require("efmls-configs.linters.alex") -- local hadolint = require("efmls-configs.linters.hadolint") -- local solhint = require("efmls-configs.linters.solhint") -- configure efm server -- lspconfig.efm.setup({ -- filetypes = { -- "lua", -- "python", -- "json", -- "jsonc", -- "sh", -- "javascript", -- "javascriptreact", -- "typescript", -- "typescriptreact", -- "svelte", -- "vue", -- "markdown", -- "docker", -- "solidity", -- }, -- init_options = { -- documentFormatting = true, -- documentRangeFormatting = true, -- hover = true, -- documentSymbol = true, -- codeAction = true, -- completion = true, -- }, -- settings = { -- languages = { -- lua = { luacheck, stylua }, -- python = { flake8, black }, -- typescript = { eslint_d, prettierd }, -- json = { eslint_d, fixjson }, -- jsonc = { eslint_d, fixjson }, -- sh = { shellcheck, shfmt }, -- javascript = { eslint_d, prettierd }, -- javascriptreact = { eslint_d, prettierd }, -- typescriptreact = { eslint_d, prettierd }, -- svelte = { eslint_d, prettierd }, -- vue = { eslint_d, prettierd }, -- markdown = { alex, prettierd }, -- docker = { hadolint, prettierd }, -- solidity = { solhint }, -- }, -- }, -- }) end return { "neovim/nvim-lspconfig", config = config, lazy = false, dependencies = { "windwp/nvim-autopairs", "williamboman/mason.nvim", -- "creativenull/efmls-configs-nvim", "hrsh7th/nvim-cmp", "hrsh7th/cmp-buffer", "hrsh7th/cmp-nvim-lsp", }, }