|
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'
|
|
|
|
"Markdown
|
|
Plug 'suan/vim-instant-markdown'
|
|
|
|
"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 <M-Right>=\e\eC"
|
|
"execute "set <M-Left>=\e\eD"
|
|
nnoremap <silent> <C-Right> :bnext<CR>
|
|
nnoremap <silent> <C-Left> :bprevious<CR>
|
|
nnoremap <silent> <C-Del> :bd<CR>
|
|
|
|
"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 <expr><C-h> deoplete#mappings#smart_close_popup()."\<C-h>"
|
|
inoremap <expr><BS> deoplete#mappings#smart_close_popup()."\<C-h>"
|
|
inoremap <expr><C-x><C-o> 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 <silent> gd :call LanguageClient_textDocument_definition()<CR>
|
|
nnoremap <silent> gr :call LanguageClient_textDocument_references()<CR>
|
|
nnoremap K :call LanguageClient_textDocument_hover()<cr>
|
|
|
|
" cycle through menu items with tab/shift+tab
|
|
inoremap <expr> <TAB> pumvisible() ? "\<c-n>" : "\<TAB>"
|
|
inoremap <expr> <s-tab> pumvisible() ? "\<c-p>" : "\<TAB>"
|
|
|
|
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="<c-j>"
|
|
let g:UltiSnipsJumpForwardTrigger="<c-j>"
|
|
let g:UltiSnipsJumpBackwardTrigger="<c-b>"
|
|
|
|
" PHP7
|
|
let g:ultisnips_php_scalar_types = 1
|
|
|
|
let g:seiya_auto_enable=1
|
|
|
|
let g:seiya_target_groups = has('nvim') ? ['guibg'] : ['ctermbg']
|