aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Schmucker <ts@its1.de>2023-04-05 17:31:34 +0200
committerThomas Schmucker <ts@its1.de>2023-04-05 17:31:34 +0200
commit6af68c8587be7cfd334709ff514b3f14c74b092d (patch)
treedf4762ff5b0d26a01814fa599d65382a760900aa
parente9a550990ade0b01d006b2fe5912f4c722285dc7 (diff)
downloaddotfiles-6af68c8587be7cfd334709ff514b3f14c74b092d.tar.gz
dotfiles-6af68c8587be7cfd334709ff514b3f14c74b092d.tar.bz2
dotfiles-6af68c8587be7cfd334709ff514b3f14c74b092d.zip
LSP Konfiguration und Keybindings hinzugefügt
-rw-r--r--nvim/keymaps.vim45
-rw-r--r--nvim/plugins.vim19
2 files changed, 58 insertions, 6 deletions
diff --git a/nvim/keymaps.vim b/nvim/keymaps.vim
index a94533b..a37bdd1 100644
--- a/nvim/keymaps.vim
+++ b/nvim/keymaps.vim
@@ -4,8 +4,7 @@ let mapleader=','
4nnoremap <silent> <C-PageUp> :tabprevious<CR> 4nnoremap <silent> <C-PageUp> :tabprevious<CR>
5nnoremap <silent> <C-PageDown> :tabnext<CR> 5nnoremap <silent> <C-PageDown> :tabnext<CR>
6 6
7" besseres Verhalten von <Page*> 7" besseres Verhalten von <PageUp und <PageDown>
8" https://vimrc-dissection.blogspot.com/2009/02/fixing-pageup-and-pagedown.html
9map <silent> <PageUp> 1000<C-U> 8map <silent> <PageUp> 1000<C-U>
10map <silent> <PageDown> 1000<C-D> 9map <silent> <PageDown> 1000<C-D>
11imap <silent> <PageUp> <C-O>1000<C-U> 10imap <silent> <PageUp> <C-O>1000<C-U>
@@ -31,7 +30,41 @@ inoremap <expr> <C-j> pumvisible() ? "\<C-n>" : "\<Down>"
31inoremap <expr> <C-k> pumvisible() ? "\<C-p>" : "\<Up>" 30inoremap <expr> <C-k> pumvisible() ? "\<C-p>" : "\<Up>"
32 31
33" Funktionstasten 32" Funktionstasten
34nnoremap <F4> :NERDTreeToggle<CR> 33nnoremap <silent> <F4> :NERDTreeToggle<CR>
35nnoremap <F5> :make<CR> 34nnoremap <silent> <F5> :make<CR>
36nnoremap <F7> :MundoToggle<CR> 35nnoremap <silent> <F7> :MundoToggle<CR>
37nnoremap <F8> :TagbarToggle<CR> 36nnoremap <silent> <F8> :TagbarToggle<CR>
37
38" LSP Keybindings
39lua << EOF
40vim.keymap.set('n', '<space>e', vim.diagnostic.open_float)
41vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
42vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
43vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist)
44
45vim.api.nvim_create_autocmd('LspAttach', {
46 group = vim.api.nvim_create_augroup('UserLspConfig', {}),
47 callback = function(ev)
48 vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
49
50 local opts = { buffer = ev.buf }
51 vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
52 vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
53 vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
54 vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
55 vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, opts)
56 vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, opts)
57 vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, opts)
58 vim.keymap.set('n', '<space>wl', function()
59 print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
60 end, opts)
61 vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, opts)
62 vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, opts)
63 vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, opts)
64 vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
65 vim.keymap.set('n', '<space>f', function()
66 vim.lsp.buf.format { async = true }
67 end, opts)
68 end,
69})
70EOF
diff --git a/nvim/plugins.vim b/nvim/plugins.vim
index 3111f6a..65477d8 100644
--- a/nvim/plugins.vim
+++ b/nvim/plugins.vim
@@ -17,6 +17,7 @@ call plug#begin()
17 Plug 'tpope/vim-repeat' 17 Plug 'tpope/vim-repeat'
18 Plug 'tpope/vim-surround' 18 Plug 'tpope/vim-surround'
19 Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} 19 Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
20 Plug 'neovim/nvim-lspconfig'
20call plug#end() 21call plug#end()
21 22
22" EMMET 23" EMMET
@@ -67,3 +68,21 @@ require'nvim-treesitter.configs'.setup {
67 }, 68 },
68} 69}
69EOF 70EOF
71
72" LSP
73lua << EOF
74local lspconfig = require'lspconfig'
75lspconfig.clangd.setup {
76 cmd = { 'clangd15' }
77}
78lspconfig.lua_ls.setup {}
79lspconfig.pyright.setup {}
80lspconfig.tsserver.setup {}
81lspconfig.vimls.setup {}
82lspconfig.rust_analyzer.setup {
83 -- Server-specific settings. See `:help lspconfig-setup`
84 settings = {
85 ['rust-analyzer'] = {},
86 },
87}
88EOF