gabrielgio.lua @ d5d80f71623aa5c13f7f21eeb602b60ffbc92fa6

 1local function set_key(mode, keys, v, opts)
 2	return vim.keymap.set(mode, keys, v, opts)
 3end
 4
 5local function on_attach(client, bufnr)
 6	local bufopts = { noremap = true, silent = true, buffer = bufnr }
 7	set_key("n", "gD", vim.lsp.buf.declaration, bufopts)
 8	set_key("n", "gd", vim.lsp.buf.definition, bufopts)
 9	set_key("n", "K", vim.lsp.buf.hover, bufopts)
10	set_key("n", "gi", vim.lsp.buf.implementation, bufopts)
11	set_key("n", "gr", vim.lsp.buf.references, bufopts)
12	set_key("n", "<C-s>", vim.lsp.buf.signature_help, bufopts)
13	set_key("n", "<space>rn", vim.lsp.buf.declaration, bufopts)
14	set_key("n", "<space>ca", vim.lsp.buf.code_action, bufopts)
15	return bufnr
16end
17
18local function setup(f)
19	vim.lsp.enable(f)
20	return vim.lsp.config(f, { on_attach = on_attach })
21end
22
23local function load_all(l)
24	for _, v in ipairs(l) do
25		setup(v)
26	end
27	return nil
28end
29
30load_all({
31	"rust_analyzer",
32	"clangd",
33	"cssls",
34	"html",
35	"emmet_ls",
36	"pylsp",
37	"zls",
38	"ts_ls",
39	"terraformls",
40	"tsp_server",
41})
42
43vim.lsp.enable("gopls")
44vim.lsp.config("gopls", {
45	cmd_env = { GOFLAGS = "-tags=unit,integration,e2e" },
46	on_attach = on_attach,
47})
48vim.lsp.enable("lua_ls")
49vim.lsp.config("lua_ls", {
50	on_attach = on_attach,
51	settings = {
52		Lua = {
53			diagnostics = {
54				globals = { "vim" },
55			},
56		},
57	},
58})