diff options
Diffstat (limited to 'after/plugin/completition.lua')
| -rw-r--r-- | after/plugin/completition.lua | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/after/plugin/completition.lua b/after/plugin/completition.lua new file mode 100644 index 0000000..7140ca5 --- /dev/null +++ b/after/plugin/completition.lua @@ -0,0 +1,96 @@ +local lspkind = require "lspkind" + +local luasnip = require("luasnip") +local cmp = require "cmp" +local cmp_autopairs = require('nvim-autopairs.completion.cmp') +cmp.event:on( 'confirm_done', cmp_autopairs.on_confirm_done({ map_char = { tex = '' } })) + +cmp.setup { + mapping = { + ["<C-d>"] = cmp.mapping.scroll_docs(-4), + ["<C-f>"] = cmp.mapping.scroll_docs(4), + ["<C-e>"] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.close() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + ["<C-n>"] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.choice_active() then + luasnip.change_choice(1) + else + fallback() + end + end, { "i", "s" }), + ["<C-y>"] = cmp.mapping.confirm { + behavior = cmp.ConfirmBehavior.Insert, + select = true, + }, + ["<c-space>"] = cmp.mapping.complete(), + }, + sources = { + { name = "nvim_lua" }, + { name = "nvim_lsp" }, + { name = "path" }, + { name = "luasnip" }, + { + name = "buffer", + keyword_length = 5, + option = { + get_bufnrs = function() + local bufs = {} + for _, win in ipairs(vim.api.nvim_list_wins()) do + bufs[vim.api.nvim_win_get_buf(win)] = true + end + return vim.tbl_keys(bufs) + end + } + }, + }, + + snippet = { + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + + formatting = { + format = lspkind.cmp_format { + with_text = true, + menu = { + buffer = "[buf]", + nvim_lsp = "[LSP]", + nvim_lua = "[api]", + path = "[path]", + luasnip = "[snip]", + } + } + }, + + experimental = { + native_menu = false, + + ghost_text = true, + } +} +-- Setup lspconfig. + local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + -- Replace <YOUR_LSP_SERVER> with each lsp server you've enabled. + require('lspconfig')['emmet_ls'].setup { + capabilities = capabilities + } + +local Group = require("colorbuddy.group").Group +local g = require("colorbuddy.group").groups +local s = require("colorbuddy.style").styles + +Group.new("CmpItemAbbr", g.Comment) +Group.new("CmpItemAbbrDeprecated", g.Error) +Group.new("CmpItemAbbrMatchFuzzy", g.CmpItemAbbr.fg:dark(), nil, s.italic) +Group.new("CmpItemKind", g.Special) +Group.new("CmpItemMenu", g.NonText) |