Incorporated due date workaround from durcheinandr

This commit is contained in:
David Beniamine
2015-07-05 12:29:02 +02:00
4 changed files with 49 additions and 31 deletions

View File

@@ -18,6 +18,10 @@ function for context and projects (see section 1.4).
git clone https://github.com/dbeniamine/todo.txt-vim.git ~/.vim/bundle/todo.txt-vim
If you want the help installed, run ":helptags ~/.vim/doc" inside vim after having copied the files.
Then you will be able to get the commands help with: :h todo.txt
## Features included in Freitass version
This plugin gives syntax highlighting to [todo.txt](http://todotxt.com/) files. It also defines a few mappings, to help with editing these files:
@@ -28,6 +32,8 @@ This plugin gives syntax highlighting to [todo.txt](http://todotxt.com/) files.
`<LocalLeader>s@` : Sort the file on @Contexts
`<leader>-sd` : Sort @_sched entries by due-date
`<LocalLeader>j` : Lower the priority of the current line
`<LocalLeader>k` : Increase the priority of the current line
@@ -48,9 +54,6 @@ This plugin gives syntax highlighting to [todo.txt](http://todotxt.com/) files.
`<leader>-D` : Move completed tasks to done.txt
If you want the help installed, run ":helptags ~/.vim/doc" inside vim after having copied the files.
Then you will be able to get the commands help with: :h todo.txt
## New features
This fork provides a hierarchical sorting function designed to do by project

View File

@@ -9,6 +9,8 @@ COMMANDS *todo-commands*
`<LocalLeader>s@` : Sort the file on @Contexts
`<LocalLeader>s@` : Sort the file on due dates
`<LocalLeader>sc` : Sort the file by context then by priority
`<LocalLeader>scp` : Sort the file by context, project then by priority

View File

@@ -39,7 +39,6 @@ function! TodoTxtUnMarkAsDone()
:s/\s*x\s*\d\{4}-\d\{1,2}-\d\{1,2}\s*//g
endfunction
function! TodoTxtMarkAsDone()
function! TodoTxtMarkAsDone()
call TodoTxtPrependDate()
normal! Ix
@@ -85,6 +84,13 @@ function! TodoTxtSort()
:sort /+[a-zA-Z]*/ r
:sort /\v\([A-Z]\)/ r
endfunction
function! TodoTxtSortDue()
:silent! %s/\(due:\d\{4}\)-\(\d\{2}\)-\(\d\{2}\)/\1\2\3/g
:sort! n /due:/
:silent! %s/\(due:\d\{4}\)\(\d\{2}\)/\1-\2-/g
" TODO: add time sorting (YYYY-MM-DD HH:MM)
endfunction
" Mappings {{{1
" Sort tasks {{{2
@@ -209,6 +215,11 @@ if !hasmapto("<localleader>D",'n')
if !hasmapto("<localleader>D",'n')
nnoremap <script> <silent> <buffer> <localleader>D :call TodoTxtRemoveCompleted()<CR>
endif
" Sort @_sched by due: date {{{2
if !hasmapto("<localleader>sd".'n')
nnoremap <script> <silent> <buffer> <localleader>sd :call TodoTxtSortDue()<CR>
endif
" Folding {{{1
" Options {{{2

View File

@@ -9,38 +9,40 @@ if exists("b:current_syntax")
finish
endif
syntax match TodoDone '^[xX]\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityA '^([aA])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityB '^([bB])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityC '^([cC])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityD '^([dD])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityE '^([eE])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityF '^([fF])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityG '^([gG])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityH '^([hH])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityI '^([iI])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityJ '^([jJ])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityK '^([kK])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityL '^([lL])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityM '^([mM])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityN '^([nN])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityO '^([oO])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityP '^([pP])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityQ '^([qQ])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityR '^([rR])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityS '^([sS])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityT '^([tT])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityU '^([uU])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityV '^([vV])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityW '^([wW])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityX '^([xX])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityY '^([yY])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoPriorityZ '^([zZ])\s.\+$' contains=TodoDate,TodoProject,TodoContext
syntax match TodoDone '^[xX]\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityA '^([aA])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityB '^([bB])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityC '^([cC])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityD '^([dD])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityE '^([eE])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityF '^([fF])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityG '^([gG])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityH '^([hH])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityI '^([iI])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityJ '^([jJ])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityK '^([kK])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityL '^([lL])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityM '^([mM])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityN '^([nN])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityO '^([oO])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityP '^([pP])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityQ '^([qQ])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityR '^([rR])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityS '^([sS])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityT '^([tT])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityU '^([uU])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityV '^([vV])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityW '^([wW])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityX '^([xX])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityY '^([yY])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoPriorityZ '^([zZ])\s.\+$' contains=TodoDue,TodoDate,TodoProject,TodoContext
syntax match TodoDate '\d\{2,4\}-\d\{2\}-\d\{2\}' contains=NONE
syntax match TodoDue 'due:' contains=NONE
syntax match TodoProject '\(^\|\W\)+[^[:blank:]]\+' contains=NONE
syntax match TodoContext '\(^\|\W\)@[^[:blank:]]\+' contains=NONE
" Other priority colours might be defined by the user
highlight default link TodoDue Special
highlight default link TodoDone Comment
highlight default link TodoPriorityA Identifier
highlight default link TodoPriorityB statement