diff options
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | autoload/todo.vim | 36 | ||||
-rw-r--r-- | ftplugin/todo.vim | 8 |
3 files changed, 42 insertions, 5 deletions
@@ -16,6 +16,7 @@ Escalation and "descalation" should be an operator-pending mapping 2020.03.21: - Add changelog -- Don't save edits in search history +v Don't save edits in search history - Add repeat support - Add license headers +- Add no_plugin_maps support diff --git a/autoload/todo.vim b/autoload/todo.vim index 758d0d5..8cfa986 100644 --- a/autoload/todo.vim +++ b/autoload/todo.vim @@ -1,3 +1,39 @@ +function! todo#MarkComplete() + let view = winsaveview() + + keeppatterns s/\v^(\s*)[-_!xS] /\1v / + + call winrestview(view) +endfunction + + +function! todo#MarkDeleted() + let view = winsaveview() + + keeppatterns s/\v^(\s*)[-_!vS] /\1x / + + call winrestview(view) +endfunction + + +function! todo#MarkPartiallyCompleted() + let view = winsaveview() + + keeppatterns s/\v^(\s*)[-_!xv] /\1S / + + call winrestview(view) +endfunction + + +function! todo#RemoveOldTodos() + let view = winsaveview() + + keeppatterns g/^\s*[vx] /d + + call winrestview(view) +endfunction + + function! todo#Escalate() let todo = getline('.') diff --git a/ftplugin/todo.vim b/ftplugin/todo.vim index e7664d8..ff9be27 100644 --- a/ftplugin/todo.vim +++ b/ftplugin/todo.vim @@ -8,10 +8,10 @@ let b:did_ftplugin = 1 nnoremap <silent> <buffer> <Plug>TwodoNewTodoBelow o- nnoremap <silent> <buffer> <Plug>TwodoNewTodoAbove O- -nnoremap <silent> <buffer> <Plug>TwodoMarkComplete m`:<c-u>s/\v^(\s*)[-_!xS] /\1v / \| nohlsearch<cr>`` -nnoremap <silent> <buffer> <Plug>TwodoMarkDeleted m`:<c-u>s/\v^(\s*)[-_!vS] /\1x / \| nohlsearch<cr>`` -nnoremap <silent> <buffer> <Plug>TwodoMarkPartiallyCompleted m`:<c-u>s/\v^(\s*)[-_!xv] /\1S / \| nohlsearch<cr>`` -nnoremap <silent> <buffer> <Plug>TwodoRemoveOldTodos :<c-u>g/^\s*[vx] /d \| nohlsearch<cr> +nnoremap <silent> <buffer> <Plug>TwodoMarkComplete :<c-u>call todo#MarkComplete()<cr> +nnoremap <silent> <buffer> <Plug>TwodoMarkDeleted :<c-u>call todo#MarkDeleted()<cr> +nnoremap <silent> <buffer> <Plug>TwodoMarkPartiallyCompleted :<c-u>call todo#MarkPartiallyCompleted()<cr> +nnoremap <silent> <buffer> <Plug>TwodoRemoveOldTodos :<c-u>call todo#RemoveOldTodos()<cr> nnoremap <silent> <buffer> <Plug>TwodoEscalate :<c-u>call todo#Escalate()<cr> nnoremap <silent> <buffer> <Plug>TwodoDescalate :<c-u>call todo#Descalate()<cr> |