lua_ls works on NixOS now

This commit is contained in:
Aram Markarov
2026-01-26 23:49:31 +01:00
parent 089c0040ce
commit 8e409e0535
3 changed files with 122 additions and 121 deletions
+92
View File
@@ -0,0 +1,92 @@
local cmp = require("cmp")
local cmp_lsp = require("cmp_nvim_lsp")
local M = {}
M.capabilities = vim.tbl_deep_extend(
"force",
{},
vim.lsp.protocol.make_client_capabilities(),
cmp_lsp.default_capabilities()
)
local cmp_kinds = {
Text = '',
Method = '',
Function = '',
Constructor = '',
Field = '',
Variable = '',
Class = '',
Interface = '',
Module = '',
Property = '',
Unit = '',
Value = '',
Enum = '',
Keyword = '',
Snippet = '',
Color = '',
File = '',
Reference = '',
Folder = '',
EnumMember = '',
Constant = '',
Struct = '',
Event = '',
Operator = '',
TypeParameter = ''
}
cmp.setup {
formatting = {
fields = {'kind', 'abbr'},
format = function(entry, vim_item)
vim_item.kind = cmp_kinds[vim_item.kind] or ''
if entry.completion_item.detail then
vim_item.menu = entry.completion_item.detail
end
return vim_item
end
},
completion = {completeopt = "menu,menuone"},
snippet = {
expand = function(args) require("luasnip").lsp_expand(args.body) end
},
mapping = { -- change later zach is ????
["<C-d>"] = cmp.mapping.scroll_docs(-4),
["<C-f>"] = cmp.mapping.scroll_docs(4),
["<C-Space>"] = cmp.mapping.complete(),
["<C-e>"] = cmp.mapping.close(),
["<CR>"] = cmp.mapping.confirm {
behavior = cmp.ConfirmBehavior.Insert,
select = true
},
["<Tab>"] = cmp.mapping(function(fallback)
if cmp.visible() then
cmp.select_next_item()
elseif require("luasnip").expand_or_jumpable() then
require("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 require("luasnip").jumpable(-1) then
require("luasnip").jump(-1)
else
fallback()
end
end, {"i", "s"})
},
sources = cmp.config.sources({
{name = "path"}, {name = "nvim_lsp"}, {name = "luasnip"}, -- snip snip
{name = "buffer"}, {name = "nvim_lua"}
})
}
return M