From 0e07c01180b6abd84881b67e41e5f611d49e06db Mon Sep 17 00:00:00 2001 From: 0scar Date: Wed, 21 Jun 2023 12:12:45 +0200 Subject: Add neovim configuration --- .config/nvim/init.lua | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .config/nvim/init.lua (limited to '.config/nvim/init.lua') 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', '', 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, +}) -- cgit v1.3