" load the plugin and indent settings for the detected filetype
filetype plugin indent on
filetype plugin on
-set omnifunc=syntaxcomplete#Complete
" Directories for swp files
set backupdir=~/.vim/.backup
highlight Keyword cterm=italic
" FZF config
-set rtp+=/usr/local/opt/fzf
+set rtp+=$FZF_VIM_PATH
" Inserts the path of the currently edited file into a command
noremap <C-P> :FZF <CR>
+let g:fzf_layout = { 'down': '40%' }
+
+" Auto Pairs
+let g:AutoPairsMultilineClose = 0
+
" ALE config
-let g:ale_linters = {'javascript': ['eslint']}
+let g:ale_linter_aliases = {'svelte': ['css', 'javascript']}
+let g:ale_linters = {
+ \'javascript': ['eslint'],
+ \'svelte': ['stylelint', 'eslint']
+ \}
+let g:ale_fixers = {
+ \'javascript': ['eslint'],
+ \'svelte': ['eslint']
+ \}
+let g:ale_fix_on_save = 1
+
+" Svelte Config
+let g:vim_svelte_plugin_use_typescript = 1
+
+" Deoplete config
+let g:deoplete#enable_at_startup = 1
+inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
+inoremap <expr><S-tab> pumvisible() ? "\<c-p>" : "\<tab>"
"
" A E S T H E T I C S
vnoremap <C-S-j> :m '>+1<CR>gv=gv
vnoremap <C-S-k> :m '<-2<CR>gv=gv
+" Limelight / Goyo config
+
+autocmd! User GoyoEnter Limelight
+autocmd! User GoyoLeave Limelight!
+nnoremap <C-S-l> :Limelight!!<CR>==
+inoremap <C-S-l> <Esc>:Limelight!!<CR>==gi
+vnoremap <C-S-l> :<C-u>Limelight!!<CR>gv=gv
+nnoremap <C-S-g> :Goyo<CR>==
+inoremap <C-S-g> <Esc>:Goyo<CR>==gi
+vnoremap <C-S-g> :<C-u>Goyo<CR>gv=gv
+
"
" Plug Config
"
call plug#begin('~/.vim/plugged')
" Syntaxes
-Plug 'rbdr/api-notation.vim'
+Plug 'https://gitlab.com/rbdr/api-notation.vim.git'
Plug 'elzr/vim-json'
Plug 'mustache/vim-mode'
Plug 'othree/yajs.vim'
Plug 'ARM9/snes-syntax-vim'
Plug 'posva/vim-vue'
+Plug 'leafgarland/typescript-vim'
Plug 'leafOfTree/vim-svelte-plugin'
Plug 'bumaociyuan/vim-swift'
Plug 'udalov/kotlin-vim'
+Plug 'tikhomirov/vim-glsl'
+Plug 'jparise/vim-graphql'
+Plug 'digitaltoad/vim-pug'
+Plug 'https://git.sr.ht/~torresjrjr/gemini.vim'
+Plug 'rust-lang/rust.vim'
+Plug 'dart-lang/dart-vim-plugin'
" Editing
-Plug 'jiangmiao/auto-pairs'
Plug 'tpope/vim-endwise'
+Plug 'rstacruz/vim-closer'
Plug 'michaeljsmith/vim-indent-object'
+Plug 'editorconfig/editorconfig-vim'
+
+" Distraction free editing
+Plug 'junegunn/goyo.vim'
+Plug 'junegunn/limelight.vim'
" Tools
Plug 'editorconfig/editorconfig-vim'
Plug 'dense-analysis/ale'
+Plug 'neoclide/coc.nvim', {'branch': 'release'}
Plug 'vim-scripts/LargeFile'
Plug 'tpope/vim-fugitive'
Plug 'milkypostman/vim-togglelist'
Plug 'jremmen/vim-ripgrep'
-Plug 'lifepillar/vim-mucomplete'
" List ends here. Plugins become visible to Vim after this call.
call plug#end()
+
+if filereadable(expand('~/.vimrc.local'))
+ exe 'source' '~/.vimrc.local'
+endif