diff options
author | Jon Santmyer <jon@jonsantmyer.com> | 2024-09-17 21:03:44 -0400 |
---|---|---|
committer | Jon Santmyer <jon@jonsantmyer.com> | 2024-09-17 21:03:44 -0400 |
commit | c2ac689be0b8a26b4b5ec118bc6bc9adcb55800a (patch) | |
tree | 776b5db4c44b325dc4f2efe1910c4c1228338052 /config | |
parent | b4ffcbe13301291e0d04169a9ac0377d52621c4f (diff) | |
download | nix-config-master.tar.gz nix-config-master.tar.bz2 nix-config-master.zip |
Diffstat (limited to 'config')
-rw-r--r-- | config/nvim/lua/lsp.lua | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/config/nvim/lua/lsp.lua b/config/nvim/lua/lsp.lua index 1056431..7f41534 100644 --- a/config/nvim/lua/lsp.lua +++ b/config/nvim/lua/lsp.lua @@ -1,122 +1,6 @@ -local cmp = require("cmp") -local nvim_lsp = require("lspconfig") -local cmp_window = require("cmp.utils.window") - vim.o.completeopt = "menuone,noselect" vim.o.shortmess = vim.o.shortmess .. "c" -local function on_attach(client, bufn) - local function map(...) - vim.api.nvim_buf_set_keymap(bufn, ...) - end - - local function buf_set_option(...) - vim.api.nvim_buf_set_option(bufn, ...) - end - - local opts = { noremap = true, silent = true } - map("n", "gD", "<Cmd>lua vim.lsp.buf.declaration()<CR>", opts) - map("n", "gd", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts) - map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts) - map("n", "gi", "<Cmd>lua vim.lsp.buf.implementation()<CR>", opts) - map("n", "<C-k>", "<Cmd>lua vim.lsp.buf.signature_help()<CR>", opts) - map("n", "<leader>D", "<Cmd>lua vim.lsp.buf.type_definition()<CR>", opts) - map("n", "gr", "<Cmd>lua vim.lsp.buf.references()<CR>", opts) - map("n", "<leader>e", "<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>", opts) - map("n", "[d", "<Cmd>lua vim.lsp.diagnostic.goto_prev()<CR>", opts) - map("n", "]d", "<Cmd>lua vim.lsp.diagnostic.goto_next()<CR>", opts) - map("n", "<leader>q", "<Cmd>lua vim.lsp.diagnostic.set_loclist()<CR>", opts) - map("n", "ga", "<Cmd>lua vim.lsp.buf.code_action()<CR>", opts) -end - -local function has_words_before() - local line, col = unpack(vim.api.nvim_win_get_cursor(0)) - return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil -end - -local function feedkey(key, mode) - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) -end - -local function border(hl_name) - return { - { "╭", hl_name }, - { "─", hl_name }, - { "╮", hl_name }, - { "│", hl_name }, - { "╯", hl_name }, - { "─", hl_name }, - { "╰", hl_name }, - { "│", hl_name }, - } -end - -cmp_window.info_ = cmp_window.info -cmp_window.info = function(self) - local info = self:info_() - info.scrollable = false - return info -end - -cmp.setup({ - window = { - completion = { - border = border "CmpBorder", - winhighlight = "Normal:CmpPmenu,CursorLine:PmenuSel,Search:None", - }, - documentation = { - border = border "CmpDocBorder" - }, - }, - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - end, - }, - mapping = cmp.mapping.preset.insert({ - ['<C-b>'] = cmp.mapping.scroll_docs(-4), - ['<C-f>'] = cmp.mapping.scroll_docs(4), - ['<C-Space>'] = cmp.mapping.complete(), - ['<C-e>'] = cmp.mapping.abort(), - ['<CR>'] = cmp.mapping.confirm({select = true}), - ["<Tab>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif vim.fn["vsnip#available"](1) == 1 then - feedkey("<Plug>(vsnip-expand-or-jump)", "") - elseif has_words_before() then - cmp.complete() - else - fallback() - end - end, {"i", "s"}), - - ["<S-Tab"] = cmp.mapping(function() - if cmp.visible() then - cmp.select_prev_item() - elseif vim.fn["vsnip#jumpable"](-1) == 1 then - feedkey("<Plug>(vsnip-jump-prev)", "") - end - end, {"i", "s"}), - }), - sources = cmp.config.sources({ - { name = "nvim_lsp" }, - { name = "vsnip" }, - { name = "treesitter" }, - { name = "path", option = { trailing_slash = true }}, - { name = "buffer" } - }), -}) - -cmp.setup.cmdline(":", { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources({ - { name = "path" }, - }, { - { name = "cmdline" }, - }), -}) - vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( vim.lsp.diagnostic.on_publish_diagnostics, { virtual_text = true, @@ -125,18 +9,6 @@ vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( } ) -local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) - -local servers = { "ccls", "bashls", "rnix", "texlab", "lua_ls" } - -for _, lang in pairs(servers) do - nvim_lsp[lang].setup({ - root_dir = vim.loop.cwd, - on_attach = on_attach, - capabilities = capabilities - }) -end - require("nvim-treesitter.configs").setup({ highlight = { enable = true, }, }) |