fix cmp mappings, add snippy

This commit is contained in:
sloane 2024-04-13 12:57:55 -04:00
parent 43797ea87b
commit 54eec79da6
No known key found for this signature in database

View file

@ -24,6 +24,8 @@
nerdtree
nvim-snippy
(pkgs.vimUtils.buildVimPlugin {
name = "vim-jjdescription";
src = pkgs.fetchFromGitHub {
@ -77,16 +79,58 @@
enable = true;
autoEnableSources = true;
settings = {
mapping.__raw = "cmp.mapping.preset.insert({})";
snippet.expand = "function(args) require('snippy').expand_snippet(args.body) end";
mapping.__raw = ''
cmp.mapping.preset.insert({
["<Tab>"] = cmp.mapping(function(fallback)
local has_words_before = function()
unpack = unpack or table.unpack
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
if cmp.visible() then
cmp.select_next_item()
elseif require('snippy').can_expand_or_advance() then
require('snippy').expand_or_advance()
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 require('snippy').can_jump(-1) then
require('snippy').previous()
else
fallback()
end
end, {"i", "s"}),
["<CR>"] = cmp.mapping({
i = function(fallback)
if cmp.visible() and cmp.get_active_entry() then
cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })
else
fallback()
end
end,
s = cmp.mapping.confirm({ select = true }),
c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
})
})
'';
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
{ name = "snippy"; }
];
};
cmdline = {
":" = {
mapping = { __raw = "cmp.mapping.preset.cmdline()"; };
mapping.__raw = "cmp.mapping.preset.cmdline()";
sources = [
{ name = "path"; }
{ name = "cmdline"; }