From dd4e4a412c4755f0f4788885e0152c8846108741 Mon Sep 17 00:00:00 2001 From: Vasili Svirydau Date: Thu, 30 Nov 2017 16:41:32 -0800 Subject: [PATCH] Added rg, coverage, etc... --- config/01-plugins.vim | 28 ++++++++---- config/02-general.vim | 56 +++++++++++++++++++++++ config/03-mappings.vim | 8 +++- config/04-autocmds.vim | 100 +++++------------------------------------ 4 files changed, 92 insertions(+), 100 deletions(-) diff --git a/config/01-plugins.vim b/config/01-plugins.vim index ed8a4e4..5e22347 100644 --- a/config/01-plugins.vim +++ b/config/01-plugins.vim @@ -39,18 +39,23 @@ if(have_plug) Plug 'mattn/emmet-vim' " ZenCoding Plug 'sheerun/vim-polyglot' " Language Support Bundle - Plug 'sbdchd/neoformat' " Automatic code formatting - Plug 'quramy/vim-js-pretty-template' " Syntax highlight inside template strings - Plug 'quramy/tsuquyomi' " Language server support for TypeScript + " Plug 'quramy/vim-js-pretty-template'" Syntax highlight inside template strings + " Plug 'quramy/tsuquyomi' " Language server support for TypeScript - Plug 'heavenshell/vim-jsdoc' " Generate JSDoc comments + " Plug 'heavenshell/vim-jsdoc' " Generate JSDoc comments " Quality of life Plug 'edkolev/tmuxline.vim' if version >= 800 - Plug 'w0rp/ale' + Plug 'w0rp/ale' " Asynchronous Linting + Plug 'sbdchd/neoformat' " Automatic code formatting + + Plug 'prabirshrestha/async.vim' " vim8/neovim async normalizer + Plug 'prabirshrestha/vim-lsp' " Language Server Protocol support + + Plug 'ruanyl/coverage.vim' " Code Coverage Support endif if stridx($SHELL, 'fish') >= 0 @@ -64,16 +69,23 @@ if(have_plug) endif endif -let g:loaded_netrwPlugin = 1 +let g:loaded_netrwPlugin = 1 " Disable netrw + let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#ale#enabled = 1 + let g:ale_sign_column_always = 1 let g:ale_sign_error = '' let g:ale_sign_warning = '' - let g:ale_fixers = { \ 'javascript': [ 'eslint' ], \ } - let g:ale_fix_on_save = 1 + +" let g:lsp_log_verbose = 1 +" let g:lsp_log_file = expand('~/vim-lsp.log') + +let g:coverage_json_report_path = 'coverage/coverage-final.json' +let g:coverage_sign_covered = '' +let g:coverage_sign_uncovered = '' diff --git a/config/02-general.vim b/config/02-general.vim index 556d624..8288bf1 100644 --- a/config/02-general.vim +++ b/config/02-general.vim @@ -68,3 +68,59 @@ call EnsureExists('~/.vim/.cache') call EnsureExists(&undodir) call EnsureExists(&backupdir) call EnsureExists(&directory) + + " Set up CtrlP with faster alternative, if possible + if executable('ag') + " Use The Silver Searcher https://github.com/ggreer/the_silver_searcher + set grepprg=ag\ --nogroup\ --nocolor + " Use ag in CtrlP for listing files. Lightning fast, respects .gitignore + " and .agignore. Ignores hidden files by default. + let g:ctrlp_user_command = 'ag %s -l --nocolor -f -g ""' + let g:ctrlp_use_caching = 0 + else + if executable("rg") + set grepprg=rg\ --color=never + + let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""' + let g:ctrlp_use_caching = 0 + else + "ctrl+p ignore files in .gitignore + let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files . -co --exclude-standard', 'find %s -type f'] + endif + endif + + if has("gui_running") + set go-=mTr " disable toolbar, menubar and scrollbar + if has("win32") + set guifont=Source_Code_Pro:h12:cANSI + endif + if has("osx") + set guifont=Source_Code_Pro:h13 + endif + else + if(has("mouse")) + set mouse=a + endif + if $TERM_PROGRAM == 'iTerm.app' + " different cursors for insert vs normal mode + if exists('$TMUX') + let &t_SI = "\Ptmux;\\]50;CursorShape=1\x7\\\" + let &t_EI = "\Ptmux;\\]50;CursorShape=0\x7\\\" + else + let &t_SI = "\]50;CursorShape=1\x7" + let &t_EI = "\]50;CursorShape=0\x7" + endif + endif + + " Windows-specific setting allowing for 256-colors etc + if($ConEmuANSI == 'ON') + set term=xterm + set t_Co=256 + let &t_AB='\e[48;5;%dm' " background color + let &t_AF='\e[38;5;%dm' " foreground color + inoremap [62~ + inoremap [63~ + nnoremap [62~ + nnoremap [63~ + endif + endif diff --git a/config/03-mappings.vim b/config/03-mappings.vim index 918e0d1..01f466b 100644 --- a/config/03-mappings.vim +++ b/config/03-mappings.vim @@ -25,8 +25,12 @@ noremap d :bd nmap e[ (ale_previous_wrap) nmap e] (ale_next_wrap) -let g:tsuquyomi_javascript_support = 1 -noremap p :echo tsuquyomi#hint() +" let g:tsuquyomi_javascript_support = 1 +" noremap p :echo tsuquyomi#hint() + +noremap p :LspHover +noremap D :LspDefinition +noremap U :LspReferences let g:ctrlp_funky_syntax_highlight = 1 nnoremap f :CtrlPFunky diff --git a/config/04-autocmds.vim b/config/04-autocmds.vim index d2698bd..53194e2 100644 --- a/config/04-autocmds.vim +++ b/config/04-autocmds.vim @@ -53,16 +53,6 @@ au! autocmd FileType javascript set ai sw=2 sts=2 et - "Javascript Function lookup - function! JsFunctionLookup() - let l:Name = expand("") - execute "/function ".l:Name - endfun - - " autocmd FileType javascript map jj :set ft=javascript.jsx - " autocmd BufRead *.js nmap f* :call JsFunctionLookup()zz - " autocmd BufRead *.js,*.jsx let g:syntastic_javascript_checkers = ['eslint'] - " autocmd BufWritePre *.js Neoformat let g:neoformat_javascript_prettier = { \ 'exe' : 'prettier', \ 'args': ['--stdin', '--trailing-comma=es5', '--single-quote'], @@ -70,86 +60,16 @@ \ } augroup END - augroup ruby - au! - autocmd FileType ruby,haml,eruby,yaml,html,sass,cucumber,slim set ai sw=2 sts=2 et - autocmd BufRead *.rb let g:syntastic_ruby_checkers = ['rubocop', 'mri'] - autocmd BufRead *.rb let g:syntastic_ruby_rubocop_exec = '/usr/bin/rubocop' - augroup END + augroup lsp + au! + if executable('typescript-language-server') + au User lsp_setup call lsp#register_server({ + \ 'name': 'typescript-language-server', + \ 'cmd': { server_info->[&shell, &shellcmdflag, 'typescript-language-server --stdio']}, + \ 'root_uri': { server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_directory(lsp#utils#get_buffer_path(), '.git/..'))}, + \ 'whitelist': ['typescript', 'javascript', 'javascript.jsx'] + \ }) + endif - augroup html - au! - au BufNewFile,BufRead *.ejs set filetype=html - autocmd FileType html call SetHtmlOptions() - function! SetHtmlOptions() - if(executable('tidy')) - let g:syntastic_html_tidy_ignore_errors = [ - \' proprietary attribute "property"', - \' proprietary attribute "prefix"', - \'trimming empty ', - \'trimming empty ', - \'