diff --git a/coc-settings.json b/coc-settings.json index 6e0e952..b5fa2b7 100644 --- a/coc-settings.json +++ b/coc-settings.json @@ -23,8 +23,6 @@ "python.formatting.provider": "black", "python.formatting.blackPath": "/home/ray/.local/bin/black", "coc.preferences.formatOnSaveFiletypes": ["python", "vue"], - "sh.enable": true, - "sh.highlightParsingErrors": true, "eslint.enable": true, "eslint.autoFixOnSave": true, diff --git a/init.plugins.vim b/init.plugins.vim index ebda6a5..63b9c7d 100644 --- a/init.plugins.vim +++ b/init.plugins.vim @@ -13,6 +13,43 @@ call plug#begin('~/.config/nvim/bundle') "}}} +" #ALE {{{ + " https://github.com/w0rp/ale + + Plug 'w0rp/ale' + " let g:ale_completion_enabled = 1 + + let g:ale_disable_lsp = 1 + let g:ale_sign_column_always = 1 + let g:ale_open_list = 0 + let g:ale_fix_on_save = 1 + let g:ale_fix_on_save_ignore = { 'vue': ['eslint'] } + + let g:ale_linters = {'scss': ['stylelint'], 'javascript': [], 'javascriptreact': [], 'json': [], 'php':['php'], 'python': [], 'html':['htmlhint'], 'vue': []} + let g:ale_fixers = {'scss': ['stylelint'], 'javascript': [], 'javascriptreact': [], 'json': ['jq'], 'python': [], 'vue': []} + + let g:ale_html_htmlhint_options = '-c ~/.htmlhintrc --format=unix' + + let g:ale_python_pyls_config = { +\ 'pyls': { +\ 'pycodestyle': { 'enabled': v:false }, +\ 'configurationSources': ['flake8'] +\ } +\ } + + let g:ale_sign_error = 'Α' + let g:ale_sign_warning = 'α' + + nmap aa (ale_hover) + nmap ad (ale_detail) + nmap af (ale_fix) + nmap ar (ale_find_references) + nmap ag (ale_go_to_definition) + nmap aD (ale_documentation) + nmap an (ale_next) + nmap ap (ale_previous) + + "}}} " #coc.nvim{{{ " https://github.com/neoclide/coc.nvim @@ -26,6 +63,7 @@ call plug#begin('~/.config/nvim/bundle') " inoremap coc#refresh() nnoremap :call CocAction('doHover') + nnoremap cc :call CocAction('doHover') nnoremap cf :call CocAction('doQuickfix') nnoremap cg :call CocAction('jumpDefinition') nnoremap ci :call CocAction('jumpImplementation') @@ -34,11 +72,14 @@ call plug#begin('~/.config/nvim/bundle') nnoremap ca :call CocAction('codeAction') nnoremap cs :call CocAction('documentSymbols') nnoremap cS :call CocAction('workspaceSymbols') - nnoremap ]c :call CocAction('diagnosticNext') - nnoremap [c :call CocAction('diagnosticPrevious') + nnoremap cn :call CocAction('diagnosticNext') + nnoremap cp :call CocAction('diagnosticPrevious') + " vnoremap \f (coc-format-selected) + " nnoremap \f (coc-format-selected) command! -nargs=0 Format :call CocAction('format') command! -nargs=? Fold :call CocAction('fold', ) + " }}} " #delimitMate{{{ " https://github.com/Raimondi/delimitMate @@ -254,12 +295,6 @@ let g:mta_filetypes = { Plug 'studio-vx/Vim-Jinja2-Syntax' "}}} -" #vim-shellcheck{{{ -" https://github.com/itspriddle/vim-shellcheck - Plug 'itspriddle/vim-shellcheck' - - "}}} - " #vim-SyntaxRange{{{ " https://github.com/inkarkat/vim-SyntaxRange " Plug 'inkarkat/vim-SyntaxRange' @@ -382,7 +417,7 @@ let g:vim_markdown_fenced_languages = ['bash=sh'] call plug#end() runtime macros/matchit.vim " TODO - try 'coc-tsserver' -call coc#add_extension( 'coc-vetur', 'coc-python', 'coc-phpls', 'coc-json', 'coc-css', 'coc-prettier', 'coc-eslint', 'coc-vimlsp', 'coc-tsserver', 'coc-sh') +call coc#add_extension( 'coc-vetur', 'coc-python', 'coc-phpls', 'coc-json', 'coc-css', 'coc-prettier', 'coc-eslint', 'coc-vimlsp', 'coc-tsserver') diff --git a/init.vim b/init.vim index 1ae8a30..c2a5fb5 100644 --- a/init.vim +++ b/init.vim @@ -160,6 +160,18 @@ command! -nargs=1 -complete=command Redir silent call Redir() " :Redir hi ............. show the full output of command ':hi' in a scratch window " :Redir !ls -al ........ show the full output of command ':!ls -al' in a scratch window "}}} +function! AleLinterStatus() abort "{{{ + let l:counts = ale#statusline#Count(bufnr('')) + + let l:all_errors = l:counts.error + l:counts.style_error + let l:all_non_errors = l:counts.total - l:all_errors + + return l:counts.total == 0 ? '' : printf( + \ '[ %dW %dE ]', + \ all_non_errors, + \ all_errors + \) +endfunction "}}} function! ToggleHighlights() abort "{{{ if ! exists('b:toggle_highlights_state') @@ -312,6 +324,8 @@ set statusline+=%-20(%l\ of\ %L\ (%p%%)%) set statusline+=%-10(:%c\ %((%V)%)%) " separator, highlight color set statusline+=%=%#StatusLineNC# +" Ale errors +set statusline+=%{AleLinterStatus()}\ " CoC status set statusline+=%{coc#status()} " separator