local cmp = require("cmp") local cmp_lsp = require("cmp_nvim_lsp") local capabilities = vim.tbl_deep_extend( "force", {}, vim.lsp.protocol.make_client_capabilities(), cmp_lsp.default_capabilities() ) require("nvchad.configs.lspconfig").defaults() require("fidget").setup({}) require("mason").setup() require("mason-lspconfig").setup({ ensure_installed = { "lua_ls", "rust_analyzer", "gopls", }, handlers = { function(server_name) -- default handler (optional) require("lspconfig")[server_name].setup { capabilities = capabilities } end, zls = function() local lspconfig = require("lspconfig") lspconfig.zls.setup({ root_dir = lspconfig.util.root_pattern(".git", "build.zig", "zls.json"), settings = { zls = { enable_inlay_hints = true, enable_snippets = true, warn_style = true, }, }, }) vim.g.zig_fmt_parse_errors = 0 vim.g.zig_fmt_autosave = 0 end, ["lua_ls"] = function() local lspconfig = require("lspconfig") lspconfig.lua_ls.setup { capabilities = capabilities, settings = { Lua = { runtime = { version = "Lua 5.1" }, diagnostics = { globals = { "bit", "vim", "it", "describe", "before_each", "after_each" }, } } } } end, } }) local cmp_select = { behaivior = cmp.SelectBehavior.Select } cmp.setup({ snippet = { expand = function(args) require('luasnip').lsp_expand(args.body) -- For `luasnip` users. end, }, sources = cmp.config.sources({ { name = 'nvim_lsp' }, { name = 'luasnip' }, -- For luasnip users. }, { { name = 'buffer' }, }) }) vim.diagnostic.config({ -- update_in_insert = true, float = { focusable = false, style = "minimal", border = "rounded", source = "always", header = "", prefix = "", }, }) local lspconfig = require "lspconfig" local nvlsp = require "nvchad.configs.lspconfig" -- EXAMPLE local servers = { "html", "cssls", "bashls", "texlab", "hyprls", "pyright", "ts_ls", "java_language_server", "sourcekit", } -- lsps with default config for _, lsp in ipairs(servers) do lspconfig[lsp].setup { on_attach = nvlsp.on_attach, on_init = nvlsp.on_init, capabilities = nvlsp.capabilities, } end -- configuring single server, example: typescript -- lspconfig.ts_ls.setup { -- on_attach = nvlsp.on_attach, -- on_init = nvlsp.on_init, -- capabilities = nvlsp.capabilities, -- }