diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2023-06-21 10:12:45 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2023-06-21 10:12:45 +0000 |
| commit | 0e07c01180b6abd84881b67e41e5f611d49e06db (patch) | |
| tree | c18df6080ec93d72c025282a714821e7ad7d51e3 /.config/nvim/init.lua | |
| parent | 69c4711933e71649232028582e7719220e25e2c3 (diff) | |
Add neovim configuration
Diffstat (limited to '.config/nvim/init.lua')
| -rw-r--r-- | .config/nvim/init.lua | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..f3adc69 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,33 @@ +#!/usr/bin/env lua + +function path_join(...) + return table.concat(vim.tbl_flatten { ... }, '/') +end + +-- Source the VIMRC before doing any neovim lua stuffs +local vimrcpath = path_join { vim.api.nvim_eval [[stdpath('config')]], 'vimrc' } + +vim.cmd {cmd='source', args={vimrcpath}} + + +-- Lsp servers +local lspconfig = require('lspconfig') +lspconfig.clangd.setup {filetypes = {'c', 'cc', 'cpp', 'h', 'hpp', 'cxx'}} +lspconfig.futhark_lsp.setup {} +lspconfig.rust_analyzer.setup {} + +-- Lsp options +vim.api.nvim_create_autocmd('LspAttach', { + group = vim.api.nvim_create_augroup('UserLspConfig', {}), + callback = function(ev) + -- enable omnifunc + vim.bo[ev.buf].omnifunc = 'v:lua.vim.lsp.omnifunc' + + -- buffer-local mappings + local opts = { buffer = ev.buf, noremap = true, silent = true } + vim.keymap.set('i', '<C-Space>', vim.lsp.omnifunc, opts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts) + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts) + end, +}) |
