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:
@@ -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 }
|
||||||
|
|||||||
@@ -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; {
|
||||||
|
|||||||
Reference in New Issue
Block a user