[vim] coc-nvim plugin added, plus pyright extension
This commit is contained in:
56
vim/coc.vim
Normal file
56
vim/coc.vim
Normal file
@@ -0,0 +1,56 @@
|
||||
inoremap <silent><expr> <TAB>
|
||||
\ coc#pum#visible() ? coc#pum#next(1):
|
||||
\ CheckBackspace() ? "\<Tab>" :
|
||||
\ coc#refresh()
|
||||
inoremap <expr><S-TAB> coc#pum#visible() ? coc#pum#prev(1) : "\<C-h>"
|
||||
|
||||
" Make <CR> to accept selected completion item or notify coc.nvim to format
|
||||
" <C-g>u breaks current undo, please make your own choice.
|
||||
inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm()
|
||||
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
||||
|
||||
function! CheckBackspace() 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> <Leader>c coc#refresh()
|
||||
" endif
|
||||
|
||||
" Use K to show documentation in preview window.
|
||||
nnoremap <silent> K :call ShowDocumentation()<CR>
|
||||
|
||||
function! ShowDocumentation()
|
||||
if CocAction('hasProvider', 'hover')
|
||||
call CocActionAsync('doHover')
|
||||
else
|
||||
call feedkeys('K', 'in')
|
||||
endif
|
||||
endfunction
|
||||
|
||||
" 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)
|
||||
|
||||
"set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')}
|
||||
|
||||
" 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)
|
||||
18
vim/vimrc
18
vim/vimrc
@@ -8,6 +8,9 @@ filetype plugin indent on "Включает определение типа фа
|
||||
set encoding=utf-8
|
||||
syntax enable
|
||||
set timeoutlen=300 ttimeoutlen=0 " https://www.johnhawthorn.com/2012/09/vi-escape-delays/
|
||||
" For coc-vim. Always show the signcolumn, otherwise it would shift the text each time
|
||||
" diagnostics appear/become resolved.
|
||||
set signcolumn=yes
|
||||
set number relativenumber
|
||||
set backspace=indent,eol,start
|
||||
filetype plugin indent on
|
||||
@@ -32,6 +35,7 @@ call plug#begin('~/.vim/bundle') "Начать искать плагины в э
|
||||
|
||||
Plug 'towolf/vim-helm'
|
||||
Plug 'pearofducks/ansible-vim'
|
||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
||||
call plug#end() "Перестать это делать
|
||||
|
||||
"
|
||||
@@ -138,6 +142,20 @@ let g:ansible_extra_keywords_highlight = 1
|
||||
let g:ansible_name_highlight = 'b'
|
||||
let g:ansible_yamlKeyName = 'yamlKey'
|
||||
|
||||
"
|
||||
" CoC plugin settings
|
||||
"
|
||||
let g:coc_global_extensions = ['coc-pyright']
|
||||
source ~/.vim/coc.vim
|
||||
function! s:enable_coc_for_type()
|
||||
let l:filesuffix_whitelist = ['py']
|
||||
if index(l:filesuffix_whitelist, expand('%:e')) == -1
|
||||
let b:coc_enabled = 0
|
||||
endif
|
||||
endfunction
|
||||
autocmd BufRead,BufNewFile * call s:enable_coc_for_type()
|
||||
|
||||
|
||||
" YAML files config
|
||||
autocmd FileType yaml,yml setlocal ts=2 sts=2 sw=2 expandtab
|
||||
let g:indentLine_char = '⦙'
|
||||
|
||||
Reference in New Issue
Block a user