if empty(glob('~/.config/nvim/autoload/plug.vim'))" silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim autocmd VimEnter * PlugInstall --sync | source $MYVIMRC endif call plug#begin('~/.config/nvim/bundle') " #vim-hexokinase {{{ " https://github.com/RRethy/vim-hexokinase Plug 'RRethy/vim-hexokinase', { 'do': 'make hexokinase' } let g:Hexokinase_highlighters = ['virtual'] let g:Hexokinase_virtualText = '██████' nnoremap cc :HexokinaseToggle nnoremap cr :HexokinaseRefresh "}}} " #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': [], 'javascript': [], 'json': [], 'php':['php'], 'python': [], 'html':['htmlhint'], 'vue': []} let g:ale_fixers = {'scss': ['prettier'], 'javascript': [], '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 " SEE BOTTOM OF VIMRC FOR coc#add_extension statement " for some reason fails when added some other places Plug 'neoclide/coc.nvim', {'tag': '*', 'do': { -> coc#util#install()}} let g:coc_snippet_next = '' let g:coc_snippet_prev = '' " 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') nnoremap cr :call CocAction('jumpReferences') nnoremap cm :call CocAction('rename') nnoremap ca :call CocAction('codeAction') nnoremap cs :call CocAction('documentSymbols') nnoremap cS :call CocAction('workspaceSymbols') 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 Plug 'Raimondi/delimitMate' let delimitMate_expand_cr = 1 let delimitMate_expand_space = 1 "}}} " #echodoc.vim{{{ " https://github.com/Shougo/echodoc.vim Plug 'Shougo/echodoc.vim' "}}} " #emmet-vim {{{ " https://github.com/mattn/emmet-vim Plug 'mattn/emmet-vim' let g:user_emmet_leader_key=',,' let g:user_emmet_settings = { \ 'indentation': ' ', \} "}}} " #gitgutter {{{ " https://github.com/airblade/vim-gitgutter/blob/master/README.mkd Plug 'airblade/vim-gitgutter' nmap ]h GitGutterNextHunk nmap [h GitGutterPrevHunk omap ih GitGutterTextObjectInnerPending omap ah GitGutterTextObjectOuterPending xmap ih GitGutterTextObjectInnerVisual xmap ah GitGutterTextObjectOuterVisual "}}} " #MatchTagAlways{{{ " https://github.com/Valloric/MatchTagAlways Plug 'Valloric/MatchTagAlways' let g:mta_filetypes = { \ 'jinja' : 1, \ 'html' : 1, \ 'vue' : 1, \ 'xhtml' : 1, \ 'xml' : 1, \} "}}} " #phpcomplete.vim{{{ " https://github.com/shawncplus/phpcomplete.vim Plug 'shawncplus/phpcomplete.vim' " https://github.com/dsawardekar/wordpress.vim " For up to date Wordpress Files see: " https://github.com/joseluis/wordpress.vim-generator "}}} " #quickscope{{{ " https://github.com/unblevable/quick-scope Plug 'unblevable/quick-scope' let g:qs_highlight_on_keys = ['f', 'F', 't', 'T'] "}}} " #rainbow{{{ " https://github.com/luochen1990/rainbow/blob/master/README.md Plug 'luochen1990/rainbow' let g:rainbow_active = 0 nnoremap 9 :RainbowToggle nnoremap ( :RainbowToggle "}}} " #switch {{{ "https://github.com/AndrewRadev/switch.vim Plug 'AndrewRadev/switch.vim' let g:switch_mapping = '-' let g:switch_custom_definitions = [ \ ['0', '1'], \ ['ease-in', 'ease-out', 'ease-in-out', 'linear'], \ ['auto', 'none'], \ ['left', 'right'], \ ['top', 'bottom'], \ ['row', 'column'], \ ['relative', 'absolute', 'fixed'], \ ['private', 'public', 'protected'] \ ] "}}} " #tagbar {{{ " Plug 'majutsushi/tagbar' " " nnoremap tb :TagbarOpen fj " nnoremap ] :tag /[.#@]=expand('') " let g:tagbar_autoclose = 1 " " let g:tagbar_autopreview = 1 " " let g:tagbar_previewwin_pos = '' " " let g:tagbar_type_css = { " \ 'ctagstype' : 'css', " \ 'kinds' : [ " \ 'c:classes', " \ 'i:ids', " \ 't:tags', " \ 'm:medias' " \ ] " \} " " let g:tagbar_type_scss = { " \ 'ctagstype' : 'scss', " \ 'kinds' : [ " \ 'v:variables', " \ 'c:classes', " \ 'i:ids', " \ 't:tags', " \ 'd:medias', " \ 'm:mixins', " \ 'f:functions' " \ ] " \} " " let g:tagbar_type_vue = { " \ 'ctagstype' : 'vue', " \ 'kinds' : [ " \ 'o:objects', " \ 'f:functions', " \ 'a:array', " \ 's:string', " \ 'b:boolean', " \ 'n:number', " \ 'v:variable' " \ ] " \ } "}}} " #ultisnips {{{ " https://github.com/sirver/UltiSnips Plug 'SirVer/ultisnips' " and some snippets " https://github.com/honza/vim-snippets " Plug 'honza/vim-snippets' nnoremap ul :call ListUltisnips() inoremap jkul :call ListUltisnips() let g:UltiSnipsSnippetsDir='~/.vim/UltiSnips' " Trigger configuration. Do not use if you use https://github.com/Valloric/YouCompleteMe. let g:UltiSnipsExpandTrigger='' let g:UltiSnipsJumpForwardTrigger='' let g:UltiSnipsJumpBackwardTrigger='' let g:UltiSnipsEditSplit='horizontal' function! ListUltisnips() abort"{{{ let l:snips = UltiSnips#SnippetsInCurrentScope(1) let l:keylist = sort(keys(l:snips)) echo ' --------------------------------------------------' for l:key in l:keylist echo printf(" %-10s\t%s", l:key, l:snips[l:key]) endfor echo '---------------------------------------------------' endfunction "}}} function! CompleteSnippets(findstart, base)"{{{ if a:findstart let l:line = getline('.') let l:start = col('.') - 1 while l:start > 0 && l:line[l:start - 1] =~ '\a' let l:start -= 1 endwhile return l:start else let l:res = [] let l:snips = UltiSnips#SnippetsInCurrentScope(1) let l:keylist = sort(keys(l:snips)) for l:key in l:keylist if l:key =~ '^' . a:base let l:item = {'word': l:key, 'menu': l:snips[l:key]} call add(l:res, l:item) endif endfor return l:res endif endfunction "}}} set completefunc=CompleteSnippets "}}} " #vim-dispatch{{{ " https://github.com/tpope/vim-dispatch Plug 'tpope/vim-dispatch' "}}} " #vim-easy-align {{{ " https://github.com/junegunn/vim-easy-align Plug 'junegunn/vim-easy-align' xmap ga (EasyAlign) nmap ga (EasyAlign) "}}} " #vim-gutentags {{{ " https://github.com/ludovicchabant/vim-gutentags " Plug 'ludovicchabant/vim-gutentags' " " let g:gutentags_ctags_tagfile = '.tags' " let g:gutentags_ctags_exclude = ['package.json', 'Session.vim', 'package-lock.json', 'TODO.txt'] " let g:gutentags_resolve_symlinks = 1 "}}} " #vim-Jinja2-Syntax{{{ " https://github.com/studio-vx/Vim-Jinja2-Syntax " original: https://github.com/Glench/Vim-Jinja2-Syntax Plug 'studio-vx/Vim-Jinja2-Syntax' "}}} " #vim-SyntaxRange{{{ " https://github.com/inkarkat/vim-SyntaxRange " Plug 'inkarkat/vim-SyntaxRange' " command! HiJinja call SyntaxRange#Include('{{', '}}', 'jinja', 'jinjaBraces', 'jinjaVariable') " command! HiJinja call SyntaxRange#IncludeEx('start=/{{-\?/hs=s+2 end=/-\?}}/he=s-1', 'jinja') "}}} " #wordpress.vim{{{ " doesn't support universal ctags " #Plug 'dsawardekar/wordpress.vim' " This fork does: " https://github.com/DArcMattr/wordpress.vim/tree/universal-ctags " Using studio-vx fork " Plug 'studio-vx/wordpress.vim', { 'branch': 'universal-ctags' } "}}} " #vim-git{{{ " https://github.com/tpope/vim-git Plug 'tpope/vim-git' "}}} " #Netrw {{{ let g:netrw_liststyle=3 let g:netrw_list_hide=netrw_gitignore#Hide() let g:netrw_preview = 1 let g:netrw_winsize = 33 let g:netrw_altv = 1 let g:netrw_altfile = 1 let g:netrw_mousemaps = 0 "}}} " #Obsession{{{ " fork of tpope/vim-obsession Plug 'studio-vx/vim-obsession' "}}} " #undotree {{{ Plug 'mbbill/undotree' nnoremap ut :UndotreeToggle "}}} " #tcomment_vim{{{ " https://github.com/tomtom/tcomment_vim Plug 'tomtom/tcomment_vim' "}}} " #vim-fzf {{{ " https://github.com/junegunn/fzf.vim Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' nnoremap fg :GFiles nnoremap ff :Files nnoremap fH :History nnoremap ft :Tags nnoremap fb :Buffers nnoremap fh :Helptags let g:fzf_preview_window = 'right:60%' let g:fzf_colors = \ { 'fg': ['fg', 'Normal'], \ 'bg': ['bg', 'Normal'], \ 'hl': ['fg', 'Label'], \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], \ 'hl+': ['fg', 'WildMenu'], \ 'info': ['fg', 'Comment'], \ 'border': ['fg', 'Ignore'], \ 'prompt': ['fg', 'Constant'], \ 'pointer': ['fg', 'Special'], \ 'marker': ['fg', 'Keyword'], \ 'spinner': ['fg', 'Label'], \ 'header': ['fg', 'Comment'] } "}}} " #polyglot{{{ " https://github.com/sheerun/vim-polyglot Plug 'sheerun/vim-polyglot' " vue options let g:vue_disable_pre_processors=0 " set custom syntax highlighting augroup fixhighlighting autocmd! autocmd BufNewFile,BufRead *.vue syntax sync fromstart augroup END "}}} " #vim-markdown{{{ " https://github.com/plasticboy/vim-markdown Plug 'plasticboy/vim-markdown' let g:vim_markdown_toc_autofit = 1 let g:vim_markdown_fenced_languages = ['bash=sh'] "}}} " #vim-repeat{{{ " https://github.com/tpope/vim-repeat Plug 'tpope/vim-repeat' "}}} " #vim-rsi{{{ "https://github.com/tpope/vim-rsi Plug 'tpope/vim-rsi' "}}} " #vim-surround{{{ Plug 'tpope/vim-surround' "}}} " #wakatime{{{ " https://wakatime.com/vim Plug 'wakatime/vim-wakatime' "}}} 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') " vim: set fdm=marker ft=vim: