--- @type LazyPluginSpec return { "neovim/nvim-lspconfig", dependencies = { { "antosha417/nvim-lsp-file-operations", config = true }, -- "hrsh7th/cmp-nvim-lsp", "saghen/blink.cmp", "nvim-lua/plenary.nvim", "pmizio/typescript-tools.nvim", "dmmulroy/ts-error-translator.nvim", }, event = { "BufReadPre", "BufNewFile" }, config = function() require("lspconfig") local tserrortranslator = require("ts-error-translator") local on_attach = require("taken.utils.on_attach") local get_python_path = require("taken.utils.lsp").get_python_path -- local cmp_nvim_lsp = require("cmp_nvim_lsp") -- local capabilities = cmp_nvim_lsp.default_capabilities() local blink = require("blink.cmp") local capabilities = blink.get_lsp_capabilities() vim.diagnostic.config({ signs = { [vim.diagnostic.severity.ERROR] = " ", [vim.diagnostic.severity.WARN] = " ", [vim.diagnostic.severity.HINT] = "ﴞ ", [vim.diagnostic.severity.INFO] = " ", }, -- linehl = { -- [vim.diagnostic.severity.ERROR] = "DiagnosticSignError", -- [vim.diagnostic.severity.WARN] = "DiagnosticSignWarn", -- [vim.diagnostic.severity.HINT] = "DiagnosticSignHint", -- [vim.diagnostic.severity.INFO] = "DiagnosticSignInfo", -- }, -- numhl = { -- [vim.diagnostic.severity.ERROR] = "DiagnosticSignError", -- [vim.diagnostic.severity.WARN] = "DiagnosticSignWarn", -- [vim.diagnostic.severity.HINT] = "DiagnosticSignHint", -- [vim.diagnostic.severity.INFO] = "DiagnosticSignInfo", -- }, }) local defaultLsps = { "html", "cssls", "jsonls", "rust_analyzer", "yamlls", "bashls", "marksman", "eslint", } vim.lsp.config("*", { capabilities = capabilities, on_attach = on_attach, }) -- vim.lsp.config("emmylua_ls", { -- capabilities = capabilities, -- on_attach = on_attach, -- }) -- lua vim.lsp.config("lua_ls", { capabilities = capabilities, on_attach = on_attach, settings = { Lua = { hint = { enable = true, }, runtime = { version = "LuaJIT", }, diagnostics = { globals = { "vim" }, }, completion = { callSnippet = "Replace", }, format = { enable = false, }, }, }, }) -- python vim.lsp.config("pyright", { capabilities = capabilities, on_attach = on_attach, before_init = function(_, config) local python_path = get_python_path(config.root_dir) if python_path == nil then return end config.settings.python.pythonPath = get_python_path(config.root_dir) end, }) -- typescript vim.lsp.config("ts_ls", { capabilities = capabilities, on_attach = on_attach, settings = { typescript = { inlayHints = { includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = true, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, includeInlayVariableTypeHintsWhenTypeMatchesName = true, includeInlayPropertyDeclarationTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true, includeInlayEnumMemberValueHints = true, }, }, javascript = { inlayHints = { includeInlayParameterNameHints = "all", includeInlayParameterNameHintsWhenArgumentMatchesName = true, includeInlayFunctionParameterTypeHints = true, includeInlayVariableTypeHints = true, includeInlayVariableTypeHintsWhenTypeMatchesName = true, includeInlayPropertyDeclarationTypeHints = true, includeInlayFunctionLikeReturnTypeHints = true, includeInlayEnumMemberValueHints = true, }, }, }, }) -- powershell vim.lsp.config("powershell_es", { capabilities = capabilities, on_attach = on_attach, bundle_path = vim.fn.stdpath("data") .. "/mason/packages/powershell-editor-services", }) vim.lsp.enable(defaultLsps) vim.lsp.enable({ "lua_ls", -- "emmylua_ls", "pyright", "ts_ls", "powershell_es", }) tserrortranslator.setup() end, }