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> | 
