Files
Neolite/lua/completions.lua
Arkaprabha Chakraborty f00e435d4e Commits:
Call the new plugins
    Add gruvbox colorscheme
    Turn off jump on jumpable for code snippets
    Add git integration
    Remove unnecessary keybinds
    Change keybinds for LSP functions
    Turn off format on buffer write
    Add plugin sources
    Remove 'help' from syntax highlighting
    Add transparency option
    Add visible indentations

Changes to be committed:
    modified:   init.lua
    modified:   lua/colorschemes.lua
    modified:   lua/completions.lua
    new file:   lua/git-integration.lua
    modified:   lua/keybinds.lua
    modified:   lua/lsp-config.lua
    modified:   lua/lsp-format.lua
    modified:   lua/plugins.lua
    modified:   lua/syntax-highlight.lua
    new file:   lua/transparency.lua
    new file:   lua/visible-indents.lua
2023-06-09 06:38:22 +05:30

90 lines
2.2 KiB
Lua

local ok, cmp = pcall(require, "cmp")
if not ok then
return
end
local luasnip_ok, luasnip = pcall(require, "luasnip")
if not luasnip_ok then
return
end
local luasnip_vscode_ok, luasnip_vscode = pcall(require, "luasnip/loaders/from_vscode")
if not luasnip_vscode_ok then
return
end
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
luasnip_vscode.lazy_load()
cmp.setup({
view = {
--entries = { name = "custom", selection_order = "near_cursor" },
},
snippet = {
expand = function(args)
luasnip.lsp_expand(args.body) -- For `luasnip` users.
end,
},
mapping = {
["<CR>"] = cmp.mapping.confirm({ select = true }),
["<C-k>"] = cmp.mapping.scroll_docs(-4),
["<C-j>"] = cmp.mapping.scroll_docs(4),
["<C-e>"] = cmp.mapping.abort(),
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
-- they way you will only jump inside the snippet region
--elseif luasnip.expand_or_jumpable() then
-- luasnip.expand_or_jump()
elseif has_words_before() then
cmp.complete()
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 = {
{ name = "nvim_lsp" },
{ name = "luasnip" },
{ name = "buffer" },
{ name = "path" },
},
confirm_opts = {
behavior = cmp.ConfirmBehavior.Replace,
select = false,
},
experimental = {
ghost_text = false,
},
formatting = {
fields = { "kind", "abbr", "menu" },
format = function(entry, vim_item)
local lk_ok, lspkind = pcall(require, "lspkind")
if not lk_ok then
return
end
local kind = lspkind.cmp_format({ mode = "symbol_text", maxwidth = 50 })(entry, vim_item)
local strings = vim.split(kind.kind, "%s", { trimempty = true })
kind.kind = " " .. (strings[1] or "") .. " "
kind.menu = " (" .. (strings[2] or "") .. ")"
return kind
end,
},
})