diff options
Diffstat (limited to '.config/nvim/plug-config')
-rw-r--r-- | .config/nvim/plug-config/coc.vim | 200 | ||||
-rw-r--r-- | .config/nvim/plug-config/lsp-config.vim | 19 | ||||
-rw-r--r-- | .config/nvim/plug-config/lsp-saga.vim | 7 | ||||
-rw-r--r-- | .config/nvim/plug-config/nvimtree.vim | 51 | ||||
-rw-r--r-- | .config/nvim/plug-config/poet-v.vim | 2 | ||||
-rw-r--r-- | .config/nvim/plug-config/telescope.vim | 14 |
6 files changed, 79 insertions, 214 deletions
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 <tab>' to make sure tab is not mapped by -" other plugin before putting this into your config. -" inoremap <silent><expr> <TAB> -" \ pumvisible() ? "\<C-n>" : -" \ <SID>check_back_space() ? "\<TAB>" : -" \ coc#refresh() -" inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" - -function! s:check_back_space() abort - let col = col('.') - 1 - return !col || getline('.')[col - 1] =~# '\s' -endfunction - -" Use <c-space> to trigger completion. -if has('nvim') - inoremap <silent><expr> <c-space> coc#refresh() -else - inoremap <silent><expr> <c-@> coc#refresh() -endif - -" Make <CR> auto-select the first completion item and notify coc.nvim to -" format on enter, <cr> could be remapped by other vim plugin -inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm() - \: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>" - -" Use `[g` and `]g` to navigate diagnostics -" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. -nmap <silent> [g <Plug>(coc-diagnostic-prev) -nmap <silent> ]g <Plug>(coc-diagnostic-next) - -" GoTo code navigation. -nmap <silent> gd <Plug>(coc-definition) -nmap <silent> gy <Plug>(coc-type-definition) -nmap <silent> gi <Plug>(coc-implementation) -nmap <silent> gr <Plug>(coc-references) - -" Use K to show documentation in preview window. -nnoremap <silent> K :call <SID>show_documentation()<CR> - -function! s:show_documentation() - if (index(['vim','help'], &filetype) >= 0) - execute 'h '.expand('<cword>') - elseif (coc#rpc#ready()) - call CocActionAsync('doHover') - else - execute '!' . &keywordprg . " " . expand('<cword>') - endif -endfunction - -" Highlight the symbol and its references when holding the cursor. -autocmd CursorHold * silent call CocActionAsync('highlight') - -" Symbol renaming. -nmap <leader>rn <Plug>(coc-rename) - -" Formatting selected code. -xmap <leader>f <Plug>(coc-format-selected) -nmap <leader>f <Plug>(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: `<leader>aap` for current paragraph -xmap <leader>a <Plug>(coc-codeaction-selected) -nmap <leader>a <Plug>(coc-codeaction-selected) - -" Remap keys for applying codeAction to the current buffer. -nmap <leader>ac <Plug>(coc-codeaction) -" Apply AutoFix to problem on the current line. -nmap <leader>qf <Plug>(coc-fix-current) - -" Map function and class text objects -" NOTE: Requires 'textDocument.documentSymbol' support from the language server. -xmap if <Plug>(coc-funcobj-i) -omap if <Plug>(coc-funcobj-i) -xmap af <Plug>(coc-funcobj-a) -omap af <Plug>(coc-funcobj-a) -xmap ic <Plug>(coc-classobj-i) -omap ic <Plug>(coc-classobj-i) -xmap ac <Plug>(coc-classobj-a) -omap ac <Plug>(coc-classobj-a) - -" Remap <C-f> and <C-b> for scroll float windows/popups. -if has('nvim-0.4.0') || has('patch-8.2.0750') - nnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" - nnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" - inoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? "\<c-r>=coc#foat#scroll(1)\<cr>" : "\<Right>" - inoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? "\<c-r>=coc#float#scroll(0)\<cr>" : "\<Left>" - vnoremap <silent><nowait><expr> <C-f> coc#float#has_scroll() ? coc#float#scroll(1) : "\<C-f>" - vnoremap <silent><nowait><expr> <C-b> coc#float#has_scroll() ? coc#float#scroll(0) : "\<C-b>" -endif - -" Use CTRL-S for selections ranges. -" Requires 'textDocument/selectionRange' support of language server. -nmap <silent> <C-s> <Plug>(coc-range-select) -xmap <silent> <C-s> <Plug>(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', <f-args>) - -" 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 <silent><nowait> <space>a :<C-u>CocList diagnostics<cr> -" Manage extensions. -nnoremap <silent><nowait> <space>e :<C-u>CocList extensions<cr> -" Show commands. -nnoremap <silent><nowait> <space>c :<C-u>CocList commands<cr> -" Find symbol of current document. -nnoremap <silent><nowait> <space>o :<C-u>CocList outline<cr> -" Search workspace symbols. -nnoremap <silent><nowait> <space>s :<C-u>CocList -I symbols<cr> -" Do default action for next item. -nnoremap <silent><nowait> <space>j :<C-u>CocNext<CR> -" Do default action for previous item. -nnoremap <silent><nowait> <space>k :<C-u>CocPrev<CR> -" Resume latest coc list. -nnoremap <silent><nowait> <space>p :<C-u>CocListResume<CR>l - -" 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 <space>e :CocCommand explorer<CR> -nmap <space>f :CocCommand explorer --preset floating<CR> -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 <silent> gd <cmd>lua vim.lsp.buf.definition()<CR> +nnoremap <silent> gD <cmd>lua vim.lsp.buf.declaration()<CR> +nnoremap <silent> gr <cmd>lua vim.lsp.buf.references()<CR> +nnoremap <silent> gi <cmd>lua vim.lsp.buf.implementation()<CR> +nnoremap <silent> ca :Lspsaga code_action<CR> +" nnoremap <silent> K <cmd>lua vim.lsp.buf.hover()<CR> +nnoremap <silent> K :Lspsaga hover_doc<CR> +nnoremap <silent> <C-k> <cmd>lua vim.lsp.buf.signature_help()<CR> +" nnoremap <silent> <C-p> <cmd>lua vim.lsp.diagnostic.goto_prev()<CR> +" nnoremap <silent> <C-n> <cmd>lua vim.lsp.diagnostic.goto_next()<CR> +nnoremap <silent> <C-p> :Lspsaga diagnostic_jump_prev<CR> +nnoremap <silent> <C-n> :Lspsaga diagnostic_jump_next<CR> + +" 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 <silent> K <cmd>lua require('lspsaga.hover').render_hover_doc()<CR> + " -- scroll down hover doc or scroll in definition preview + nnoremap <silent> <C-f> <cmd>lua require('lspsaga.action').smart_scroll_with_saga(1)<CR> + " -- scroll up hover doc + nnoremap <silent> <C-b> <cmd>lua require('lspsaga.action').smart_scroll_with_saga(-1)<CR> + " signature + nnoremap <silent> gs <cmd>lua require('lspsaga.signaturehelp').signature_help()<CR> 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 <leader>e :NvimTreeToggle<CR> +nnoremap <leader>r :NvimTreeRefresh<CR> +nnoremap <leader>n :NvimTreeFindFile<CR> +" 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 <Leader>ff <cmd>Telescope find_files<cr> -nnoremap <Leader>fg <cmd>Telescope live_grep<cr> -nnoremap <Leader>fb <cmd>Telescope buffers<cr> -nnoremap <Leader>fh <cmd>Telescope help_tags<cr> - -" Theme -nnoremap <Leader>f :lua require'telescope.builtin'.find_files(require('telescope.themes').get_dropdown({}))<cr> - -" Using lua functions -"nnoremap <leader>ff <cmd>lua require('telescope.builtin').find_files()<cr> -"nnoremap <leader>fg <cmd>lua require('telescope.builtin').live_grep()<cr> -"nnoremap <leader>fb <cmd>lua require('telescope.builtin').buffers()<cr> -"nnoremap <leader>fh <cmd>lua require('telescope.builtin').help_tags()<cr> |