" Taken from https://github.com/salcode/vim-interactive-rebase-reverse
" Reverse the order of all lines that do NOT:
" - Begin with #
" - nor are a blank link
function! s:Reverse()
  global!/\(^#\)\|\(^$\)/m0
endfunction

" Reverse the order of all commits in the git interactive rebase screen,
" when this filetype (gitrebase) is loaded.
call s:Reverse()

" Set an autocmd to run when the Buffer is written
augroup fe_interactive_rebase_reverse
  autocmd!
  " Before saving (un)reverse the order of all commits.
  autocmd BufWritePre <buffer> call s:Reverse()
  " After saving reverse the order of the commits again.
  autocmd BufWritePost <buffer> call s:Reverse()
augroup END

" See https://github.com/neovim/neovim/blob/master/runtime/ftplugin/gitrebase.vim
nnoremap <buffer> <silent> <Leader>p :Pick<CR>
nnoremap <buffer> <silent> <Leader>s :Squash<CR>
nnoremap <buffer> <silent> <Leader>e :Edit<CR>
nnoremap <buffer> <silent> <Leader>r :Reword<CR>
nnoremap <buffer> <silent> <Leader>f :Fixup<CR>
nnoremap <buffer> <silent> <Leader>c :Cycle<CR>

setlocal bufhidden=wipe
