summaryrefslogtreecommitdiff
path: root/lua/lsp.lua
diff options
context:
space:
mode:
authorSteven Le Rouzic <steven.lerouzic@gmail.com>2023-04-02 17:44:43 +0200
committerSteven Le Rouzic <steven.lerouzic@gmail.com>2023-04-02 17:44:43 +0200
commit65f0046083b6239bdd76a81af63e3cad4516c75a (patch)
tree46677f49f4d34e40f6a0c8ae87732823c836f6c6 /lua/lsp.lua
Initial commit
Diffstat (limited to 'lua/lsp.lua')
-rw-r--r--lua/lsp.lua23
1 files changed, 23 insertions, 0 deletions
diff --git a/lua/lsp.lua b/lua/lsp.lua
new file mode 100644
index 0000000..4e0cf17
--- /dev/null
+++ b/lua/lsp.lua
@@ -0,0 +1,23 @@
+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({})
+
+lsp.setup()
+