Sorting tasks by date.

This commit is contained in:
Leandro Freitas
2015-04-16 20:47:53 -03:00
parent 639fcd85a2
commit 1cc11c56ad
3 changed files with 35 additions and 0 deletions

View File

@@ -89,6 +89,10 @@ function! TodoTxtSortByProject() range
function! TodoTxtSortByProject() range
execute a:firstline . "," . a:lastline . "sort /\\(^\\| \\)\\zs+[^[:blank:]]\\+/ r"
endfunction
function! TodoTxtSortByDate() range
execute a:firstline . "," . a:lastline . "sort! /\\d\\{2,4\\}-\\d\\{2\\}-\\d\\{2\\}/ r"
endfunction
" Mappings {{{1
" Sort tasks {{{2
@@ -115,6 +119,14 @@ if !hasmapto("<leader>s+",'v')
if !hasmapto("<leader>s+",'v')
vnoremap <script> <silent> <buffer> <leader>s+ :call TodoTxtSortByProject()<CR>
endif
if !hasmapto("<leader>sd",'n')
nnoremap <script> <silent> <buffer> <leader>sd :%call TodoTxtSortByDate()<CR>
endif
if !hasmapto("<leader>sd",'v')
vnoremap <script> <silent> <buffer> <leader>sd :call TodoTxtSortByDate()<CR>
endif
" Increment and Decrement The Priority
:set nf=octal,hex,alpha

View File

@@ -0,0 +1,5 @@
# lorem_ipsum
(B) 2013-03-15 2015-03-17
(A) 2012-04-16 2015-04-16
(B) 2013-03-16 2013-03-10
# end_lorem_ipsum

18
test/tc_sort_date.vim Normal file
View File

@@ -0,0 +1,18 @@
let s:here = expand('<sfile>:p:h')
let s:tc = unittest#testcase#new('Sort Date',
\ { 'data': s:here . '/tc_sort_date.todo.txt' })
let s:LEADER = mapleader
let s:SORTED_TASKS = [
\ '(B) 2013-03-16 2013-03-10',
\ '(B) 2013-03-15 2015-03-17',
\ '(A) 2012-04-16 2015-04-16',
\ ]
function! s:tc.test_sort_by_context()
call self.data.visual_execute('call TodoTxtSortByDate()', 'lorem_ipsum')
call self.assert_equal(s:SORTED_TASKS, self.data.get('lorem_ipsum'))
endfunction
unlet s:tc