diff --git a/nvim/.config/nvim/after/ftplugin/haskell.vim b/nvim/.config/nvim/after/ftplugin/haskell.vim index d477d06..e3b4d24 100644 --- a/nvim/.config/nvim/after/ftplugin/haskell.vim +++ b/nvim/.config/nvim/after/ftplugin/haskell.vim @@ -4,9 +4,8 @@ compiler stack setlocal makeprg=stack\ build setlocal keywordprg=:Hoogle -nmap b :Neomake! -nmap t :NeomakeSh stack exec -- hasktags -x -c . -nmap td :NeomakeSh stack exec -- haskdogs +nmap t :AsyncDo stack exec -- hasktags -x -c . +nmap td :AsyncDo stack exec -- haskdogs nmap g :Ghcid nmap k :GhcidKill nmap c :HoogleClose diff --git a/nvim/.config/nvim/after/ftplugin/qf.vim b/nvim/.config/nvim/after/ftplugin/qf.vim index 24fcf59..a9cfa4e 100644 --- a/nvim/.config/nvim/after/ftplugin/qf.vim +++ b/nvim/.config/nvim/after/ftplugin/qf.vim @@ -1,9 +1,11 @@ -setlocal norelativenumber +setlocal nolist norelativenumber nowrap number nocursorline +setlocal scrolloff=0 noremap p :call quickui#tools#preview_quickfix() -noremap [- :colder -noremap ]+ :cnewer +nnoremap [- :colder +nnoremap ]+ :cnewer +nnoremap g :Cfilter " Close QF window if it is last window autocmd WinEnter * if winnr('$') == 1 && &buftype == "quickfix" | q | endif diff --git a/nvim/.config/nvim/autocmd.vim b/nvim/.config/nvim/autocmd.vim index 267a5d9..77ec255 100644 --- a/nvim/.config/nvim/autocmd.vim +++ b/nvim/.config/nvim/autocmd.vim @@ -22,3 +22,8 @@ augroup UserStatusline autocmd ColorScheme * hi User7 guifg=Gray guibg=Black autocmd ColorScheme * hi User8 guifg=DarkYellow guibg=Black augroup END + +augroup QfAlwaysBottom + autocmd! + autocmd FileType qf wincmd J +augroup END diff --git a/nvim/.config/nvim/config.vim b/nvim/.config/nvim/config.vim index e83a58f..62ebf17 100644 --- a/nvim/.config/nvim/config.vim +++ b/nvim/.config/nvim/config.vim @@ -94,5 +94,8 @@ let g:loaded_tarPlugin = 1 let g:loaded_vimballPlugin = 1 let g:loaded_zipPlugin = 1 +" Add the in built Cfilter plugin. Replaces QFGrep. +packadd cfilter + " Colorscheme colorscheme molokai diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim index 83d7ee1..6d3ef77 100644 --- a/nvim/.config/nvim/init.vim +++ b/nvim/.config/nvim/init.vim @@ -31,14 +31,13 @@ Plug 'vim-utils/vim-husk' Plug 'sakhnik/nvim-gdb', { 'do': ':UpdateRemotePlugins' } " Rainbow Parentheses Plug 'luochen1990/rainbow' -" Neo/Async stuff +" Formatting Plug 'sbdchd/neoformat' -Plug 'neomake/neomake' +" Run things async +Plug 'hauleth/asyncdo.vim' " Quickfix -Plug 'sk1418/QFGrep' Plug 'ronakg/quickr-cscope.vim' Plug 'stefandtw/quickfix-reflector.vim' -Plug 'mhinz/vim-grepper' Plug 'milkypostman/vim-togglelist' Plug 'skywind3000/vim-quickui' Plug 'yssl/QFEnter' diff --git a/nvim/.config/nvim/keymappings.vim b/nvim/.config/nvim/keymappings.vim index 39cdc68..17af931 100644 --- a/nvim/.config/nvim/keymappings.vim +++ b/nvim/.config/nvim/keymappings.vim @@ -11,6 +11,9 @@ nnoremap Q nnoremap o :call GotoJump() nnoremap ; :changes:keepjumps norm g; nnoremap , :changes:keepjumps norm g, +" Async Make mappings +nnoremap b :Make +nnoremap B :LMake " For Fuzzy nnoremap b :Buffers @@ -90,16 +93,6 @@ omap ih (GitGutterTextObjectInnerPending) omap ah (GitGutterTextObjectOuterPending) xmap ih (GitGutterTextObjectInnerVisual) xmap ah (GitGutterTextObjectOuterVisual) -" For Neomake/Neoformat -nnoremap nm :Neomake -nnoremap nc :NeomakeClean -nnoremap ns :NeomakeSh -nnoremap njl :NeomakeListJobs -nnoremap nja :NeomakeCancelJobs -nnoremap njc :NeomakeCancelJob -nnoremap nf :Neoformat -nnoremap ne :NeomakeEnable -nnoremap nd :NeomakeDisable " For workspace nnoremap ws :ToggleWorkspace " Quickfix & Location list mappings @@ -109,8 +102,8 @@ nnoremap [q :cprevious nnoremap ]q :cnext nnoremap [Q :cfirst nnoremap ]Q :clast -nnoremap qs :Grepper -nojump -query -nnoremap q* :Grepper -nojump -cword +nnoremap qs :Grep +nnoremap q* :Grep nnoremap qt :call ToggleQuickfixList() nnoremap Lo :lopen nnoremap Lc :lclose @@ -118,8 +111,8 @@ nnoremap [l :lprevious nnoremap ]l :lnext nnoremap [L :lfirst nnoremap ]L :llast -nnoremap Ls :Grepper -nojump -noquickfix -query -nnoremap L* :Grepper -nojump -noquickfix -cword +nnoremap Ls :LGrep +nnoremap L* :LGrep nnoremap Lt :call ToggleLocationList() " Preview tags nnoremap pt :ptag @@ -173,3 +166,6 @@ nnoremap " Map to ; to : for easy access to command mode. Behaviour of ; can be taken " care of by f due to clever-f nnoremap ; : +" Asynchronous make +command! -bang -nargs=* -complete=file Make call asyncdo#run(0, &makeprg, ) +command! -bang -nargs=* -complete=file LMake call asyncdo#lrun(0, &makeprg, ) diff --git a/nvim/.config/nvim/plugin/grepper.vim b/nvim/.config/nvim/plugin/grepper.vim new file mode 100644 index 0000000..58390b8 --- /dev/null +++ b/nvim/.config/nvim/plugin/grepper.vim @@ -0,0 +1,19 @@ +if executable('rg') + set grepprg=rg\ --vimgrep\ --no-heading\ --smart-case + set grepformat=%f:%l:%c:%m,%f:%l%m,%f\ \ %l%m +elseif executable('ag') + set grepprg=ag\ --nogroup\ --nocolor\ --vimgrep + set grepformat^=%f:%l:%c:%m +endif + +" Taken from https://github.com/hauleth/dotfiles/blob/master/vim/.config/nvim/init.vim +command! -bang -nargs=* -complete=dir Grep call asyncdo#run(0, + \ { 'job': &grepprg, 'errorformat': &grepformat }, ) +command! -bang -nargs=* -complete=dir LGrep call asyncdo#lrun(0, + \ { 'job': &grepprg, 'errorformat': &grepformat }, ) + +augroup GrepperQFOpen + autocmd! + autocmd QuickFixCmdPost [^l]* nested cwindow + autocmd QuickFixCmdPost l* nested lwindow +augroup END