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