Small bug fixes
FIX: Typo in sort function FIX: Keyword completion CHG: Sort done.txt by completion date
This commit is contained in:
@@ -95,7 +95,7 @@ adding the next lines to your vimrc:
|
|||||||
|
|
||||||
The TodoComplete function is designed to complete projects (starting by '+')
|
The TodoComplete function is designed to complete projects (starting by '+')
|
||||||
and context (starting by '@'). If you use it on a regular word, it will do a
|
and context (starting by '@'). If you use it on a regular word, it will do a
|
||||||
normal buffer completion.
|
normal keyword completion (on all buffers).
|
||||||
If you try to complete a project, it will propose all projects in all open
|
If you try to complete a project, it will propose all projects in all open
|
||||||
buffers and for each of them, it will show their context and the name of the
|
buffers and for each of them, it will show their context and the name of the
|
||||||
buffers in which they appears in the preview window.
|
buffers in which they appears in the preview window.
|
||||||
@@ -125,3 +125,6 @@ sorted by at the beginning of the file, the rest of the file is not modified.
|
|||||||
`<LocalLeader>x` is a toggle which allow you to unmark a task as done.
|
`<LocalLeader>x` is a toggle which allow you to unmark a task as done.
|
||||||
|
|
||||||
Syntax highlighting for couples key:value
|
Syntax highlighting for couples key:value
|
||||||
|
|
||||||
|
If the current buffer is a done.txt file, the basic sort sorts on completion
|
||||||
|
date.
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ COMPLETION *todo-complete*
|
|||||||
|
|
||||||
The TodoComplete function is designed to complete projects (starting by '+')
|
The TodoComplete function is designed to complete projects (starting by '+')
|
||||||
and context (starting by '@'). If you use it on a regular word, it will do a
|
and context (starting by '@'). If you use it on a regular word, it will do a
|
||||||
normal buffer completion.
|
normal keyword completion (on all buffers).
|
||||||
If you try to complete a project, it will propose all projects in all open
|
If you try to complete a project, it will propose all projects in all open
|
||||||
buffers and for each of them, it will show their context and the name of the
|
buffers and for each of them, it will show their context and the name of the
|
||||||
buffers in which they appears in the preview window.
|
buffers in which they appears in the preview window.
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
" Author: David Beniamine <David@Beniamine.net>, Leandro Freitas <freitass@gmail.com>
|
" Author: David Beniamine <David@Beniamine.net>, Leandro Freitas <freitass@gmail.com>
|
||||||
" License: Vim license
|
" License: Vim license
|
||||||
" Website: http://github.com/dbeniamine/todo.txt-vim
|
" Website: http://github.com/dbeniamine/todo.txt-vim
|
||||||
" Version: 0.7
|
" Version: 0.7.1
|
||||||
|
|
||||||
" Save context {{{1
|
" Save context {{{1
|
||||||
let s:save_cpo = &cpo
|
let s:save_cpo = &cpo
|
||||||
@@ -79,9 +79,15 @@ endfunction
|
|||||||
|
|
||||||
function! TodoTxtSort()
|
function! TodoTxtSort()
|
||||||
" vim :sort is usually stable
|
" vim :sort is usually stable
|
||||||
|
" we sort first on contexts, then on projects and then on priority
|
||||||
|
if expand('%')=~'done.txt'
|
||||||
|
silent! %s/\(x\s*\d\{4}\)-\(\d\{2}\)-\(\d\{2}\)/\1\2\3/g
|
||||||
|
sort n /^x\s*/
|
||||||
|
silent! %s/\(x\s*\d\{4}\)\(\d\{2}\)/\1-\2-/g
|
||||||
else
|
else
|
||||||
sort /@[a-zA-Z]*/ r
|
sort /@[a-zA-Z]*/ r
|
||||||
sort /+[a-zA-Z]*/ r
|
sort /+[a-zA-Z]*/ r
|
||||||
|
sort /\v\([A-Z]\)/ r
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
@@ -269,6 +275,24 @@ function! TodoFoldText()
|
|||||||
\ . (v:foldend - v:foldstart + 1)
|
\ . (v:foldend - v:foldstart + 1)
|
||||||
\ . ' Completed tasks '
|
\ . ' Completed tasks '
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
" Simple keyword completion on all buffers
|
||||||
|
function! TodoKeywordComplete(base)
|
||||||
|
" Search for matchs
|
||||||
|
let res = []
|
||||||
|
for bufnr in range(1,bufnr('$'))
|
||||||
|
let lines=getbufline(bufnr,1,"$")
|
||||||
|
for line in lines
|
||||||
|
if line =~ a:base
|
||||||
|
" init temporary item
|
||||||
|
let item={}
|
||||||
|
let item.word=substitute(line,'.*\('.a:base.'\S*\).*','\1',"")
|
||||||
|
call add(res,item)
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
endfor
|
||||||
|
return res
|
||||||
|
endfunction
|
||||||
|
|
||||||
" Intelligent completion for projects and Contexts
|
" Intelligent completion for projects and Contexts
|
||||||
fun! TodoComplete(findstart, base)
|
fun! TodoComplete(findstart, base)
|
||||||
@@ -279,6 +303,9 @@ fun! TodoComplete(findstart, base)
|
|||||||
let start -= 1
|
let start -= 1
|
||||||
endwhile
|
endwhile
|
||||||
return start
|
return start
|
||||||
|
else
|
||||||
|
if a:base !~ '^+' && a:base !~ '^@'
|
||||||
|
return TodoKeywordComplete(a:base)
|
||||||
endif
|
endif
|
||||||
" Opposite sign
|
" Opposite sign
|
||||||
let opp=a:base=~'+'?'@':'+'
|
let opp=a:base=~'+'?'@':'+'
|
||||||
|
|||||||
Reference in New Issue
Block a user