vim: Better snippets (and split completion file)
This commit is contained in:
parent
d325eb2d27
commit
6e4130fd26
4 changed files with 92 additions and 35 deletions
32
hm/vim/completion_pre.lua
Normal file
32
hm/vim/completion_pre.lua
Normal file
|
@ -0,0 +1,32 @@
|
|||
-- https://github.com/hrsh7th/nvim-cmp/wiki/Example-mappings#luasnip
|
||||
|
||||
local has_words_before = function()
|
||||
unpack = unpack or table.unpack
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
local luasnip = require("luasnip")
|
||||
local cmp = require("cmp")
|
||||
|
||||
local nvim_cmp_tab = function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
||||
|
||||
local nvim_cmp_stab = function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue