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 endif call plug#begin() " Plugins Plug 'miyakogi/seiya.vim' Plug 'ctrlpvim/ctrlp.vim' Plug 'FelikZ/ctrlp-py-matcher' Plug 'jeetsukumaran/vim-filebeagle' Plug 'bling/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'scrooloose/nerdtree' Plug 'christoomey/vim-tmux-navigator' Plug 'editorconfig/editorconfig-vim' Plug 'mhinz/vim-grepper' Plug 'tomtom/tcomment_vim' Plug 'ap/vim-css-color' Plug 'autozimu/LanguageClient-neovim', { 'do': ':UpdateRemotePlugins' } Plug 'neomake/neomake' Plug 'ludovicchabant/vim-gutentags' " Colorschemes Plug 'whatyouhide/vim-gotham' Plug 'flazz/vim-colorschemes' "HTML & CSS Plug 'hail2u/vim-css3-syntax' Plug 'othree/html5.vim' Plug 'Valloric/MatchTagAlways' Plug 'digitaltoad/vim-jade' "Javascript "PHP Plug 'StanAngeloff/php.vim', {'for': 'php'} Plug 'lumiliet/vim-twig' Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'padawan-php/deoplete-padawan', { 'for': 'php' } Plug 'roxma/LanguageServer-php-neovim', {'do': 'composer install && composer run-script parse-stubs', 'for': 'php'} Plug 'SirVer/ultisnips' | Plug 'phux/vim-snippets' "Git plugin Plug 'tpope/vim-fugitive' " Lua Plug 'xolox/vim-misc' Plug 'xolox/vim-lua-ftplugin' "Vue Plug 'posva/vim-vue' Plug 'sbdchd/neoformat' " Donnie says this is important function! DoRemote(arg) UpdateRemotePlugins endfunction Plug 'Shougo/deoplete.nvim', { 'do': function('DoRemote') } call plug#end() let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#neomake#enabled = 0 syntax on colorscheme gotham set tabstop=2 set expandtab set shiftwidth=2 set smartcase set hlsearch set number set autoindent set incsearch set clipboard+=unnamedplus set noswapfile set t_Co=256 set hidden set relativenumber set list listchars=tab:»·,trail:·,nbsp:· set termguicolors set tags=.tags,./tags,tags; let g:airline_theme="gotham" "Option + Left and Right switch buffers "execute "set =\e\eC" "execute "set =\e\eD" nnoremap :bnext nnoremap :bprevious nnoremap :bd "Syntastic default settings set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} set statusline+=%* " let g:deoplete#sources#padawan#add_parentheses = 1 " needed for echodoc to work if add_parentheses is 1 " let g:deoplete#sources = get(g:,'deoplete#sources',{}) " let g:deoplete#sources.php = ['padawan', 'ultisnips', 'tags', 'buffer', 'LanguageClient'] let g:deoplete#enable_at_startup = 1 let g:deoplete#enable_ignore_case = 1 let g:deoplete#enable_smart_case = 1 let g:deoplete#enable_camel_case = 1 let g:deoplete#enable_refresh_always = 1 let g:deoplete#file#enable_buffer_path = 1 let g:deoplete#max_abbr_width = 0 let g:deoplete#max_menu_width = 0 let g:deoplete#omni#input_patterns = get(g:,'deoplete#omni#input_patterns',{}) let g:deoplete#omni#input_patterns.java = [ \'[^. \t0-9]\.\w*', \'[^. \t0-9]\->\w*', \'[^. \t0-9]\::\w*', \] call deoplete#custom#source('buffer', 'mark', 'ℬ') call deoplete#custom#source('ternjs', 'mark', '') call deoplete#custom#source('omni', 'mark', '⌾') call deoplete#custom#source('file', 'mark', 'file') call deoplete#custom#source('jedi', 'mark', '') call deoplete#custom#source('typescript', 'mark', '') call deoplete#custom#source('neosnippet', 'mark', '') call deoplete#custom#source('java', 'mark', '') call deoplete#custom#source('javacomplete2', 'mark', '') call deoplete#custom#source('typescript', 'rank', 630) set completefunc=autoprogramming#complete let g:deoplete#auto_complete_delay = 50 let g:deoplete#ignore_sources = get(g:,'deoplete#ignore_sources',{}) let g:deoplete#ignore_sources.java = ['omni'] let g:deoplete#ignore_sources.php = ['omni'] let g:deoplete#omni#functions = get(g:,'deoplete#omni#functions',{}) call deoplete#custom#source('_', 'matchers', ['matcher_full_fuzzy']) inoremap deoplete#mappings#smart_close_popup()."\" inoremap deoplete#mappings#smart_close_popup()."\" inoremap deoplete#mappings#manual_complete() function! GutentagsFilter(path) abort if fnamemodify(a:path, ':e') == 'java' return 0 elseif fnamemodify(a:path, ':e') == '' return 0 elseif fnamemodify(a:path, ':e') == 'xml' return 0 elseif fnamemodify(a:path, ':e') == 'gradle' return 0 else return 1 endif endfunction let g:gutentags_enabled_user_func = 'GutentagsFilter' let g:gutentags_ctags_tagfile = '.tags' let g:gutentags_ctags_executable_php = 'ctags --langmap=php:.engine.inc.module.theme.install.php --php-kinds=cdfi --fields=+l' " only start lsp when opening php files au filetype php LanguageClientStart " use LSP completion on ctrl-x ctrl-o as fallback for padawan in legacy projects au filetype php set omnifunc=LanguageClient#complete " no need for diagnostics, we're going to use neomake for that let g:LanguageClient_diagnosticsEnable = 0 let g:LanguageClient_signColumnAlwaysOn = 0 " I only use these 3 mappings nnoremap gd :call LanguageClient_textDocument_definition() nnoremap gr :call LanguageClient_textDocument_references() nnoremap K :call LanguageClient_textDocument_hover() " cycle through menu items with tab/shift+tab inoremap pumvisible() ? "\" : "\" inoremap pumvisible() ? "\" : "\" autocmd BufWritePost * Neomake let g:neomake_error_sign = {'text': '✖', 'texthl': 'NeomakeErrorSign'} let g:neomake_warning_sign = {'text': '∆', 'texthl': 'NeomakeWarningSign'} let g:neomake_message_sign = {'text': '➤', 'texthl': 'NeomakeMessageSign'} let g:neomake_info_sign = {'text': 'ℹ', 'texthl': 'NeomakeInfoSign'} let g:UltiSnipsExpandTrigger="" let g:UltiSnipsJumpForwardTrigger="" let g:UltiSnipsJumpBackwardTrigger="" " PHP7 let g:ultisnips_php_scalar_types = 1 let g:seiya_auto_enable=1 let g:seiya_target_groups = has('nvim') ? ['guibg'] : ['ctermbg']