" Copyright (c) 2016, 2020 Teddy Wing " " Twodo is free software: you can redistribute it and/or modify " it under the terms of the GNU General Public License as published by " the Free Software Foundation, either version 3 of the License, or " (at your option) any later version. " " Twodo is distributed in the hope that it will be useful, " but WITHOUT ANY WARRANTY; without even the implied warranty of " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " GNU General Public License for more details. " " You should have received a copy of the GNU General Public License " along with Twodo. If not, see . function! todo#MarkComplete() let view = winsaveview() keeppatterns s/\v^(\s*)[-_!xS] /\1v / call winrestview(view) silent! call repeat#set("\TwodoMarkComplete", v:count) endfunction function! todo#MarkDeleted() let view = winsaveview() keeppatterns s/\v^(\s*)[-_!vS] /\1x / call winrestview(view) silent! call repeat#set("\TwodoMarkDeleted", v:count) endfunction function! todo#MarkPartiallyCompleted() let view = winsaveview() keeppatterns s/\v^(\s*)[-_!xv] /\1S / call winrestview(view) silent! call repeat#set("\TwodoMarkPartiallyCompleted", v:count) endfunction function! todo#RemoveOldTodos() let view = winsaveview() keeppatterns g/^\s*[vx] /d call winrestview(view) silent! call repeat#set("\TwodoRemoveOldTodos", v:count) endfunction 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) silent! call repeat#set("\TwodoEscalate", v:count) endfunction function! todo#Descalate() 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) silent! call repeat#set("\TwodoDescalate", v:count) endfunction