-- Autocmds are automatically loaded on the VeryLazy event -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua -- Add any additional autocmds here local lsp = require("lsp-zero").preset({}) lsp.on_attach(function(client, bufnr) lsp.default_keymaps({ buffer = bufnr }) end) -- When you don't have mason.nvim installed -- You'll need to list the servers installed in your system lsp.setup_servers({ "tsserver", "eslint", "hls", "pyright", "nil_ls", "cssls", "html", "jsonls", "diagnosticls", "lua_ls", "marksman", "purescriptls", "tailwindcss", "bashls", }) -- (Optional) Configure lua language server for neovim require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls()) lsp.setup() local cmp = require("cmp") cmp.setup({ snippet = { expand = function(args) require("luasnip").lsp_expand(args.body) end, }, sources = { { name = "nvim_lsp" }, { name = "luasnip" }, -- other sources... }, -- other configurations... }) vim.cmd([[ au BufRead,BufNewFile *.purs set filetype=purescript ]]) local luasnip = require("luasnip") cmp.setup({ mapping = { [""] = cmp.mapping(function(fallback) if vim.fn.pumvisible() == 1 then vim.fn.feedkeys(vim.api.nvim_replace_termcodes("", true, true, true), "n") elseif luasnip.expand_or_jumpable() then vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-expand-or-jump", true, true, true), "") else fallback() end end, { "i", "s" }), [""] = cmp.mapping(function(fallback) if vim.fn.pumvisible() == 1 then vim.fn.feedkeys(vim.api.nvim_replace_termcodes("", true, true, true), "n") elseif luasnip.jumpable(-1) then vim.fn.feedkeys(vim.api.nvim_replace_termcodes("luasnip-jump-prev", true, true, true), "") else fallback() end end, { "i", "s" }), -- [""] = cmp.mapping(function(fallback) -- fallback() -- end, { "i", "s" }), [""] = cmp.mapping({ i = function(fallback) if cmp.visible() and cmp.get_active_entry() then cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false }) else fallback() end end, s = cmp.mapping.confirm({ select = true }), c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }), }), }, }) vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, { -- Disable virtual_text virtual_text = false, }) require("notify").setup({ background_colour = "#000000", })