aboutsummaryrefslogtreecommitdiffstats
path: root/after/plugin/completition.lua
diff options
context:
space:
mode:
authorAriel D'Alessandro <ariel.dalessandro@auto1.com>2022-02-09 17:53:48 +0100
committerAriel D'Alessandro <dalessandro.ariel@gmail.com>2022-02-10 07:31:32 +0100
commit77f5dd9693576af7fde80bdc99700f21eff01d6b (patch)
treeebb4a64a4137c27b5771af8a95944b9dee92c8f5 /after/plugin/completition.lua
parentcd15d17a96390879c90e95ad90e0f75629e3eed7 (diff)
downloadnvim-conf-77f5dd9693576af7fde80bdc99700f21eff01d6b.tar.gz
nvim-conf-77f5dd9693576af7fde80bdc99700f21eff01d6b.zip
WIP moving to all lua and new structure
Diffstat (limited to 'after/plugin/completition.lua')
-rw-r--r--after/plugin/completition.lua96
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)