chore: proper keymap documentation and more cleanup

This commit is contained in:
Fabio Lenherr / DashieTM 2023-01-01 23:48:42 +01:00
parent 6f9ecd5c96
commit d46086ec26
16 changed files with 348 additions and 109 deletions

View file

@ -12,6 +12,7 @@ require("luasnip.loaders.from_lua").load({ paths = "~/.config/nvim/snippets" })
luasnip.config.set_config({
history = true,
delete_check_events = "TextChanged",
updateevents = "TextChanged,TextChangedI",
enable_autosnippets = true,
ext_opts = {
@ -26,9 +27,7 @@ luasnip.config.set_config({
},
})
--vim.cmd('let g:snipMate = {"snippet_version" : 1 }')
require("luasnip/loaders/from_vscode").lazy_load()
--require("luasnip.loaders.from_snipmate").lazy_load()
local check_backspace = function()
local col = vim.fn.col(".") - 1
@ -65,11 +64,6 @@ local kind_icons = {
}
-- find more here: https://www.nerdfonts.com/cheat-sheet
--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
cmp.setup({
snippet = {
expand = function(args)
@ -77,26 +71,13 @@ cmp.setup({
end,
},
mapping = {
["<C-k>"] = cmp.mapping.select_prev_item(),
--["<C-j>"] = cmp.mapping.select_next_item(),
["<C-b>"] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
["<C-f>"] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
["<C-Space>"] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
["<C-y>"] = cmp.config.disable, -- Specify `cmp.config.disable` if you want to remove the default `<C-y>` mapping.
["<C-b>"] = cmp.mapping.scroll_docs(-1),
["<C-f>"] = cmp.mapping.scroll_docs(1),
["<C-e>"] = cmp.mapping({
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
}),
-- 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 }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
-- }),
-- Accept currently selected item. If none selected, `select` first item.
-- Set `select` to `false` to only confirm explicitly selected items.
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<CR>"] = cmp.mapping.confirm({ select = false }),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
@ -104,13 +85,9 @@ cmp.setup({
fallback()
end
end, { "i", "s" }),
["<C-j>"] = cmp.mapping(function(fallback)
if luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
else
fallback()
end
@ -118,8 +95,20 @@ cmp.setup({
"i",
"s",
}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if luasnip.jumpable(-1) then
["<C-j>"] = cmp.mapping(function(fallback)
if luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
else
fallback()
end
end, {
"i",
"s",
}),
["<C-k>"] = cmp.mapping(function(fallback)
if luasnip.expand_or_jumpable(-1) then
luasnip.jump(-1)
else
fallback()
@ -129,12 +118,13 @@ cmp.setup({
"s",
}),
},
view = {
{ entries = "native" },
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
-- Kind icons
vim_item.kind = string.format("%s", kind_icons[vim_item.kind])
-- vim_item.kind = string.format('%s %s', kind_icons[vim_item.kind], vim_item.kind) -- This concatonates the icons with the name of the item kind
vim_item.menu = ({
nvim_lsp = "[LSP]",
luasnip = "[Snippet]",
@ -147,26 +137,8 @@ cmp.setup({
sources = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
--{
-- name = "buffer",
-- option = {
-- keyword_pattern = [[\k\+]],
-- }
--},
{ name = "path" },
-- {
-- name = "spell",
-- option = {
-- keep_all_entries = false,
-- enable_in_context = function()
-- return true
-- end,
-- },
-- },
},
confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
{ name = "buffer" },
},
window = {
documentation = {
@ -174,7 +146,6 @@ cmp.setup({
},
},
experimental = {
ghost_text = false,
native_menu = false,
ghost_text = true,
},
})