Replies: 1 comment
-
... |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
`
local M = {
"hrsh7th/nvim-cmp",
event = "InsertEnter",
dependencies = {
{
"hrsh7th/cmp-nvim-lsp",
event = "InsertEnter",
},
{
"hrsh7th/cmp-emoji",
event = "InsertEnter",
},
{
"hrsh7th/cmp-buffer",
event = "InsertEnter",
},
{
"hrsh7th/cmp-path",
event = "InsertEnter",
},
{
"hrsh7th/cmp-cmdline",
event = "InsertEnter",
},
{
"saadparwaiz1/cmp_luasnip",
event = "InsertEnter",
},
{
"L3MON4D3/LuaSnip",
event = "InsertEnter",
dependencies = {
"rafamadriz/friendly-snippets",
},
},
{
"hrsh7th/cmp-nvim-lua",
},
},
}
function M.config()
local cmp = require "cmp"
local luasnip = require "luasnip"
require("luasnip/loaders/from_vscode").lazy_load()
vim.api.nvim_set_hl(0, "CmpItemKindCopilot", { fg = "#6CC644" })
vim.api.nvim_set_hl(0, "CmpItemKindTabnine", { fg = "#CA42F0" })
vim.api.nvim_set_hl(0, "CmpItemKindEmoji", { fg = "#FDE030" })
local check_backspace = function()
local col = vim.fn.col "." - 1
return col == 0 or vim.fn.getline("."):sub(col, col):match "%s"
end
local icons = require "user.icons"
cmp.setup {
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body) -- For
luasnip
users.end,
},
mapping = cmp.mapping.preset.insert {
[""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
[""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
[""] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
[""] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
[""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }),
[""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }),
[""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }),
[""] = cmp.mapping {
i = cmp.mapping.abort(),
c = cmp.mapping.close(),
},
-- Accept currently selected item. If none selected,
select
first item.-- Set
select
tofalse
to only confirm explicitly selected items.[""] = cmp.mapping.confirm { select = true },
[""] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif luasnip.expandable() then
luasnip.expand()
elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump()
elseif check_backspace() then
fallback()
-- require("neotab").tabout()
else
fallback()
-- require("neotab").tabout()
end
end, {
"i",
"s",
}),
[""] = 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",
}),
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
vim_item.kind = icons.kind[vim_item.kind]
vim_item.menu = ({
nvim_lsp = "",
nvim_lua = "",
luasnip = "",
buffer = "",
path = "",
emoji = "",
})[entry.source.name]
}
end
return M
`
Beta Was this translation helpful? Give feedback.
All reactions