summaryrefslogtreecommitdiff
path: root/lua/lsp.lua
blob: 7d3472565ee39cbeed1dc46ad5c1c1fc11bbfc66 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
local lsp = require("lsp-zero").preset({})

lsp.on_attach(function(client, b)
    local nmap = function(keys, func, desc)
        vim.keymap.set("n", keys, func, { buffer = b, desc = desc })
    end

    nmap("<f2>", vim.lsp.buf.rename, "Rename symbol")
    nmap("<leader>ca", vim.lsp.buf.code_action, "Code action")
    nmap("<f12>", vim.lsp.buf.definition, "Go to definition")
    nmap("<leader>fr", require("telescope.builtin").lsp_references, "Find references")
    nmap("<c-o>", require("telescope.builtin").lsp_document_symbols, "Find document symbols")
    nmap("<c-h>", vim.lsp.buf.hover, "Signature help")
end)

lsp.ensure_installed({
    "clangd",
})

require("lspconfig").clangd.setup({
    cmd = { "C:\\Program Files\\LLVM-15\\bin\\clangd.exe" },
})

lsp.setup()

require("cmp").setup({
    mapping = {
        ['<cr>'] = require("cmp").mapping.confirm({ select = true }),
        ['<esc>'] = require("cmp").mapping.abort(),
    }
})