From caec071d634877f05d53acf4f38a1039a1f162d9 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 3 Jun 2016 09:37:02 -0400 Subject: Add Escalate mapping Define the `todo#Escalate()` function which does the opposite of `todo#Descalate()` and add a mapping to invoke the function. --- autoload/todo.vim | 14 ++++++++++++++ ftplugin/todo.vim | 5 +++++ 2 files changed, 19 insertions(+) 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 TwodoMarkComplete m`:s/\v^(\s*)[-_!xS] /\1 nnoremap TwodoMarkDeleted m`:s/\v^(\s*)[-_!vS] /\1x / \| nohlsearch`` nnoremap TwodoMarkPartiallyCompleted m`:s/\v^(\s*)[-_!xv] /\1S / \| nohlsearch`` nnoremap TwodoRemoveOldTodos :g/^\s*[vx] /d \| nohlsearch +nnoremap TwodoEscalate :call todo#Escalate() nnoremap TwodoDescalate :call todo#Descalate() if !hasmapto('TwodoNewTodoBelow') || !maparg('n', 'n') @@ -36,6 +37,10 @@ if !hasmapto('TwodoRemoveOldTodos') || !maparg('R', 'n') nmap R TwodoRemoveOldTodos endif +if !hasmapto('TwodoEscalate') || !maparg('=', 'n') + nmap = TwodoEscalate +endif + if !hasmapto('TwodoDescalate') || !maparg('-', 'n') nmap - TwodoDescalate endif -- cgit v1.2.3