Better handling of priority on done tasks
Also added <localleader>ff to fix format. this will remove leading
whitespaces and convert old (wrong) done tasks to the correct format
This commit is contained in:
David Beniamine
2017-09-20 13:15:55 +02:00
parent c6e472c048
commit ebdde99ac4
5 changed files with 23 additions and 3 deletions

View File

@@ -259,3 +259,7 @@ Possible values are :
+ `<LocalLeader>X` : Mark all tasks as completed + `<LocalLeader>X` : Mark all tasks as completed
+ `<LocalLeader>D` : Move completed tasks to done file, see [TodoTxt + `<LocalLeader>D` : Move completed tasks to done file, see [TodoTxt
Files](#todotxt-files) Files](#todotxt-files)
### Format
+ `<LocalLeader>ff` : Try to fix todo.txt format

View File

@@ -77,6 +77,13 @@ function! todo#ToggleMarkAsDone(status)
endif endif
endfunction endfunction
function! todo#FixFormat()
" Remove heading space
silent! %s/\C^\s*//
" Remove priority from done tasks
silent! %s/\C^x (\([A-Z]\)) \(.*\)/x \2 pri:\1/
endfunction
function! todo#UnMarkAsDone(status) function! todo#UnMarkAsDone(status)
if a:status=='' if a:status==''
let pat='' let pat=''
@@ -84,12 +91,14 @@ function! todo#UnMarkAsDone(status)
let pat=' '.a:status let pat=' '.a:status
endif endif
exec ':s/\C^x\s*\d\{4}-\d\{1,2}-\d\{1,2}'.pat.'\s*//g' exec ':s/\C^x\s*\d\{4}-\d\{1,2}-\d\{1,2}'.pat.'\s*//g'
silent s/\C\(.*\) pri:\([A-Z]\)/(\2) \1/
endfunction endfunction
function! todo#MarkAsDone(status) function! todo#MarkAsDone(status)
if a:status!='' if a:status!=''
exec 'normal! I'.a:status.' ' exec 'normal! I'.a:status.' '
endif endif
exec ':s/\C^(\([A-Z]\))\(.*\)/\2 pri:\1'
call todo#PrependDate() call todo#PrependDate()
if (getline(".") =~ '^ ') if (getline(".") =~ '^ ')
normal! gIx normal! gIx

View File

@@ -27,6 +27,7 @@ Table of Contents *TodoTxt-Contents* ~
6.2 Priorities...............................|TodoTxt-Priorities| 6.2 Priorities...............................|TodoTxt-Priorities|
6.3 Dates....................................|TodoTxt-Dates| 6.3 Dates....................................|TodoTxt-Dates|
6.4 Done.txt.................................|TodoTxt-Done| 6.4 Done.txt.................................|TodoTxt-Done|
6.5 Format...................................|TodoTxt-Format|
=============================================================================== ===============================================================================
1. Release notes *TodoTxt-ReleaseNotes* ~ 1. Release notes *TodoTxt-ReleaseNotes* ~
@@ -284,3 +285,7 @@ Possible values are :
`<LocalLeader>D` : Move completed tasks to done file, see |TodoTxt-Files| `<LocalLeader>D` : Move completed tasks to done file, see |TodoTxt-Files|
`<LocalLeader>` is \ by default, so ̀`<LocaLeader>-s` means you type \s `<LocalLeader>` is \ by default, so ̀`<LocaLeader>-s` means you type \s
6.5 Format *TodoTxt-format*
`<LocalLeader>ff` : Try to fix todo.txt format

View File

@@ -71,6 +71,8 @@ if !exists("g:Todo_txt_do_not_map")
" Sort by due: date {{{2 " Sort by due: date {{{2
nnoremap <script> <silent> <buffer> <localleader>sd :call todo#SortDue()<CR> nnoremap <script> <silent> <buffer> <localleader>sd :call todo#SortDue()<CR>
" try fix format {{{2
nnoremap <script> <silent> <buffer> <localleader>ff :call todo#FixFormat()<CR>
endif endif
" Folding {{{1 " Folding {{{1

View File

@@ -460,7 +460,7 @@ Given todo (Tasks):
Active task Active task
2017-09-01 Active task with a created date 2017-09-01 Active task with a created date
(A) Active priority task (A) Active priority task
(A) 2017-09-01 Active priority task with a created date (C) 2017-09-01 Active priority task with a created date
X 2017-09-18 Not to be confused for a complete task X 2017-09-18 Not to be confused for a complete task
XNot to be confused for a complete task XNot to be confused for a complete task
x 2017-09-18 Rules are not clear on leading whitespace, see comments in test x 2017-09-18 Rules are not clear on leading whitespace, see comments in test
@@ -476,8 +476,8 @@ Expect todo (Toggled tasks with today as **TODAY**):
x **TODAY** X 2017-09-18 Not to be confused for a complete task x **TODAY** X 2017-09-18 Not to be confused for a complete task
x **TODAY** Active task x **TODAY** Active task
x **TODAY** 2017-09-01 Active task with a created date x **TODAY** 2017-09-01 Active task with a created date
x (A) **TODAY** Active priority task x **TODAY** Active priority task pri:A
x (A) **TODAY** 2017-09-01 Active priority task with a created date x **TODAY** 2017-09-01 Active priority task with a created date pri:C
x **TODAY** X 2017-09-18 Not to be confused for a complete task x **TODAY** X 2017-09-18 Not to be confused for a complete task
x **TODAY** XNot to be confused for a complete task x **TODAY** XNot to be confused for a complete task
x **TODAY** x 2017-09-18 Rules are not clear on leading whitespace, see comments in test x **TODAY** x 2017-09-18 Rules are not clear on leading whitespace, see comments in test