Add cmp.nix
This commit is contained in:
parent
0a1c8520fa
commit
f662af1de3
1 changed files with 69 additions and 0 deletions
69
home-manager/common/software/cli/nixvim/cmp.nix
Normal file
69
home-manager/common/software/cli/nixvim/cmp.nix
Normal file
|
@ -0,0 +1,69 @@
|
|||
{ ... }: {
|
||||
nixvim.plugins = {
|
||||
# Snippet engine for neovim
|
||||
luasnip.enable = true;
|
||||
cmp_luasnip.enable = true;
|
||||
# CMP Addons
|
||||
cmp-buffer.enable = true;
|
||||
cmp-path.enable = true;
|
||||
cmp-nvim-lsp.enable = true;
|
||||
cmp-nvim-lsp-document-symbol.enable = true;
|
||||
cmp-nvim-lsp-signature-help.enable = true;
|
||||
|
||||
nvim-cmp = {
|
||||
enable = true;
|
||||
autoEnableSources = true;
|
||||
mapping = {
|
||||
"<C-Space>" = "cmp.mapping.complete()";
|
||||
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
|
||||
"<C-e>" = "cmp.mapping.close()";
|
||||
"<C-f>" = "cmp.mapping.scroll_docs(4)";
|
||||
"<CR>" = "cmp.mapping.confirm({ select = true })";
|
||||
"<S-Tab>" = {
|
||||
action = "cmp.mapping.select_prev_item()";
|
||||
modes = [
|
||||
"i"
|
||||
"s"
|
||||
];
|
||||
};
|
||||
"<Tab>" = {
|
||||
action = "cmp.mapping.select_next_item()";
|
||||
modes = [
|
||||
"i"
|
||||
"s"
|
||||
];
|
||||
};
|
||||
};
|
||||
sources = [
|
||||
# { name = "nvim_lua"; }
|
||||
{ name = "nvim_lsp"; }
|
||||
# { name = "nvim_lsp_signature_help"; }
|
||||
{ name = "calc"; }
|
||||
{ name = "path"; }
|
||||
{ name = "buffer"; }
|
||||
{ name = "luasnip"; }
|
||||
];
|
||||
snippet.expand = "luasnip";
|
||||
window = {
|
||||
completion.border = "rounded";
|
||||
documentation.border = "rounded";
|
||||
};
|
||||
formatting = {
|
||||
fields = [ "menu" "abbr" "kind" ];
|
||||
# https://rsdlt.github.io/posts/rust-nvim-ide-guide-walkthrough-development-debug/
|
||||
format = ''
|
||||
function(entry, item)
|
||||
local menu_icon = {
|
||||
nvim_lsp = 'λ',
|
||||
luasnip = '⋗',
|
||||
buffer = 'Ω',
|
||||
path = '🖫',
|
||||
}
|
||||
item.menu = menu_icon[entry.source.name]
|
||||
return item
|
||||
end,
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Reference in a new issue