1 local lsp = require('lsp-zero')
2 lsp.preset('recommended')
4 lsp.configure('lua_ls', {
15 lsp.on_attach(function(client, bufnr)
16 lsp.default_keymaps({buffer = bufnr})
17 vim.keymap.set ("n", "<leader>r", vim.lsp.buf.rename, options)
18 vim.keymap.set ("n", "<leader>f", vim.lsp.buf.code_action, options)
27 -- lsp.on_attach = function (_, bufnr)
29 -- local options = { buffer = bufnr, remap = false }
30 -- vim.keymap.set ("n", "K", vim.lsp.buf.hover, options) -- buffer=0 -> only in current buffer
31 -- vim.keymap.set ("n", "gd", vim.lsp.buf.definition, options) -- goto definition
32 -- vim.keymap.set ("n", "gT", vim.lsp.buf.type_definition, options) -- goto typedefinition
33 -- vim.keymap.set ("n", "gi", vim.lsp.buf.implementation, options) -- goto implementation
34 -- vim.keymap.set ("n", "dj", vim.diagnostic.goto_next, options) -- goto dignostic next
35 -- vim.keymap.set ("n", "dk", vim.diagnostic.goto_prev, options) -- goto diognostic prev
36 -- vim.keymap.set ("n", "dl", "<cmd>Telescope diagnostic", options) -- goto list failure
37 -- vim.keymap.set ("n", "<leader>r", vim.lsp.buf.rename, options)
38 -- vim.keymap.set ("n", "<leader>f", vim.lsp.buf.code_action, options)
41 local cmp = require('cmp')
42 local cmp_select = {behavior = cmp.SelectBehavior.Select}
43 local cmp_mappings = lsp.defaults.cmp_mappings({
44 ['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
45 ['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
46 ['<C-y>'] = cmp.mapping.confirm({ select = true }),
47 ["<C-Space>"] = cmp.mapping.complete(),
51 mapping = cmp_mappings,
55 experimental = { ghost_text = true },
61 vim.diagnostic.config({
63 -- source = "always", -- Or "if_many"
64 prefix = '●', -- Could be '■', '▎', 'x'
68 source = "always", -- Or "if_many"