Removed vim plugin; should be in separate repo for addons

This commit is contained in:
Gina Trapani
2010-01-05 20:54:14 -08:00
parent 0e326067e3
commit bf537934d7
2 changed files with 0 additions and 206 deletions

View File

@@ -1,177 +0,0 @@
if !exists('g:todo_project_context')
let g:todo_project_context = ''
endif
command! -nargs=* Todo call Todo(<q-args>)
command! -nargs=+ TodoAdd call TodoAdd(<q-args>)
command! -nargs=* -complete=customlist,CompleteTodoList TodoList call TodoList(<q-args>)
command! -nargs=0 TodoListProjects call TodoListProj()
command! -nargs=0 TodoListContexts call TodoListCon()
nnoremap <Leader>tl :TodoList<ENTER>
nnoremap <Leader>ta :TodoAdd
function! TodoList(args)
let list_args = a:args
if match(list_args, g:todo_project_context) == -1
let list_args .= " " . g:todo_project_context
endif
call Todo('list ' . list_args)
nnoremap <buffer> q :q<ENTER>
execute 'nnoremap <buffer> o :call TodoAddInput()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
execute 'nnoremap <buffer> r :TodoList ' . list_args . '<ENTER>'
execute 'nnoremap <buffer> d :silent call TodoDoneCurrent()<ENTER>:silent TodoList ' . list_args . '<ENTER>'
execute 'nnoremap <buffer> D :silent call TodoDeleteCurrent()<ENTER>:silent TodoList ' . list_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
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
if index == len(priorities)
call TodoAction('pri ' . id . ' ' . priorities[0])
endif
endfunction
function! TodoAddInput()
call inputsave()
let task = input("Task: ")
if len(g:todo_project_context) > 0
let task .= " " . g:todo_project_context
endif
call inputrestore()
silent call TodoAction('add "' . task . '"')
endfunction
function! TodoCurrentLineId()
let row = split(getline('.'))
return row[0]
endfunction
function! TodoDoneCurrent()
let id = TodoCurrentLineId()
call TodoAction('do ' . id)
endfunction
function! TodoDeleteCurrent()
let id = TodoCurrentLineId()
call TodoAction('rm ' . id)
endfunction
function! TodoPriorityCurrent()
let id = TodoCurrentLineId()
call inputsave()
let priority = input("Priority (A-Z): ", "A")
call inputrestore()
silent call TodoAction('pri ' . id . ' ' . priority)
endfunction
function! TodoAppendContextCurrent()
let id = TodoCurrentLineId()
call inputsave()
let context = input("Context: ", "@", "customlist,CompleteTodoContexts")
call inputrestore()
silent call TodoAction('append ' . id . ' ' . context)
endfunction
function! TodoAppendProjectCurrent()
let id = TodoCurrentLineId()
call inputsave()
let project = input("Project: ", "+", "customlist,CompleteTodoProjects")
call inputrestore()
silent call TodoAction('append ' . id . ' ' . project)
endfunction
function! TodoListProj()
call TodoAction('listproj')
endfunction
function! TodoListCon()
call TodoAction('listcon')
endfunction
function! TodoAdd(args)
call TodoAction('add "' . a:args . ' ' . g:todo_project_context . '"')
endfunction
function! CompleteTodo(type, arg_lead, cmd_line, cursor_pos)
let opts = split(<SID>SystemTodo('list' . a:type))
return filter(opts, 'match(v:val, ''\V'' . a:arg_lead) == 0')
endfunction
function! CompleteTodoContexts(arg_lead, cmd_line, cursor_pos)
return CompleteTodo('con', a:arg_lead, a:cmd_line, a:cursor_pos)
endfunction
function! CompleteTodoProjects(arg_lead, cmd_line, cursor_pos)
return CompleteTodo('proj', a:arg_lead, a:cmd_line, a:cursor_pos)
endfunction
function! CompleteTodoList(arg_lead, cmd_line, cursor_pos)
let opts = [ ]
if !strlen(a:arg_lead) || a:arg_lead =~ '^+'
let opts += CompleteTodoProjects(a:arg_lead, a:cmd_line, a:cursor_pos)
endif
if !strlen(a:arg_lead) || a:arg_lead =~ '^@'
let opts += CompleteTodoContexts(a:arg_lead, a:cmd_line, a:cursor_pos)
endif
return opts
endfunction
function! TodoAction(args)
echo <SID>SystemTodo(a:args)
endfunction
function! Todo(args)
let todo_output = <SID>SystemTodo(a:args)
if !strlen(todo_output)
echo "No output from todo command"
return
endif
call <SID>OpenTodoBuffer(todo_output)
setlocal filetype=todo-list
endfunction
function! s:SystemTodo(args)
let default_args = <SID>DefaultTodoArgs()
return system('todo.sh ' . default_args . ' ' . a:args . ' < /dev/null')
endfunction
function! s:DefaultTodoArgs()
let args = '-p'
if exists('g:todotxt_cfg_file') && strlen(g:todotxt_cfg_file)
args += ' -d ' . g:todotxt_cfg_file
endif
return args
endfunction
function! s:OpenTodoBuffer(content)
if exists('b:is_todo_output_buffer') && b:is_todo_output_buffer
enew!
else
10new
endif
setlocal buftype=nofile readonly modifiable
silent put=a:content
keepjumps 0d
setlocal nomodifiable
setlocal winfixheight
let b:is_todo_output_buffer = 1
endfunction

View File

@@ -1,29 +0,0 @@
if exists("b:current_syntax")
finish
endif
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 todoItemContext /@[^ ]\+/ contained
syntax match todoItemText /^\d\+ .*$/ contains=todoItemID,todoItemProject,todoItemContext,todoItemPriority,todoItemPriorityA,todoItemPriorityB,todoItemPriorityC
syntax match todoItemSeparator +--+
syntax match todoItemSummary /^TODO:.*/
hi link todoItemID Statement
hi link todoItemProject Identifier
hi link todoItemContext Type
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 todoItemSummary Ignore
let b:current_syntax = "todo-list"