added some additional mappings, plus a project context
This commit is contained in:
@@ -1,20 +1,56 @@
|
|||||||
|
if !exists('g:todo_project_context')
|
||||||
|
let g:todo_project_context = ''
|
||||||
|
endif
|
||||||
|
|
||||||
command! -nargs=* Todo call Todo(<q-args>)
|
command! -nargs=* Todo call Todo(<q-args>)
|
||||||
command! -nargs=+ TodoAdd call TodoAdd(<q-args>)
|
command! -nargs=+ TodoAdd call TodoAdd(<q-args>)
|
||||||
command! -nargs=* -complete=customlist,CompleteTodoList TodoList call TodoList(<q-args>)
|
command! -nargs=* -complete=customlist,CompleteTodoList TodoList call TodoList(<q-args>)
|
||||||
command! -nargs=0 TodoListProjects call TodoListProj()
|
command! -nargs=0 TodoListProjects call TodoListProj()
|
||||||
command! -nargs=0 TodoListContexts call TodoListCon()
|
command! -nargs=0 TodoListContexts call TodoListCon()
|
||||||
nnoremap <Leader>tl :TodoList<ENTER>
|
nnoremap <Leader>tl :TodoList<ENTER>
|
||||||
|
nnoremap <Leader>ta :TodoAdd
|
||||||
|
|
||||||
function! TodoList(args)
|
function! TodoList(args)
|
||||||
call Todo('list ' . a:args)
|
let list_args = a:args . ' ' . g:todo_project_context
|
||||||
|
call Todo('list ' . list_args)
|
||||||
nnoremap <buffer> q :q<ENTER>
|
nnoremap <buffer> q :q<ENTER>
|
||||||
execute 'nnoremap <buffer> r :silent TodoList ' . a:args . '<ENTER>'
|
execute 'nnoremap <buffer> o :call TodoAddInput()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
execute 'nnoremap <buffer> d :silent call TodoDoneCurrent()<ENTER>:silent TodoList ' . a:args . '<ENTER>'
|
execute 'nnoremap <buffer> r :silent TodoList ' . list_args . '<ENTER>'
|
||||||
execute 'nnoremap <buffer> p :call TodoPriorityCurrent()<ENTER>:silent TodoList ' . a:args . '<ENTER>'
|
execute 'nnoremap <buffer> d :silent call TodoDoneCurrent()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
execute 'nnoremap <buffer> P :call TodoAppendProjectCurrent()<ENTER>:silent TodoList ' . a:args . '<ENTER>'
|
execute 'nnoremap <buffer> D :silent call TodoDeleteCurrent()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
execute 'nnoremap <buffer> C :call TodoAppendContextCurrent()<ENTER>:silent TodoList ' . a:args . '<ENTER>'
|
execute 'nnoremap <buffer> p :call TodoPriorityCurrent()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
|
execute 'nnoremap <buffer> P :call TodoAppendProjectCurrent()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
|
execute 'nnoremap <buffer> C :call TodoAppendContextCurrent()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
|
execute 'nnoremap <buffer> + :silent call TodoPriorityAdjust(1)<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
|
execute 'nnoremap <buffer> - :silent call TodoPriorityAdjust(-1)<ENTER>:silent TodoList ' . list_args . '<ENTER>'
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! TodoPriorityAdjust(amount)
|
||||||
|
let id = TodoCurrentLineId()
|
||||||
|
let item = getline('.')
|
||||||
|
let priorities = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
|
||||||
|
let index = 0
|
||||||
|
while index < len(priorities)
|
||||||
|
let p = priorities[index]
|
||||||
|
if match(item, "(" . p . ")") > -1
|
||||||
|
if index + a:amount >= len(priorities)
|
||||||
|
call TodoAction('pri ' . id . ' ' . priorities[0])
|
||||||
|
else
|
||||||
|
call TodoAction('pri ' . id . ' ' . priorities[index + a:amount])
|
||||||
|
endif
|
||||||
|
break
|
||||||
|
endif
|
||||||
|
let index += 1
|
||||||
|
endwhile
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
function! TodoAddInput()
|
||||||
|
call inputsave()
|
||||||
|
let task = input("Task: ")
|
||||||
|
call inputrestore()
|
||||||
|
call TodoAction('add "' . task . '"')
|
||||||
|
endfunction
|
||||||
function! TodoCurrentLineId()
|
function! TodoCurrentLineId()
|
||||||
let row = split(getline('.'))
|
let row = split(getline('.'))
|
||||||
return row[0]
|
return row[0]
|
||||||
@@ -25,10 +61,15 @@ function! TodoDoneCurrent()
|
|||||||
call TodoAction('do ' . id)
|
call TodoAction('do ' . id)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! TodoDeleteCurrent()
|
||||||
|
let id = TodoCurrentLineId()
|
||||||
|
call TodoAction('rm ' . id)
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! TodoPriorityCurrent()
|
function! TodoPriorityCurrent()
|
||||||
let id = TodoCurrentLineId()
|
let id = TodoCurrentLineId()
|
||||||
call inputsave()
|
call inputsave()
|
||||||
let priority = input("Priority?", "A")
|
let priority = input("Priority (A-Z): ", "A")
|
||||||
call inputrestore()
|
call inputrestore()
|
||||||
call TodoAction('pri ' . id . ' ' . priority)
|
call TodoAction('pri ' . id . ' ' . priority)
|
||||||
endfunction
|
endfunction
|
||||||
@@ -58,7 +99,7 @@ function! TodoListCon()
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! TodoAdd(args)
|
function! TodoAdd(args)
|
||||||
call TodoAction('add "' . a:args . '"')
|
call TodoAction('add "' . a:args . ' ' . g:todo_project_context . '"')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! CompleteTodo(type, arg_lead, cmd_line, cursor_pos)
|
function! CompleteTodo(type, arg_lead, cmd_line, cursor_pos)
|
||||||
@@ -105,9 +146,9 @@ function! s:SystemTodo(args)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:DefaultTodoArgs()
|
function! s:DefaultTodoArgs()
|
||||||
let args = ""
|
let args = '-p'
|
||||||
if exists('g:todotxt_cfg_file') && strlen(g:todotxt_cfg_file)
|
if exists('g:todotxt_cfg_file') && strlen(g:todotxt_cfg_file)
|
||||||
args += '-d ' . g:todotxt_cfg_file
|
args += ' -d ' . g:todotxt_cfg_file
|
||||||
endif
|
endif
|
||||||
return args
|
return args
|
||||||
endfunction
|
endfunction
|
||||||
|
|||||||
@@ -3,16 +3,26 @@ if exists("b:current_syntax")
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
syntax match todoItemID /^\d\+/ contained
|
syntax match todoItemID /^\d\+/ contained
|
||||||
|
syntax match todoItemPriorityA /(A)/ contained
|
||||||
|
syntax match todoItemPriorityB /(B)/ contained
|
||||||
|
syntax match todoItemPriorityC /(C)/ contained
|
||||||
|
syntax match todoItemPriority /([D-Z])/ contained
|
||||||
syntax match todoItemProject /+[^ ]\+/ contained
|
syntax match todoItemProject /+[^ ]\+/ contained
|
||||||
syntax match todoItemContext /@[^ ]\+/ contained
|
syntax match todoItemContext /@[^ ]\+/ contained
|
||||||
syntax match todoItemText /^\d\+ .*$/ contains=todoItemID,todoItemProject,todoItemContext
|
syntax match todoItemText /^\d\+ .*$/ contains=todoItemID,todoItemProject,todoItemContext,todoItemPriority,todoItemPriorityA,todoItemPriorityB,todoItemPriorityC
|
||||||
syntax match todoItemSeparator +--+
|
syntax match todoItemSeparator +--+
|
||||||
syntax match todoItemSummary /^TODO:.*/
|
syntax match todoItemSummary /^TODO:.*/
|
||||||
|
|
||||||
hi link todoItemID Statement
|
hi link todoItemID Statement
|
||||||
hi link todoItemProject SpecialKey
|
hi link todoItemProject Identifier
|
||||||
hi link todoItemContext Title
|
hi link todoItemContext Type
|
||||||
hi link todoItemText Comment
|
hi link todoItemText Comment
|
||||||
|
|
||||||
|
hi link todoItemPriority Constant
|
||||||
|
hi link todoItemPriorityA Todo
|
||||||
|
hi link todoItemPriorityB Visual
|
||||||
|
hi link todoItemPriorityC DiffAdd
|
||||||
|
|
||||||
hi link todoItemSeparator Ignore
|
hi link todoItemSeparator Ignore
|
||||||
hi link todoItemSummary Ignore
|
hi link todoItemSummary Ignore
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user