diff options
Diffstat (limited to 'users/seth/programs/neovim/config/plugins/lsp.lua')
| -rw-r--r-- | users/seth/programs/neovim/config/plugins/lsp.lua | 61 |
1 files changed, 13 insertions, 48 deletions
diff --git a/users/seth/programs/neovim/config/plugins/lsp.lua b/users/seth/programs/neovim/config/plugins/lsp.lua index 9aee630..229f536 100644 --- a/users/seth/programs/neovim/config/plugins/lsp.lua +++ b/users/seth/programs/neovim/config/plugins/lsp.lua @@ -3,72 +3,37 @@ local cmp = require("cmp") local luasnip = require("luasnip") local mapping = cmp.mapping -local has_words_before = function() - 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 feedkey = function(key, mode) - vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes(key, true, true, true), mode, true) -end -local cmp_on_attach = function(_, bufnr) - vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc") -end - -local capabilities = require("cmp_nvim_lsp").default_capabilities() -capabilities.textDocument.completion.completionItem.snippetSupport = true - require("cmp").setup({ + completion = { + completeopt = "menu,menuone,noinsert", + }, + snippet = { expand = function(args) - vim.fn["vsnip#anonymous"](args.body) luasnip.lsp_expand(args.body) end, }, mapping = mapping.preset.insert({ - ["<Tab>"] = cmp.mapping(function(fallback) - if cmp.visible() then - cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then - luasnip.expand_or_jump() - 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(fallback) - if cmp.visible() then - cmp.select_prev_item() - elseif luasnip.jumpable(-1) then - luasnip.jump(-1) - elseif vim.fn["vsnip#available"](-1) == 1 then - feedkey("<Plug>(vsnip-jump-prev)", "") - else - fallback() - end - end, { "i", "s" }), + ["<C-n>"] = mapping.select_next_item({ behavior = cmp.SelectBehavior.Insert }), + ["<C-p>"] = mapping.select_prev_item({ behavior = cmp.SelectBehavior.Insert }), ["<C-b>"] = mapping.scroll_docs(-4), ["<C-f>"] = mapping.scroll_docs(4), ["<C-Space>"] = mapping.complete(), ["<C-e>"] = mapping.abort(), ["<CR>"] = mapping.confirm({ select = true }), + ["<S-CR>"] = mapping.confirm({ + behavior = cmp.ConfirmBehavior.Replace, + select = true, + }), }), sources = cmp.config.sources({ { name = "nvim_lsp" }, { name = "luasnip" }, - { name = "vsnip" }, - { name = "buffer" }, { name = "path" }, + { name = "buffer" }, }), - - capabilities = capabilities, - - on_attach = cmp_on_attach, }) ---- fidget @@ -114,9 +79,10 @@ local sources = { } --- lsp config +local capabilities = require("cmp_nvim_lsp").default_capabilities(vim.lsp.protocol.make_client_capabilities()) + local all_config = { capabilities = capabilities, - on_attach = cmp_on_attach, } local servers = {} @@ -126,7 +92,6 @@ end servers["lua_ls"] = { capabilities = capabilities, - on_attach = cmp_on_attach, settings = { Lua = { runtime = { |
