summaryrefslogtreecommitdiffstats
path: root/.config/nvim
diff options
context:
space:
mode:
authorJoe <rrbo@proton.me>2023-09-22 15:07:14 +0200
committerJoe <rrbo@proton.me>2023-09-22 15:07:14 +0200
commit727a6edc7545f6c47a8433c8c8cd9bc0423d0103 (patch)
treebbedbce172f77a203d551688471d077384f54f15 /.config/nvim
parentup (diff)
downloaddotfiles-bsd-727a6edc7545f6c47a8433c8c8cd9bc0423d0103.tar.gz
dotfiles-bsd-727a6edc7545f6c47a8433c8c8cd9bc0423d0103.tar.bz2
dotfiles-bsd-727a6edc7545f6c47a8433c8c8cd9bc0423d0103.tar.xz
dotfiles-bsd-727a6edc7545f6c47a8433c8c8cd9bc0423d0103.tar.zst
dotfiles-bsd-727a6edc7545f6c47a8433c8c8cd9bc0423d0103.zip
up
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/after/plugin/lsp.lua46
-rw-r--r--.config/nvim/after/plugin/whichkey.lua14
-rw-r--r--.config/nvim/lua/plug.lua10
-rw-r--r--.config/nvim/lua/sidebars.lua2
4 files changed, 63 insertions, 9 deletions
diff --git a/.config/nvim/after/plugin/lsp.lua b/.config/nvim/after/plugin/lsp.lua
new file mode 100644
index 0000000..66d4ad8
--- /dev/null
+++ b/.config/nvim/after/plugin/lsp.lua
@@ -0,0 +1,46 @@
+local lsp = require('lsp-zero')
+
+lsp.preset('recommended')
+
+require('mason').setup({})
+require('mason-lspconfig').setup({
+ ensure_installed = {
+ 'tsserver',
+ 'eslint',
+ 'sumneko_lua',
+ 'ccls',
+ 'gopls',
+ 'rust_analyzer',
+ },
+ handlers = {
+ lsp_zero.default_setup,
+ },
+})
+
+local cmp = require('cmp')
+local cmp_select = { behavior = cmp.SelectBehavior.Select }
+local cmp_mappings = lsp.defaults.cmp_mappings({
+ ['<C-p>'] = cmp.mapping.select_prev_item(cmp_select),
+ ['<C-n>'] = cmp.mapping.select_next_item(cmp_select),
+ ['<C-n>'] = cmp.mapping.confirm({ select = true }),
+ ['<C-Space>'] = cmp.mapping.complete(),
+})
+
+-- lsp.set_preferences({
+-- sign_icons = { }
+-- })
+
+lsp.on_attach(function(client, bufnr)
+ local opts = { buffer = bufnr, remap = false }
+
+ vim.keymap.set('n', 'gd', function() vim.lsp.buf.definition() end, opts)
+ vim.keymap.set('n', 'K', function() vim.lsp.buf.hover() end, opts)
+ vim.keymap.set('n', '<leader>vws', function() vim.lsp.buf.workspace_symbol() end, opts)
+ vim.keymap.set('n', '<leader>vd', function() vim.diagnostic.open_float() end, opts)
+ vim.keymap.set('n', '[d', function() vim.diagnostic.goto_next() end, opts)
+ vim.keymap.set('n', ']d', function() vim.diagnostic.goto_prev() end, opts)
+ vim.keymap.set('n', '<leader>vca', function() vim.lsp.buf.code_actions() end, opts)
+ vim.keymap.set('n', '<leader>vrr', function() vim.lsp.buf.references() end, opts)
+ vim.keymap.set('n', '<leader>vrn', function() vim.lsp.buf.rename() end, opts)
+ vim.keymap.set('i', '<C-h>', function() vim.lsp.buf.signature_help() end, opts)
+end)
diff --git a/.config/nvim/after/plugin/whichkey.lua b/.config/nvim/after/plugin/whichkey.lua
index 7b74e73..de726b6 100644
--- a/.config/nvim/after/plugin/whichkey.lua
+++ b/.config/nvim/after/plugin/whichkey.lua
@@ -15,13 +15,10 @@ wk.register({
G = { ':FloatermNew lazygit<CR>', 'lazygit', noremap = true, silent = true },
h = { ':Startify<CR>', 'startify', noremap = true, silent = true },
k = { ':w<CR>:bp<CR>:bd #<CR>', 'write and close buffer', noremap = true, silent = false },
- p = { ':<C-u>CocList -A --normal yank<CR>', 'CoC paste', noremap = true, silent = true },
- u = { ':UndotreeShow<CR>', 'undotree', noremap = true, silent = true },
+ u = { vim.cmd.UndotreeToggle, 'undotree', noremap = true, silent = true },
v = { ':FloatermNew vifm<CR>', 'vifm', noremap = true, silent = true },
w = { ':w<CR>', 'write buffer', noremap = true, silent = false },
x = { ':w<CR>:bp<CR>:bd #<CR>', 'write and close buffer', noremap = true, silent = false },
- q = { name = '+coc-fix-current' },
- r = { name = '+coc-rename' },
f = {
name = 'telescope',
-- f = { ':Telescope find_files<CR>', 'find files', noremap = true, silent = true },
@@ -32,10 +29,11 @@ wk.register({
end, 'grep string', noremap = true, silent = true },
},
g = {
- name = 'grep',
- a = { ':Ag<CR>', 'the_silver_searcher', noremap = true, silent = true },
- g = { ':Grep<CR>', 'grep', noremap = true, silent = true },
- r = { ':Rg<CR>', 'ripgrep', noremap = true, silent = true },
+ name = 'git',
+ s = { vim.cmd.Git, 'git' },
+ -- a = { ':Ag<CR>', 'the_silver_searcher', noremap = true, silent = true },
+ -- g = { ':Grep<CR>', 'grep', noremap = true, silent = true },
+ -- r = { ':Rg<CR>', 'ripgrep', noremap = true, silent = true },
},
v = {
name = 'nvim',
diff --git a/.config/nvim/lua/plug.lua b/.config/nvim/lua/plug.lua
index 191637d..2b5bfd1 100644
--- a/.config/nvim/lua/plug.lua
+++ b/.config/nvim/lua/plug.lua
@@ -45,5 +45,15 @@ Plug('nvim-lua/plenary.nvim')
Plug('ThePrimeagen/harpoon')
Plug('HiPhish/rainbow-delimiters.nvim')
Plug('nvim-treesitter/nvim-treesitter', {['do'] = ':TSUpdate'})
+-- Uncomment these if you want to manage LSP servers from neovim
+ Plug('williamboman/mason.nvim')
+ Plug('williamboman/mason-lspconfig.nvim')
+-- LSP Support
+Plug('neovim/nvim-lspconfig')
+-- Autocompletion
+Plug('hrsh7th/nvim-cmp')
+Plug('hrsh7th/cmp-nvim-lsp')
+Plug('L3MON4D3/LuaSnip')
+Plug('VonHeikemen/lsp-zero.nvim', {['branch'] = 'v3.x'})
vim.call('plug#end')
diff --git a/.config/nvim/lua/sidebars.lua b/.config/nvim/lua/sidebars.lua
index 058a673..796a21d 100644
--- a/.config/nvim/lua/sidebars.lua
+++ b/.config/nvim/lua/sidebars.lua
@@ -36,4 +36,4 @@ let g:startify_session_before_save = ['call sidebar#close_all()']
vim.keymap.set('n', '<F2>', ':call sidebar#toggle("nerdtree")<CR>', { noremap = true, silent = true })
vim.keymap.set('n', '<F4>', ':make<space>-j5<space>', { noremap = true, silent = false })
vim.keymap.set('n', '<F3>', ':call sidebar#toggle("tagbar")<CR>', { noremap = true, silent = true })
-vim.keymap.set('n', '<F5>', ':call sidebar#toggle("undotree")<CR>', { noremap = true, silent = true })
+vim.keymap.set('n', '<F5>', vim.cmd.UndotreeToggle, { noremap = true, silent = true })