" plugin to handle the TaskPaper to-do list format " http://hogbaysoftware.com/projects/taskpaper " Language: Taskpaper (http://hogbaysoftware.com/projects/taskpaper) " Maintainer: David O'Callaghan " URL: http://www.cs.tcd.ie/David.OCallaghan/taskpaper.vim/ " Version: 1 " Last Change: 2007 Sep 25 if exists("loaded_task_paper") finish endif let loaded_task_paper = 1 "add '@' to keyword character set so that we can complete contexts as keywords setlocal iskeyword+=@-@ "show tasks from context under the cursor function! s:ShowContext() let s:wordUnderCursor = expand("") if(s:wordUnderCursor =~ "@\k*") let @/ = "\\<".s:wordUnderCursor."\\>" "adapted from http://vim.sourceforge.net/tips/tip.php?tip_id=282 set foldexpr=(getline(v:lnum)=~@/)?0:(getline(v:lnum)=~@/)\|\|(getline(v:lnum)=~@/)?0:1 set foldmethod=expr foldlevel=0 foldcolumn=1 foldminlines=0 set foldenable else echo "'" s:wordUnderCursor "' is not a context." endif endfunction function! s:ShowAll() set nofoldenable endfunction function! s:FoldAllProjects() set foldmethod=syntax set foldenable %foldclose! endfunction " toggle @done context tag on a task function! s:ToggleDone() if (getline(".") =~ '^\s*- ') let isdone = strridx(getline("."),"@done") if (isdone != -1) substitute/ @done// echo "undone!" else substitute/$/ @done/ echo "done!" endif else echo "not a task." endif endfunction " Set up mappings noremap