1
0
mirror of https://github.com/kmein/niveum synced 2026-03-19 11:31:09 +01:00

feat(neovim): luasnip and supertab

This commit is contained in:
2023-08-02 10:20:03 +02:00
parent b5f50967b4
commit ee2dcc3669
2 changed files with 39 additions and 25 deletions

View File

@@ -1,18 +1,46 @@
local cmp = require'cmp' local cmp = require("cmp")
local luasnip = require("luasnip")
print(vim.g.snippet_directory)
if vim.g.snippet_directory then
require("luasnip.loaders.from_vscode").lazy_load({
paths = { vim.g.snippet_directory }
})
end
luasnip.config.set_config({
history = true,
updateevents = "TextChanged,TextChangedI",
enable_autosnippets = true
})
cmp.setup({ cmp.setup({
snippet = { snippet = {
expand = function(args) expand = function(args)
require("luasnip").lsp_expand(args.body) luasnip.lsp_expand(args.body)
end, end,
}, },
mapping = cmp.mapping.preset.insert({ mapping = {
['<C-b>'] = cmp.mapping.scroll_docs(-4), -- https://github.com/hrsh7th/nvim-cmp/wiki/Example-mappings#super-tab-like-mapping
['<C-f>'] = cmp.mapping.scroll_docs(4), ['<Tab>'] = cmp.mapping(function(fallback)
['<C-Space>'] = cmp.mapping.complete(), if cmp.visible() then
['<C-e>'] = cmp.mapping.abort(), cmp.select_next_item()
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. elseif luasnip.expand_or_jumpable() then
}), luasnip.expand_or_jump()
else
fallback()
end
end, {"i", "s"}),
["<S-Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_prev_item()
elseif luasnip.jumpable(-1) then
luasnip.jump(-1)
else
fallback()
end
end, { "i", "s" }),
},
sources = cmp.config.sources({ sources = cmp.config.sources({
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'luasnip' }, { name = 'luasnip' },
@@ -21,21 +49,6 @@ cmp.setup({
}) })
}) })
-- -- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
-- cmp.setup.cmdline({ '/', '?' }, {
-- mapping = cmp.mapping.preset.cmdline(),
-- sources = {
-- { name = 'buffer' }
-- }
-- })
-- -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
-- cmp.setup.cmdline(':', {
-- mapping = cmp.mapping.preset.cmdline(),
-- sources = cmp.config.sources({
-- { name = 'path' }
-- })
-- })
local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()) local capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities())
local opts = { noremap=true, silent=true } local opts = { noremap=true, silent=true }

View File

@@ -10,6 +10,7 @@
customRC = '' customRC = ''
source ${../lib/vim/shared.vim} source ${../lib/vim/shared.vim}
source ${../lib/vim/init.vim} source ${../lib/vim/init.vim}
let g:snippet_directory = '${vimPlugins.friendly-snippets}'
luafile ${../lib/vim/init.lua} luafile ${../lib/vim/init.lua}
''; '';
packages.nvim = with vimPlugins; { packages.nvim = with vimPlugins; {