init: public
This commit is contained in:
68
modules/coding/editor/neovim/nvim/lua/plugins/cmp/cmp.lua
Normal file
68
modules/coding/editor/neovim/nvim/lua/plugins/cmp/cmp.lua
Normal file
@@ -0,0 +1,68 @@
|
||||
local cmp = require("cmp")
|
||||
|
||||
M = {
|
||||
window = {
|
||||
completion = {
|
||||
border = 'rounded',
|
||||
scrollbar = '║',
|
||||
},
|
||||
documentation = {
|
||||
border = 'rounded',
|
||||
scrollbar = '║',
|
||||
},
|
||||
},
|
||||
formatting = {
|
||||
format = require('lspkind').cmp_format({
|
||||
mode = "symbol",
|
||||
maxwidth = 50,
|
||||
ellipsis_char = '...',
|
||||
symbol_map = { Codeium = "", }
|
||||
})
|
||||
},
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<Escape>"] = cmp.mapping.abort(),
|
||||
["<Tab>"] = cmp.mapping.confirm({ select = true }),
|
||||
["<Up>"] = cmp.mapping(function (fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {
|
||||
"i",
|
||||
"s"
|
||||
}),
|
||||
["<Down>"] = cmp.mapping(function (fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, {
|
||||
"i",
|
||||
"s"
|
||||
}),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
-- { name = "codeium" },
|
||||
{ name = "path" },
|
||||
}, {
|
||||
{ name = "buffer" },
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
vim.o.wildmenu = true
|
||||
vim.o.pumheight = 10
|
||||
|
||||
return M
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
M = {
|
||||
sources = {
|
||||
friendly_snippets = true
|
||||
},
|
||||
history = true,
|
||||
updateevents = { "TextChanged", "TextChangedI" }
|
||||
}
|
||||
|
||||
-- vscode format
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
require("luasnip.loaders.from_vscode").lazy_load { paths = vim.g.vscode_snippets_path or "" }
|
||||
|
||||
-- snipmate format
|
||||
require("luasnip.loaders.from_snipmate").load()
|
||||
require("luasnip.loaders.from_snipmate").lazy_load { paths = vim.g.snipmate_snippets_path or "" }
|
||||
|
||||
-- lua format
|
||||
require("luasnip.loaders.from_lua").load()
|
||||
require("luasnip.loaders.from_lua").lazy_load { paths = vim.g.lua_snippets_path or "" }
|
||||
|
||||
local luasnip = require("luasnip")
|
||||
vim.api.nvim_create_autocmd("InsertLeave", {
|
||||
callback = function()
|
||||
if
|
||||
luasnip.session.current_nodes[vim.api.nvim_get_current_buf()]
|
||||
and not luasnip.session.jump_active
|
||||
then
|
||||
luasnip.unlink_current()
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
return M
|
||||
|
||||
Reference in New Issue
Block a user