From fbb7563609f92bda0289604039a44e4616d32100 Mon Sep 17 00:00:00 2001 From: Christoph Stahl Date: Thu, 27 Oct 2022 09:38:33 +0200 Subject: [PATCH] dotfiles --- .config/nvim/init.vim | 74 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 .config/nvim/init.vim diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim new file mode 100644 index 0000000..8de9364 --- /dev/null +++ b/.config/nvim/init.vim @@ -0,0 +1,74 @@ +call plug#begin() + Plug 'jeffkreeftmeijer/neovim-sensible' + Plug 'nvim-lualine/lualine.nvim' + Plug 'kyazdani42/nvim-web-devicons' + Plug 'akinsho/bufferline.nvim', { 'tag': 'v2.*' } + Plug 'EdenEast/nightfox.nvim' + Plug 'neovim/nvim-lspconfig' + Plug 'RishabhRD/popfix' + Plug 'RishabhRD/nvim-lsputils' + Plug 'folke/which-key.nvim' + Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} + Plug 'nvim-lua/plenary.nvim' + Plug 'nvim-telescope/telescope.nvim', { 'tag': '0.1.x' } + Plug 'glepnir/lspsaga.nvim', { 'branch': 'main' } +call plug#end() + +colorscheme carbonfox +set termguicolors +let mapleader="\" + +" Setup lua based plugins +lua << END + local builtin = require('telescope.builtin') + require'nvim-treesitter.configs'.setup {} + require("which-key").setup {} + require'nvim-web-devicons'.get_icons() + require('lualine').setup() + require('bufferline').setup() + require('lspsaga').init_lsp_saga() + + -- Keybindings + vim.keymap.set('n', 'ff', builtin.find_files, {}) + vim.keymap.set('n', 'fg', builtin.live_grep, {}) + vim.keymap.set('n', 'fb', builtin.buffers, {}) + vim.keymap.set('n', 'fh', builtin.help_tags, {}) + vim.keymap.set('n', 'ev', ':e ~/.config/nvim/init.vim', {silent = true}) + -- lsp keybindings + -- Mappings. + -- See `:help vim.diagnostic.*` for documentation on any of the below functions + local opts = { noremap=true, silent=true } + vim.keymap.set('n', 'e', vim.diagnostic.open_float, opts) + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts) + vim.keymap.set('n', 'q', vim.diagnostic.setloclist, opts) + + -- Use an on_attach function to only map the following keys + -- after the language server attaches to the current buffer + local on_attach = function(client, bufnr) + -- Enable completion triggered by + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + + -- Mappings. + -- See `:help vim.lsp.*` for documentation on any of the below functions + local bufopts = { noremap=true, silent=true, buffer=bufnr } + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts) + vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, bufopts) + vim.keymap.set('n', '', vim.lsp.buf.signature_help, bufopts) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) + vim.keymap.set('n', 'wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end, bufopts) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition, bufopts) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) + vim.keymap.set({"n","v"}, "ca", "Lspsaga code_action", { silent = true }) + vim.keymap.set('n', 'gr', vim.lsp.buf.references, bufopts) + vim.keymap.set('n', 'f', function() vim.lsp.buf.format { async = true } end, bufopts) + end + require'lspconfig'.jedi_language_server.setup{ on_attach = on_attach } + require'lspconfig'.hls.setup{on_attach = on_attach} + +END