aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2020-03-21 23:11:25 +0100
committerTeddy Wing2020-03-21 23:11:25 +0100
commitb13db3116d84b0fc474f193baf2514bc66d5580c (patch)
treededab395d542d953e28d7887eaa9f85b0c28e374
parent9a2d08847734353e703ac43eb82827582b3d2af9 (diff)
downloadvim-twodo-b13db3116d84b0fc474f193baf2514bc66d5580c.tar.bz2
Don't save search history when running substitution commands
Our substitution commands would save the search pattern into search history, intervening with user search history. Use the `keeppatterns` command to prevent this.
-rw-r--r--autoload/todo.vim36
-rw-r--r--ftplugin/todo.vim8
2 files changed, 40 insertions, 4 deletions
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>