aboutsummaryrefslogtreecommitdiff
path: root/nvim/lua/lsp.lua
diff options
context:
space:
mode:
authorMax Bossing <info@maxbossing.de>2025-07-22 17:06:33 +0200
committerMax Bossing <info@maxbossing.de>2025-07-22 17:06:33 +0200
commitb426f25aef1f2be2b482bf0b256733eba0b1c5aa (patch)
treecd67b7920531c45a7a48ea4a54e32ec6cc002b5e /nvim/lua/lsp.lua
parentabbbb47917049d4236ac7758cf56d8315620661b (diff)
smh so cool shit
Diffstat (limited to 'nvim/lua/lsp.lua')
-rw-r--r--nvim/lua/lsp.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/nvim/lua/lsp.lua b/nvim/lua/lsp.lua
new file mode 100644
index 0000000..b7fad3e
--- /dev/null
+++ b/nvim/lua/lsp.lua
@@ -0,0 +1,55 @@
+require('mason').setup()
+
+vim.lsp.enable('lua-language-server')
+
+local bufnr = vim.api.nvim_get_current_buf()
+vim.keymap.set('n', '<leader>a',
+ function()
+ vim.cmd.RustLsp('codeAction')
+ end,
+ { silent = true, buffer = bufnr }
+)
+
+vim.keymap.set('n', 'K',
+ function()
+ vim.cmd.RustLsp({'hover', 'actions'})
+ end,
+ { silent = true, buffer = bufnr }
+)
+
+
+local cmp = require('cmp')
+cmp.setup({
+ mapping = cmp.mapping.preset.insert({
+ ['<C-p>'] = cmp.mapping.select_prev_item({behavior = cmp.SelectBehavior.Select}),
+ ['<C-n>'] = cmp.mapping.select_next_item({behavior = cmp.SelectBehavior.Select}),
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ }, {
+ { name = 'buffer' },
+ })
+})
+
+cmp.setup.cmdline({ '/', '?' }, {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = {
+ { name = 'buffer' }
+ }
+})
+
+cmp.setup.cmdline(':', {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = cmp.config.sources({
+ { name = 'path' }
+ }, {
+ { name = 'cmdline' }
+ }),
+ matching = { disallow_symbol_nonprefix_matching = false }
+})
+
+require('lsp_signature').setup()