Autocomplete & Snippets

This commit is contained in:
Ben Clayton 2024-12-14 12:51:51 -07:00
parent 216f1ca571
commit 84cca21775

View File

@ -4,6 +4,9 @@
undotree.enable = true;
bufferline.enable = true;
web-devicons.enable = true;
cmp-nvim-lsp.enable = true;
cmp-path.enable = true;
};
plugins.gitsigns = {
@ -26,6 +29,66 @@
enable = true;
settings.highlight.enable = true;
};
plugins.friendly-snippets = {
enable = true;
};
plugins.luasnip = {
enable = true;
settings = {
enable_autosnippets = true;
store_selection_keys = "<Tab>";
};
};
plugins.cmp = {
enable = true;
settings = {
autoEnableSources = true;
snippet = {
expand = ''
function(args)
require('luasnip').lsp_expand(args.body)
end
'';
};
sources = [
{ name = "nvim_lsp"; }
{
name = "path"; # file system paths
keywordLength = 2 ;
}
{
name = "luasnip"; # snippets
keywordLength = 2;
}
];
mapping = {
"<Tab>" = "cmp.mapping(cmp.mapping.select_next_item(), {'i', 's'})";
"<C-j>" = "cmp.mapping.select_next_item()";
"<C-k>" = "cmp.mapping.select_prev_item()";
"<C-e>" = "cmp.mapping.abort()";
"<C-b>" = "cmp.mapping.scroll_docs(-4)";
"<C-f>" = "cmp.mapping.scroll_docs(4)";
"<C-Space>" = "cmp.mapping.complete()";
"<CR>" = "cmp.mapping.confirm({ select = true })";
"<S-CR>" = "cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true })";
"<C-l>" = ''
cmp.mapping(function()
if luasnip.expand_or_locally_jumpable() then
luasnip.expand_or_jump()
end
end, { 'i', 's' })
'';
"<C-h>" = ''
cmp.mapping(function()
if luasnip.locally_jumpable(-1) then
luasnip.jump(-1)
end
end, { 'i', 's' })
'';
};
};
};
colorschemes.catppuccin = {
enable = true;