repositories / dotfiles
dotfiles
bugabingas dorkfiles
owned by admin
neovim/lua/bugabinga/lsp/init.lua
Rawlocal dbg = require 'std.dbg'
local icon = require 'std.icon'
require 'bugabinga.lsp.attach'
require 'bugabinga.lsp.commands'
if dbg.get() then
vim.lsp.log.set_level 'debug'
end
vim.lsp.config( '*', {
capabilities = {
textDocument = {
semanticTokens = {
multilineTokenSupport = true,
},
completion = {
completionItem = {
snippetSupport = true,
},
},
},
},
} )
local servers = vim.iter( vim.lsp.get_configs() )
:map( function ( config ) return config.name end )
:totable()
vim.lsp.enable( servers )
local completion_icons = {
Class = icon.class,
Color = icon.color,
Constant = icon.constant,
Constructor = icon.constructor,
Enum = icon.enum,
EnumMember = icon.enum_member,
Field = icon.field,
File = icon.file,
Folder = icon.folder,
Function = icon['function'],
Interface = icon.interface,
Keyword = icon.keyword,
Method = icon.method,
Module = icon.module,
Property = icon.property,
Snippet = icon.snippet,
Struct = icon.struct,
Text = icon.text,
Unit = icon.unit,
Value = icon.value,
Variable = icon.variable,
}
local completion_kinds = vim.lsp.protocol.CompletionItemKind
for i, kind in ipairs( completion_kinds ) do
completion_kinds[i] = completion_icons[kind] or kind
end