From 8577c3b7cba714551d3537f3337ee2490bd20106 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Sun, 14 Mar 2021 21:58:45 +0100 Subject: started moving to pure lua config --- .config/nvim/plug-config/coc.vim | 200 -------------------------------- .config/nvim/plug-config/lsp-config.vim | 19 +++ .config/nvim/plug-config/lsp-saga.vim | 7 ++ .config/nvim/plug-config/nvimtree.vim | 51 ++++++++ .config/nvim/plug-config/poet-v.vim | 2 + .config/nvim/plug-config/telescope.vim | 14 --- 6 files changed, 79 insertions(+), 214 deletions(-) delete mode 100644 .config/nvim/plug-config/coc.vim create mode 100644 .config/nvim/plug-config/lsp-config.vim create mode 100644 .config/nvim/plug-config/lsp-saga.vim create mode 100644 .config/nvim/plug-config/nvimtree.vim create mode 100644 .config/nvim/plug-config/poet-v.vim delete mode 100644 .config/nvim/plug-config/telescope.vim (limited to '.config/nvim/plug-config') diff --git a/.config/nvim/plug-config/coc.vim b/.config/nvim/plug-config/coc.vim deleted file mode 100644 index ec9af9f..0000000 --- a/.config/nvim/plug-config/coc.vim +++ /dev/null @@ -1,200 +0,0 @@ -" TextEdit might fail if hidden is not set. -set hidden - -" Some servers have issues with backup files, see #649. -set nobackup -set nowritebackup - -" Give more space for displaying messages. -set cmdheight=2 - -" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable -" delays and poor user experience. -set updatetime=300 - -" Don't pass messages to |ins-completion-menu|. -set shortmess+=c - -" Always show the signcolumn, otherwise it would shift the text each time -" diagnostics appear/become resolved. -if has("patch-8.1.1564") - " Recently vim can merge signcolumn and number column into one - set signcolumn=number -else - set signcolumn=yes -endif - -" Use tab for trigger completion with characters ahead and navigate. -" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by -" other plugin before putting this into your config. -" inoremap -" \ pumvisible() ? "\" : -" \ check_back_space() ? "\" : -" \ coc#refresh() -" inoremap pumvisible() ? "\" : "\" - -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" Use to trigger completion. -if has('nvim') - inoremap coc#refresh() -else - inoremap coc#refresh() -endif - -" Make auto-select the first completion item and notify coc.nvim to -" format on enter, could be remapped by other vim plugin -inoremap pumvisible() ? coc#_select_confirm() - \: "\u\\=coc#on_enter()\" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap [g (coc-diagnostic-prev) -nmap ]g (coc-diagnostic-next) - -" GoTo code navigation. -nmap gd (coc-definition) -nmap gy (coc-type-definition) -nmap gi (coc-implementation) -nmap gr (coc-references) - -" Use K to show documentation in preview window. -nnoremap K :call show_documentation() - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming. -nmap rn (coc-rename) - -" Formatting selected code. -xmap f (coc-format-selected) -nmap f (coc-format-selected) - -augroup mygroup - autocmd! - " Setup formatexpr specified filetype(s). - autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') - " Update signature help on jump placeholder. - autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') -augroup end - -" Applying codeAction to the selected region. -" Example: `aap` for current paragraph -xmap a (coc-codeaction-selected) -nmap a (coc-codeaction-selected) - -" Remap keys for applying codeAction to the current buffer. -nmap ac (coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap qf (coc-fix-current) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if (coc-funcobj-i) -omap if (coc-funcobj-i) -xmap af (coc-funcobj-a) -omap af (coc-funcobj-a) -xmap ic (coc-classobj-i) -omap ic (coc-classobj-i) -xmap ac (coc-classobj-a) -omap ac (coc-classobj-a) - -" Remap and for scroll float windows/popups. -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" - inoremap coc#float#has_scroll() ? "\=coc#foat#scroll(1)\" : "\" - inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" - vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" -endif - -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap (coc-range-select) -xmap (coc-range-select) - -" Add `:Format` command to format current buffer. -command! -nargs=0 Format :call CocAction('format') - -" Add `:Fold` command to fold current buffer. -command! -nargs=? Fold :call CocAction('fold', ) - -" Add `:OR` command for organize imports of the current buffer. -command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') - -" Add (Neo)Vim's native statusline support. -" NOTE: Please see `:h coc-status` for integrations with external plugins that -" provide custom statusline: lightline.vim, vim-airline. -set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} - -" Mappings for CoCList -" Show all diagnostics. -nnoremap a :CocList diagnostics -" Manage extensions. -nnoremap e :CocList extensions -" Show commands. -nnoremap c :CocList commands -" Find symbol of current document. -nnoremap o :CocList outline -" Search workspace symbols. -nnoremap s :CocList -I symbols -" Do default action for next item. -nnoremap j :CocNext -" Do default action for previous item. -nnoremap k :CocPrev -" Resume latest coc list. -nnoremap p :CocListResumel - -" Explorer -let g:coc_explorer_global_presets = { -\ '.vim': { -\ 'root-uri': '~/.vim', -\ }, -\ 'tab': { -\ 'position': 'tab', -\ 'quit-on-open': v:true, -\ }, -\ 'floating': { -\ 'position': 'floating', -\ 'open-action-strategy': 'sourceWindow', -\ }, -\ 'floatingTop': { -\ 'position': 'floating', -\ 'floating-position': 'center-top', -\ 'open-action-strategy': 'sourceWindow', -\ }, -\ 'floatingLeftside': { -\ 'position': 'floating', -\ 'floating-position': 'left-center', -\ 'floating-width': 50, -\ 'open-action-strategy': 'sourceWindow', -\ }, -\ 'floatingRightside': { -\ 'position': 'floating', -\ 'floating-position': 'right-center', -\ 'floating-width': 50, -\ 'open-action-strategy': 'sourceWindow', -\ }, -\ 'simplify': { -\ 'file-child-template': '[selection | clip | 1] [indent][icon | 1] [filename omitCenter 1]' -\ } -\ } - -nmap e :CocCommand explorer -nmap f :CocCommand explorer --preset floating -autocmd BufEnter * if (winnr("$") == 1 && &filetype == 'coc-explorer') | q | endif diff --git a/.config/nvim/plug-config/lsp-config.vim b/.config/nvim/plug-config/lsp-config.vim new file mode 100644 index 0000000..f9150a2 --- /dev/null +++ b/.config/nvim/plug-config/lsp-config.vim @@ -0,0 +1,19 @@ +" LSP config (the mappings used in the default file don't quite work right) +nnoremap gd lua vim.lsp.buf.definition() +nnoremap gD lua vim.lsp.buf.declaration() +nnoremap gr lua vim.lsp.buf.references() +nnoremap gi lua vim.lsp.buf.implementation() +nnoremap ca :Lspsaga code_action +" nnoremap K lua vim.lsp.buf.hover() +nnoremap K :Lspsaga hover_doc +nnoremap lua vim.lsp.buf.signature_help() +" nnoremap lua vim.lsp.diagnostic.goto_prev() +" nnoremap lua vim.lsp.diagnostic.goto_next() +nnoremap :Lspsaga diagnostic_jump_prev +nnoremap :Lspsaga diagnostic_jump_next + +" autoformat +autocmd BufWritePre *.js lua vim.lsp.buf.formatting_sync(nil, 100) +autocmd BufWritePre *.jsx lua vim.lsp.buf.formatting_sync(nil, 100) +autocmd BufWritePre *.lua lua vim.lsp.buf.formatting_sync(nil, 100) +" autocmd BufWritePre *.py lua vim.lsp.buf.formatting_sync(nil, 100) diff --git a/.config/nvim/plug-config/lsp-saga.vim b/.config/nvim/plug-config/lsp-saga.vim new file mode 100644 index 0000000..428e5a1 --- /dev/null +++ b/.config/nvim/plug-config/lsp-saga.vim @@ -0,0 +1,7 @@ + nnoremap K lua require('lspsaga.hover').render_hover_doc() + " -- scroll down hover doc or scroll in definition preview + nnoremap lua require('lspsaga.action').smart_scroll_with_saga(1) + " -- scroll up hover doc + nnoremap lua require('lspsaga.action').smart_scroll_with_saga(-1) + " signature + nnoremap gs lua require('lspsaga.signaturehelp').signature_help() diff --git a/.config/nvim/plug-config/nvimtree.vim b/.config/nvim/plug-config/nvimtree.vim new file mode 100644 index 0000000..24b2721 --- /dev/null +++ b/.config/nvim/plug-config/nvimtree.vim @@ -0,0 +1,51 @@ +let g:nvim_tree_side = 'left' " | 'left' "left by default +let g:nvim_tree_width = 40 "30 by default +let g:nvim_tree_ignore = [ '.git', 'node_modules', '.cache' ] "empty by default +let g:nvim_tree_auto_open = 0 "0 by default, opens the tree when typing `vim $DIR` or `vim` +let g:nvim_tree_auto_close = 1 "0 by default, closes the tree when it's the last window +" let g:nvim_tree_auto_ignore_ft = 'startify' "empty by default, don't auto open tree on specific filetypes. +let g:nvim_tree_quit_on_open = 0 "0 by default, closes the tree when you open a file +let g:nvim_tree_follow = 1 "0 by default, this option allows the cursor to be updated when entering a buffer +let g:nvim_tree_indent_markers = 1 "0 by default, this option shows indent markers when folders are open +let g:nvim_tree_hide_dotfiles = 1 "0 by default, this option hides files and folders starting with a dot `.` +let g:nvim_tree_git_hl = 1 "0 by default, will enable file highlight for git attributes (can be used without the icons). +" let g:nvim_tree_root_folder_modifier = ':~' "This is the default. See :help filename-modifiers for more options +" let g:nvim_tree_tab_open = 1 "0 by default, will open the tree when entering a new tab and the tree was previously open +" let g:nvim_tree_width_allow_resize = 1 "0 by default, will not resize the tree when opening a file +let g:nvim_tree_disable_netrw = 0 "1 by default, disables netrw +let g:nvim_tree_hijack_netrw = 0 "1 by default, prevents netrw from automatically opening when opening directories (but lets you keep its other utilities) +let g:nvim_tree_show_icons = { + \ 'git': 1, + \ 'folders': 1, + \ 'files': 1, + \ } +"If 0, do not show the icons for one of 'git' 'folder' and 'files' +"1 by default, notice that if 'files' is 1, it will only display +"if nvim-web-devicons is installed and on your runtimepath + +" default will show icon by default if no icon is provided +" default shows no icon by default +let g:nvim_tree_icons = { + \ 'default': '', + \ 'symlink': '', + \ 'git': { + \ 'unstaged': "✗", + \ 'staged': "✓", + \ 'unmerged': "", + \ 'renamed': "➜", + \ 'untracked': "ﭖ" + \ }, + \ 'folder': { + \ 'default': "", + \ 'open': "", + \ 'empty': "", + \ 'empty_open': "", + \ 'symlink': "", + \ } + \ } + +nnoremap e :NvimTreeToggle +nnoremap r :NvimTreeRefresh +nnoremap n :NvimTreeFindFile +" NvimTreeOpen and NvimTreeClose are also available if you need them +highlight NvimTreeFolderIcon guibg=blue diff --git a/.config/nvim/plug-config/poet-v.vim b/.config/nvim/plug-config/poet-v.vim new file mode 100644 index 0000000..8935b45 --- /dev/null +++ b/.config/nvim/plug-config/poet-v.vim @@ -0,0 +1,2 @@ +let g:poetv_executables = ['poetry', 'pyenv'] +let g:poetv_auto_activate = 1 diff --git a/.config/nvim/plug-config/telescope.vim b/.config/nvim/plug-config/telescope.vim deleted file mode 100644 index 26ae819..0000000 --- a/.config/nvim/plug-config/telescope.vim +++ /dev/null @@ -1,14 +0,0 @@ -" Find files using Telescope command-line sugar. -nnoremap ff Telescope find_files -nnoremap fg Telescope live_grep -nnoremap fb Telescope buffers -nnoremap fh Telescope help_tags - -" Theme -nnoremap f :lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({})) - -" Using lua functions -"nnoremap ff lua require('telescope.builtin').find_files() -"nnoremap fg lua require('telescope.builtin').live_grep() -"nnoremap fb lua require('telescope.builtin').buffers() -"nnoremap fh lua require('telescope.builtin').help_tags() -- cgit v1.2.3-70-g09d2