[[plugins]] repo = 'purescript-contrib/purescript-vim' [[plugins]] repo = 'PProvost/vim-ps1' [[plugins]] repo = 'nvim-lua/popup.nvim' on_if = 'has("nvim")' [[plugins]] repo = 'nvim-lua/plenary.nvim' on_if = 'has("nvim")' [[plugins]] repo = 'Twinside/vim-haskellFold' hook_post_source = ''' call SetHaskellFolding() ''' on_ft = ['haskell'] [[plugins]] repo = 'kana/vim-submode' hook_add = ''' " A message will appear in the message line when you're in a submode " and stay there until the mode has exited. let g:submode_always_show_submode = 1 let g:submode_keep_leaving_key = 1 let g:submode_timeout = 0 " We're taking over the default setting. Don't worry we'll do " our best to put back the default functionality. call submode#enter_with('nav', 'n', '', '') call submode#map('nav', 'n', 's', 'e', ':normal! 6j') call submode#map('nav', 'n', 's', 'o', ':normal! 6k') call submode#map('nav', 'n', 's', ',', 'normal! ') call submode#map('nav', 'n', 's', '.', 'normal! ') call submode#map('nav', 'n', 's', ']', 'normal! ') call submode#map('nav', 'n', 's', '[', 'normal! ') call submode#map('nav', 'n', '', 'n', 'B') call submode#map('nav', 'n', '', 'i', 'W') call submode#map('nav', 'n', 's', '', ':tabprevious') call submode#map('nav', 'n', 's', '=', ':tabnext') ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'jparise/vim-graphql' [[plugins]] repo = 'mileszs/ack.vim' # [[plugins]] # repo = 'vim-scripts/cmdalias.vim' [[plugins]] repo = 'easymotion/vim-easymotion' hook_add = ''' ''' [[plugins]] repo = 'Raimondi/delimitMate' hook_add = ''' let g:delimitMate_matchpairs = "(:),[:],{:}" let g:delimitMate_expand_cr = 1 let g:delimitMate_expand_space = 1 let g:delimitMate_autoclose = 1 ''' [[plugins]] repo = 'vim-scripts/genindent.vim' on_if = '!exists("g:vscode")' [[plugins]] repo = 'scrooloose/nerdcommenter' hook_add = ''' let NERDSpaceDelims=1 let NERDCreateDefaultMappings=0 ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'scrooloose/nerdtree' on_event = 'NERDTreeToggle' hook_add = ''' let g:NERDTreeMapActivateNode = '' let g:NERDTreeMapCustomOpen = '' let g:NERDTreeMapOpenExpl = 'n' let g:NERDTreeMapJumpNextSibling = '' " let g:NERDTreeMapOpenSplit = '' " use NERDTree instead of netrw autocmd StdinReadPre * let s:std_in=1 autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'Xuyuanp/nerdtree-git-plugin' on_event = 'NERDTreeToggle' on_if = '!exists("g:vscode")' [[plugins]] repo = 'xolox/vim-easytags' hook_add = ''' let g:easytags_async = 1 ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'xolox/vim-misc' [[plugins]] repo = 'nathanaelkane/vim-indent-guides' [[plugins]] repo = 'Shougo/vimproc.vim' build = 'make' [[plugins]] repo = 'sjbach/lusty' hook_add = ''' let g:LustyExplorerSuppressRubyWarning = 1 ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'nixprime/cpsm' build = 'sh -c "PY3=ON ./install.sh"' on_if = '!exists("g:vscode")' [[plugins]] repo = 'liuchengxu/vista.vim' hook_add = ''' let g:vista#renderer#enable_icon = 0 let g:vista_ctags_cmd = { \ 'haskell': 'hasktags -x -o - -c', \ 'yaml': 'hasktags -x -o - -c', \ } ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'sbdchd/neoformat' hook_add = ''' let g:neoformat_enabled_haskell = ['brittany'] let g:neoformat_enabled_typescript = ['prettier'] let g:neoformat_try_node_exe = 1 ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'AndrewRadev/bufferize.vim' [[plugins]] repo = 'vmchale/dhall-vim' [[plugins]] repo = 'Shougo/echodoc.vim' hook_add = ''' " set cmdheight=2 let g:echodoc#enable_at_startup = 1 let g:echodoc#type = 'signature' ''' [[plugins]] repo = 'tpope/vim-scriptease' on_if = '!has("nvim")' [[plugins]] repo = 'Konfekt/FastFold' hook_add = ''' let g:fastfold_savehook = 1 let g:fastfold_fold_command_suffixes = ['x','X','a','A','o','O','c','C'] let g:fastfold_fold_movement_commands = [']z', '[z', 'zj', 'zk'] let g:markdown_folding = 1 let g:tex_fold_enabled = 1 let g:vimsyn_folding = 'af' let g:xml_syntax_folding = 1 let g:html_syntax_folding = 1 let g:javaScript_fold = 1 let g:sh_fold_enabled= 7 let g:ruby_fold = 1 let g:perl_fold = 1 let g:perl_fold_blocks = 1 let g:r_syntax_folding = 1 let g:rust_fold = 1 let g:haskell_fold = 1 ''' [[plugins]] repo = 'editorconfig/editorconfig-vim' hook_add = ''' " overwrite nonsense from editorconfig let g:EditorConfig_max_line_indicator = 'none' " let g:EditorConfig_preserve_formatoptions = 1 ''' [[plugins]] repo = 'hasufell/ghcup.vim' on_if = '!exists("g:vscode")' [[plugins]] repo = 'junegunn/vim-easy-align' [[plugins]] repo = 'dominikduda/vim_current_word' hook_add = ''' let g:vim_current_word#highlight_current_word = 0 hi default link CurrentWordTwins CursorColumn ''' #[[plugins]] # repo = 'vim-airline/vim-airline' #[[plugins]] # repo = 'vim-airline/vim-airline-themes' [[plugins]] repo = 'mkitt/tabline.vim' [[plugins]] repo = 'kshenoy/vim-signature' # finder [[plugins]] repo = 'liuchengxu/vim-clap' build = 'make' hook_add = ''' autocmd Filetype clap_input inoremap =clap#navigation#scroll('down') autocmd Filetype clap_input inoremap =clap#navigation#scroll('up') autocmd Filetype clap_input nnoremap =clap#navigation#scroll('down') autocmd Filetype clap_input nnoremap =clap#navigation#scroll('up') let g:clap_popup_move_manager = { \ "\": "\", \ "\": "\", \ } let g:clap_layout = {'relative': 'editor', 'width': '95%', 'height': '33%', 'row': '33%', 'col': '5%'} let g:clap_use_pure_python = 1 function! MultiClap(com, ...) abort let opts = map(copy(a:000), "printf('++query=%s', v:val)") execute 'Clap ' a:com join(opts, ' ') endfunction command! -nargs=* Rag call MultiClap('grep', ) command! -nargs=* Dag call MultiClap('dumb_jump', ) let g:clap_provider_generated_tags = { \ 'source': {-> Tags__source()}, \ 'sink': {line -> Tags__sink(line)}, \} function! Tags__source () return flatten(map(tagfiles(), {_, file -> filter(readfile(file), 'stridx(v:val, "!_TAG") != 0')})) endfunc function! Tags__sink (line) " Let vim handle the tag execute 'tag' split(a:line, '\t')[0] endfunc cabbrev C Clap cabbrev c Clap cabbrev cp Clap proj_tags ''' on_if = '!has("nvim") && !exists("g:vscode")' # scm [[plugins]] repo = 'tpope/vim-fugitive' on_if = '!exists("g:vscode")' [[plugins]] repo = 'tpope/vim-rhubarb' on_if = '!exists("g:vscode")' [[plugins]] repo = 'tommcdo/vim-fubitive' [[plugins]] on_if = '!exists("g:vscode")' repo = 'airblade/vim-gitgutter' hook_add = ''' " https://github.com/airblade/vim-gitgutter/issues/696 autocmd ColorScheme * highlight! link SignColumn LineNr ''' on_if = '!exists("g:vscode")' # local vimrc [[plugins]] repo = 'LucHermitte/lh-vim-lib' [[plugins]] repo = 'LucHermitte/local_vimrc' # completion #[[plugins]] #repo = 'Valloric/YouCompleteMe' #build = './install.py --clang-completer --go-completer --rust-completer --system-boost --system-libclang' #on_ft = ['c', 'go', 'clojure'] #hook_add = ''' # youcompleteme # let g:ycm_filetype_blacklist = { # \ 'notes' : 1, # \ 'markdown' : 1, # \ 'text' : 1, # \ 'java' : 1, # \} # let g:ycm_confirm_extra_conf = 0 # let g:ycm_global_ycm_extra_conf='~/.vim/.ycm_extra_conf.py' # let g:ycm_collect_identifiers_from_tags_files = 1 # let g:ycm_seed_identifiers_with_syntax = 0 # " let g:ycm_always_populate_location_list = 1 # let g:ycm_autoclose_preview_window_after_completion = 1 # let g:ycm_key_invoke_completion = '' # let g:ycm_key_list_select_completion = [''] # let g:ycm_key_list_previous_completion = [''] # " nnoremap :YcmCompleter GoToDefinition # let g:ycm_server_log_level = 'error' # let g:ycm_semantic_triggers = {'haskell' : ['. ', '$ ']} # let g:ycm_goto_buffer_command = 'horizontal-split' #''' [[plugins]] repo = 'Shougo/deoplete.nvim' hook_add = ''' let g:deoplete#enable_at_startup = 0 autocmd FileType TelescopePrompt call deoplete#custom#buffer_option('auto_complete', v:false) ''' on_if = '!exists("g:vscode")' [[plugins]] repo = 'roxma/nvim-yarp' on_if = '!has("nvim")' [[plugins]] repo = 'roxma/vim-hug-neovim-rpc' on_if = '!has("nvim")' # linting/compilation [[plugins]] repo = 'dense-analysis/ale' # build = 'bash -c "cp -R ~/.vim/ale_linters ."' hook_add = ''' let g:ale_enabled = 1 " let g:ale_haskell_hie_executable = $HOME . '/.ghcup/bin/haskell-language-server-wrapper' " let g:ale_linters = {'haskell':['hie'], 'c':[]} let g:ale_linters_explicit = 1 let g:ale_haskell_argon_error_level = 14 let g:ale_haskell_argon_warn_level = 10 let g:ale_haskell_argon_info_level = 6 ''' on_if = 'index(["sh", "vim"], &ft) >= 0 && !exists("g:vscode")' # LSP [[plugins]] repo = 'autozimu/LanguageClient-neovim' rev = 'dev' build = 'bash ./install.sh' hook_add = ''' " Required for operations modifying multiple buffers like rename. set hidden let g:LanguageClient_autoStart = 0 let g:LanguageClient_diagnosticsEnable = 1 let g:LanguageClient_diagnosticsList = "Quickfix" let g:LanguageClient_diagnosticsDisplay = { \ 1: { \ "name": "Error", \ "texthl": "ALEError", \ "signText": "✖", \ "signTexthl": "ALEErrorSign", \ "virtualTexthl": "Error", \ }, \ 2: { \ "name": "Warning", \ "texthl": "ALEWarning", \ "signText": "⚠", \ "signTexthl": "ALEWarningSign", \ "virtualTexthl": "Virtual", \ }, \ 3: { \ "name": "Information", \ "texthl": "ALEInfo", \ "signText": "ℹ", \ "signTexthl": "ALEInfoSign", \ "virtualTexthl": "Virtual", \ }, \ 4: { \ "name": "Hint", \ "texthl": "ALEInfo", \ "signText": "➤", \ "signTexthl": "ALEInfoSign", \ "virtualTexthl": "Virtual", \ }, \ } " hi link ALEError Error hi ALEError term=underline cterm=underline ctermfg=Red gui=undercurl guisp=Red hi link ALEWarning Warning hi Virtual cterm=italic ctermfg=10 gui=italic guifg=#4b5558 hi link ALEInfo SpellCap let $LANGUAGECLIENT_DEBUG=1 let g:LanguageClient_loggingLevel='DEBUG' let g:LanguageClient_virtualTextPrefix = '' let g:LanguageClient_loggingFile = expand('~/LanguageClient.log') let g:LanguageClient_serverStderr = expand('~/LanguageServer.log') let g:LanguageClient_rootMarkers = { \ 'haskell': ['cabal.project', '*.cabal', 'stack.yaml'], \ 'elm': ['elm.json'] \ } let g:LanguageClient_serverCommands = { \ 'haskell': ['haskell-language-server-wrapper', '--lsp', '--logfile', $HOME.'/hls-server.log'], \ 'purescript': ['~/.npm-modules/bin/purescript-language-server', '--stdio'], \ 'elm': ['elm-language-server'], \ 'typescript': ['typescript-language-server', '--stdio'] \ } ''' #[[plugins]] #repo = 'prabirshrestha/vim-lsp' #hook_add = ''' # function! s:on_lsp_buffer_enabled() abort # setlocal omnifunc=lsp#complete # setlocal signcolumn=yes # if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif # nmap gd (lsp-definition) # nmap gr (lsp-references) # " nmap gi (lsp-implementation) # " nmap gt (lsp-type-definition) # nmap rn (lsp-rename) # nmap .g (lsp-previous-diagnostic) # nmap ,g (lsp-next-diagnostic) # nmap T (lsp-hover) # nmap la (lsp-code-action) # nmap sd (lsp-document-diagnostics) # # " refer to doc to add more commands # endfunction # # augroup lsp_install # au! # " call s:on_lsp_buffer_enabled only for languages that has the server registered. # autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() # augroup END # # let g:lsp_auto_enable = 0 # # " command -nargs=0 LspStart call lsp#activate() #''' # snippets #[[plugins]] #repo = 'Shougo/neosnippet.vim' #[[plugins]] #repo = 'honza/vim-snippets' # multi language [[plugins]] repo = 'luochen1990/rainbow' hook_add = ''' let g:rainbow_conf = { \ 'guifgs': ['#DC322F', 'royalblue3', 'darkorange3', 'seagreen3'], \ 'ctermfgs': ['lightred', 'lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'], \} let g:rainbow_active = 1 ''' on_if = 'index(["clojure", "haskell", "python"], &ft) >= 0 && !exists("g:vscode")' # haskell [[plugins]] repo = 'neovimhaskell/haskell-vim' hook_add = ''' let g:haskell_classic_highlighting = 1 let g:haskell_indent_disable = 1 " let g:haskell_enable_quantification = 1 " let g:haskell_enable_recursivedo = 1 " let g:haskell_enable_arrowsyntax = 1 " let g:haskell_enable_pattern_synonyms = 1 " let g:haskell_enable_typeroles = 1 let g:haskell_indent_if = 0 let g:haskell_indent_case = 4 let g:haskell_indent_let = 4 let g:haskell_indent_where = 6 let g:haskell_indent_before_where = 2 let g:haskell_indent_after_bare_where = 2 let g:haskell_indent_do = 4 let g:haskell_indent_in = 0 let g:haskell_indent_guard = 4 " let g:haskell_disable_TH = 1 ''' on_if = 'index(["haskell", "cabal"], &ft) >= 0 && !exists("g:vscode")' [[plugins]] repo = 'Twinside/vim-hoogle' hook_source = ''' nnoremap ho :Hoogle nnoremap hc :HoogleClose ''' on_if = 'index(["haskell"], &ft) >= 0 && !exists("g:vscode")' [[plugins]] repo = 'alx741/vim-stylishask' hook_add = ''' let g:stylishask_on_save = 0 ''' on_if = 'index(["haskell"], &ft) >= 0 && !exists("g:vscode")' [[plugins]] repo = 'fatih/vim-go' on_ft = ['go'] hook_post_source = 'GoInstallBinaries' # rust [[plugins]] repo = 'rust-lang/rust.vim' on_ft = ['rust'] # python [[plugins]] repo = 'python-mode/python-mode' on_ft = ['python'] #[[plugins]] # repo = 'zchee/deoplete-jedi' # on_ft = ['python'] #[[plugins]] # repo = 'davidhalter/jedi-vim' # on_ft = ['python'] [[plugins]] repo = 'manicmaniac/coconut.vim' on_ft = ['python'] [[plugins]] repo = 'alfredodeza/pytest.vim' on_if = 'index(["python"], &ft) >= 0 && !exists("g:vscode")' [[plugins]] repo = 'idanarye/vim-vebugger' on_if = 'index(["python"], &ft) >= 0 && !exists("g:vscode")' # scala [[plugins]] repo = 'derekwyatt/vim-scala' on_if = 'index(["scala"], &ft) >= 0 && !exists("g:vscode")' # javascript [[plugins]] repo = 'pangloss/vim-javascript' on_ft = ['typescript', 'javascript'] [[plugins]] repo = 'MaxMEllon/vim-jsx-pretty' on_ft = ['typescript', 'javascript'] # typescript [[plugins]] repo = 'leafgarland/typescript-vim' on_ft = ['typescript', 'javascript'] #[[plugins]] #repo = 'Quramy/tsuquyomi' #on_ft = ['typescript', 'javascript'] [[plugins]] repo = 'prettier/vim-prettier' on_ft = ['typescript', 'javascript'] build = 'npm install' # color and beauty # [[plugins]] # repo = 'tomasiser/vim-code-dark' # [[plugins]] # repo = 'romainl/Apprentice' # [[plugins]] # repo = 'chriskempson/base16-vim' # [[plugins]] # repo = 'fneu/breezy' # [[plugins]] # repo = 'romainl/Disciple' # [[plugins]] # repo = 'wimstefan/Lightning' # [[plugins]] # repo = 'NLKNguyen/papercolor-theme' # [[plugins]] # repo = 'flazz/vim-colorschemes' [[plugins]] repo = 'overcache/NeoSolarized' hook_add = ''' let g:neosolarized_contrast = 'normal' let g:neosolarized_visibility = 'normal' let g:neosolarized_vertSplitBgTrans = 0 let g:neosolarized_bold = 1 let g:neosolarized_underline = 1 let g:neosolarized_italic = 1 set background=dark colorscheme NeoSolarized ''' # repo = 'reedes/vim-colors-pencil' # [[plugins]] # repo = 'whatyouhide/vim-gotham' # [[plugins]] # repo = 'noahfrederick/vim-hemisu' # [[plugins]] # repo = 'morhetz/gruvbox' # toml [[plugins]] repo = 'https://github.com/cespare/vim-toml' # unmanaged [[plugins]] name = 'L9' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'L9' [[plugins]] name = 'ScrollColor' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'ScrollColor' [[plugins]] name = 'bufonly' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'bufonly' on_if = '!exists("g:vscode")' [[plugins]] name = 'colorschemedgrade' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'colorschemedegrade' [[plugins]] name = 'exheres-syntax' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'exheres-syntax-20160115' [[plugins]] name = 'fontzoom' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'fontzoom' on_if = '!has("nvim")' [[plugins]] name = 'fuzzyfinder' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'fuzzyfinder' on_if = '!exists("g:vscode")' [[plugins]] name = 'log' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'log' on_if = '!exists("g:vscode")' #[[plugins]] #repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' #rtp = 'paredit' #[[plugins]] #repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' #rtp = 'tslime' [[plugins]] name = 'txtfmt' repo = 'https://gogs.hasufell.de/hasufell/vim-unmanaged.git' rtp = 'txtfmt' on_if = '!exists("g:vscode")' [[plugins]] repo = 'neovim/nvim-lspconfig' hook_add = ''' lua require('lspconfig').hls.setup{} ''' on_if = 'has("nvim") && !exists("g:vscode")' lazy = false [[plugins]] repo = 'kyazdani42/nvim-web-devicons' on_if = 'has("nvim") && !exists("g:vscode")' lazy = false [[plugins]] repo = 'folke/trouble.nvim' hook_add = ''' lua << EOF require("trouble").setup { -- your configuration comes here -- or leave it empty to use the default settings -- refer to the configuration section below action_keys = { -- key mappings for actions in the trouble list jump_close = {"t"}, -- jump to the diagnostic and close the list } } EOF ''' lazy = false on_if = 'has("nvim") && !exists("g:vscode")' [[plugins]] repo = 'nvim-telescope/telescope.nvim' lazy = false on_if = 'has("nvim") && !exists("g:vscode")'