summaryrefslogtreecommitdiff
path: root/.config/nvim/init.lua
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2023-06-21 10:12:45 +0000
committer0scar <qgt268@alumni.ku.dk>2023-06-21 10:12:45 +0000
commit0e07c01180b6abd84881b67e41e5f611d49e06db (patch)
treec18df6080ec93d72c025282a714821e7ad7d51e3 /.config/nvim/init.lua
parent69c4711933e71649232028582e7719220e25e2c3 (diff)
Add neovim configuration
Diffstat (limited to '.config/nvim/init.lua')
-rw-r--r--.config/nvim/init.lua33
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,
+})