diff options
-rw-r--r-- | autoload/todo.vim | 14 | ||||
-rw-r--r-- | ftplugin/todo.vim | 5 |
2 files changed, 19 insertions, 0 deletions
diff --git a/autoload/todo.vim b/autoload/todo.vim index 926f1e7..758d0d5 100644 --- a/autoload/todo.vim +++ b/autoload/todo.vim @@ -1,4 +1,18 @@ function! todo#Escalate() + let todo = getline('.') + + " First non-whitespace character + let col = match(todo, '\S') + + let priority = todo[col] + + if priority ==# '_' + let todo = substitute(todo, '_', '-', '') + elseif priority ==# '-' + let todo = substitute(todo, '-', '!', '') + endif + + call setline(line('.'), todo) endfunction diff --git a/ftplugin/todo.vim b/ftplugin/todo.vim index 85b2b66..f392c94 100644 --- a/ftplugin/todo.vim +++ b/ftplugin/todo.vim @@ -10,6 +10,7 @@ nnoremap <silent> <buffer> <Plug>TwodoMarkComplete m`:<c-u>s/\v^(\s*)[-_!xS] /\1 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>TwodoEscalate :<c-u>call todo#Escalate()<cr> nnoremap <silent> <buffer> <Plug>TwodoDescalate :<c-u>call todo#Descalate()<cr> if !hasmapto('<Plug>TwodoNewTodoBelow') || !maparg('<leader>n', 'n') @@ -36,6 +37,10 @@ if !hasmapto('<Plug>TwodoRemoveOldTodos') || !maparg('<leader>R', 'n') nmap <silent> <buffer> <leader>R <Plug>TwodoRemoveOldTodos endif +if !hasmapto('<Plug>TwodoEscalate') || !maparg('<leader>=', 'n') + nmap <silent> <buffer> <leader>= <Plug>TwodoEscalate +endif + if !hasmapto('<Plug>TwodoDescalate') || !maparg('<leader>-', 'n') nmap <silent> <buffer> <leader>- <Plug>TwodoDescalate endif |