diff --git a/build.xml b/build.xml
deleted file mode 100755
index 3b1c46b..0000000
--- a/build.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/issues/libpit/0000bs5.rst b/issues/libpit/0000bs5.rst
deleted file mode 100644
index 11e6e5d..0000000
--- a/issues/libpit/0000bs5.rst
+++ /dev/null
@@ -1,13 +0,0 @@
-FileIssue is not formatting output in the same way it parses input.
-===================================================================
-
-`FileIssue.formatIssue(Issue)` introduces at least one extra line to the end
-of the issue body compared to what is parsed in using the PegParser.
-
-
-----
-
-========= ===================
-Created : 2011-12-18T22:53:45
-Resolved: 2011-12-19T16:09:50
-========= ===================
diff --git a/jdb-build-1.6.xml b/jdb-build-1.6.xml
deleted file mode 100644
index 0d2fa8e..0000000
--- a/jdb-build-1.6.xml
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libpit/build.xml b/libpit/build.xml
deleted file mode 100755
index 707f4d0..0000000
--- a/libpit/build.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/libpit/doc/grammar.txt b/libpit/doc/grammar.txt
deleted file mode 100644
index ed6f2f6..0000000
--- a/libpit/doc/grammar.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-IssueFile - Title Body PropertyBlock?
-Title - ONE_LINE TITLE_SEPARATOR
-Body - ANY_LINE+
-Separator - DASH{4} NEW_LINE
-PropertyBlock - HorizontalRule TableSeparator PropertyDefinition+ TableSeparator
-TableSeparator -
-PropertyDefinition - PropertyKey COLON PropertyValue
diff --git a/libpit/lib/compile/jar/joda-time-2.0.jar b/libpit/lib/compile/jar/joda-time-2.0.jar
deleted file mode 100644
index 169a7a4..0000000
Binary files a/libpit/lib/compile/jar/joda-time-2.0.jar and /dev/null differ
diff --git a/libpit/lib/compile/jar/parboiled-core-1.0.2.jar b/libpit/lib/compile/jar/parboiled-core-1.0.2.jar
deleted file mode 100644
index b5bbb59..0000000
Binary files a/libpit/lib/compile/jar/parboiled-core-1.0.2.jar and /dev/null differ
diff --git a/libpit/lib/compile/jar/parboiled-java-1.0.2.jar b/libpit/lib/compile/jar/parboiled-java-1.0.2.jar
deleted file mode 100644
index 8584b87..0000000
Binary files a/libpit/lib/compile/jar/parboiled-java-1.0.2.jar and /dev/null differ
diff --git a/libpit/lib/compile/jar/slf4j-api-1.6.1.jar b/libpit/lib/compile/jar/slf4j-api-1.6.1.jar
deleted file mode 100644
index 42e0ad0..0000000
Binary files a/libpit/lib/compile/jar/slf4j-api-1.6.1.jar and /dev/null differ
diff --git a/libpit/lib/runtime/jar/joda-time-2.0.jar b/libpit/lib/runtime/jar/joda-time-2.0.jar
deleted file mode 100644
index 169a7a4..0000000
Binary files a/libpit/lib/runtime/jar/joda-time-2.0.jar and /dev/null differ
diff --git a/libpit/lib/runtime/jar/logback-classic-0.9.26.jar b/libpit/lib/runtime/jar/logback-classic-0.9.26.jar
deleted file mode 100644
index b900b64..0000000
Binary files a/libpit/lib/runtime/jar/logback-classic-0.9.26.jar and /dev/null differ
diff --git a/libpit/lib/runtime/jar/logback-core-0.9.26.jar b/libpit/lib/runtime/jar/logback-core-0.9.26.jar
deleted file mode 100644
index d50f3cd..0000000
Binary files a/libpit/lib/runtime/jar/logback-core-0.9.26.jar and /dev/null differ
diff --git a/libpit/lib/runtime/jar/parboiled-core-1.0.2.jar b/libpit/lib/runtime/jar/parboiled-core-1.0.2.jar
deleted file mode 100644
index b5bbb59..0000000
Binary files a/libpit/lib/runtime/jar/parboiled-core-1.0.2.jar and /dev/null differ
diff --git a/libpit/lib/runtime/jar/parboiled-java-1.0.2.jar b/libpit/lib/runtime/jar/parboiled-java-1.0.2.jar
deleted file mode 100644
index 8584b87..0000000
Binary files a/libpit/lib/runtime/jar/parboiled-java-1.0.2.jar and /dev/null differ
diff --git a/libpit/lib/runtime/jar/slf4j-api-1.6.1.jar b/libpit/lib/runtime/jar/slf4j-api-1.6.1.jar
deleted file mode 100644
index 42e0ad0..0000000
Binary files a/libpit/lib/runtime/jar/slf4j-api-1.6.1.jar and /dev/null differ
diff --git a/libpit/project.properties b/libpit/project.properties
deleted file mode 100755
index 1b89ad7..0000000
--- a/libpit/project.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-#Thu, 26 Mar 2015 19:51:28 -0500
-#Sat Apr 24 17:08:00 CDT 2010
-build.dir=build
-src.dir=src
-lib.shared.dir=../shared-libs
-test.dir=test
-build.number=8
-version=3.3.3
-name=libpit
-lib.dir=lib
-lib.local=true
-release.dir=release
-release.jar=pit-${application.version}.jar
diff --git a/libpit/resources/main/test.groovy b/libpit/resources/main/test.groovy
deleted file mode 100644
index e1ff4fc..0000000
--- a/libpit/resources/main/test.groovy
+++ /dev/null
@@ -1,13 +0,0 @@
-import com.jdbernard.pit.*
-import com.jdbernard.pit.file.*
-
-import org.parboiled.Parboiled
-import org.parboiled.parserunners.ReportingParseRunner
-import org.parboiled.parserunners.RecoveringParseRunner
-
-parser = Parboiled.createParser(IssuePegParser.class)
-parseRunner = new ReportingParseRunner(parser.IssueFile())
-issueFile = new File('/Volumes/NO NAME/Dropbox/tasks/0015tn3.rst')
-issueText = issueFile.text
-result = parseRunner.run(issueText)
-issueMap = result.valueStack.pop()
diff --git a/libpit/session.vim b/libpit/session.vim
deleted file mode 100755
index c9499bd..0000000
--- a/libpit/session.vim
+++ /dev/null
@@ -1,1835 +0,0 @@
-let SessionLoad = 1
-if &cp | set nocp | endif
-let s:cpo_save=&cpo
-set cpo&vim
-inoremap
-nmap v :call Screen_Vars()
-nmap vip
-vmap "ry :call Send_to_Screen(@r)
-nmap gx NetrwBrowseX
-nnoremap NetrwBrowseX :call netrw#NetrwBrowseX(expand(""),0)
-let &cpo=s:cpo_save
-unlet s:cpo_save
-set autoindent
-set backspace=indent,eol,start
-set expandtab
-set fileencodings=ucs-bom,utf-8,default,latin1
-set helplang=en
-set history=50
-set hlsearch
-set incsearch
-set nomodeline
-set printoptions=paper:letter
-set ruler
-set runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim72,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
-set shiftwidth=4
-set suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
-set tabstop=4
-let s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0
-let v:this_session=expand(":p")
-silent only
-cd ~/projects/personal-issue-tracker/libpit
-if expand('%') == '' && !&modified && line('$') <= 1 && getline(1) == ''
- let s:wipebuf = bufnr('%')
-endif
-set shortmess=aoO
-badd +1 build.xml
-badd +1 project.properties
-badd +1 src/com/jdbernard/pit/Category.groovy
-badd +1 test/com/jdbernard/pit/CategoryTest.groovy
-badd +1 src/com/jdbernard/pit/Filter.groovy
-badd +1 test/com/jdbernard/pit/FilterTest.groovy
-badd +1 src/com/jdbernard/pit/Issue.groovy
-badd +1 test/com/jdbernard/pit/IssueTest.groovy
-badd +6 src/com/jdbernard/pit/Project.groovy
-badd +1 test/com/jdbernard/pit/ProjectTest.groovy
-badd +1 src/com/jdbernard/pit/FileIssue.groovy
-badd +1 test/com/jdbernard/pit/FileIssueTest.groovy
-badd +1 src/com/jdbernard/pit/FileProject.groovy
-badd +1 test/com/jdbernard/pit/FileProjectTest.groovy
-badd +1 src/com/jdbernard/pit/Status.groovy
-badd +1 test/com/jdbernard/pit/StatusTest.groovy
-badd +5 src/com/jdbernard/pit/FlatProjectView.groovy
-args build.xml
-edit build.xml
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'ant'
-setlocal filetype=ant
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'ant'
-setlocal syntax=ant
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-argglobal
-edit project.properties
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'jproperties'
-setlocal filetype=jproperties
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'jproperties'
-setlocal syntax=jproperties
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/Category.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-argglobal
-edit test/com/jdbernard/pit/CategoryTest.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/Status.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-argglobal
-edit test/com/jdbernard/pit/StatusTest.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/Filter.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-argglobal
-edit test/com/jdbernard/pit/FilterTest.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/Issue.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-argglobal
-edit src/com/jdbernard/pit/Project.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/FileIssue.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 9 - ((8 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-9
-normal! 0
-wincmd w
-argglobal
-edit test/com/jdbernard/pit/FileIssueTest.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/FileProject.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-argglobal
-edit test/com/jdbernard/pit/FileProjectTest.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 1 - ((0 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-1
-normal! 0
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabedit src/com/jdbernard/pit/FlatProjectView.groovy
-set splitbelow splitright
-wincmd _ | wincmd |
-vsplit
-1wincmd h
-wincmd w
-set nosplitbelow
-set nosplitright
-wincmd t
-set winheight=1 winwidth=1
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-argglobal
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 26 - ((25 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-26
-normal! 061l
-wincmd w
-argglobal
-edit src/com/jdbernard/pit/Project.groovy
-setlocal keymap=
-setlocal noarabic
-setlocal autoindent
-setlocal balloonexpr=
-setlocal nobinary
-setlocal bufhidden=
-setlocal buflisted
-setlocal buftype=
-setlocal nocindent
-setlocal cinkeys=0{,0},0),:,0#,!^F,o,O,e
-setlocal cinoptions=
-setlocal cinwords=if,else,while,do,for,switch
-setlocal comments=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
-setlocal commentstring=/*%s*/
-setlocal complete=.,w,b,u,t,i
-setlocal completefunc=
-setlocal nocopyindent
-setlocal nocursorcolumn
-setlocal nocursorline
-setlocal define=
-setlocal dictionary=
-setlocal nodiff
-setlocal equalprg=
-setlocal errorformat=
-setlocal expandtab
-if &filetype != 'groovy'
-setlocal filetype=groovy
-endif
-setlocal foldcolumn=0
-setlocal foldenable
-setlocal foldexpr=0
-setlocal foldignore=#
-setlocal foldlevel=0
-setlocal foldmarker={{{,}}}
-setlocal foldmethod=manual
-setlocal foldminlines=1
-setlocal foldnestmax=20
-setlocal foldtext=foldtext()
-setlocal formatexpr=
-setlocal formatoptions=tcq
-setlocal formatlistpat=^\\s*\\d\\+[\\]:.)}\\t\ ]\\s*
-setlocal grepprg=
-setlocal iminsert=2
-setlocal imsearch=2
-setlocal include=
-setlocal includeexpr=
-setlocal indentexpr=
-setlocal indentkeys=0{,0},:,0#,!^F,o,O,e
-setlocal noinfercase
-setlocal iskeyword=@,48-57,_,192-255
-setlocal keywordprg=
-setlocal nolinebreak
-setlocal nolisp
-setlocal nolist
-setlocal makeprg=
-setlocal matchpairs=(:),{:},[:]
-setlocal nomodeline
-setlocal modifiable
-setlocal nrformats=octal,hex
-set number
-setlocal number
-setlocal numberwidth=4
-setlocal omnifunc=
-setlocal path=
-setlocal nopreserveindent
-setlocal nopreviewwindow
-setlocal quoteescape=\\
-setlocal noreadonly
-setlocal norightleft
-setlocal rightleftcmd=search
-setlocal noscrollbind
-setlocal shiftwidth=4
-setlocal noshortname
-setlocal nosmartindent
-setlocal softtabstop=0
-setlocal nospell
-setlocal spellcapcheck=[.?!]\\_[\\])'\"\ \ ]\\+
-setlocal spellfile=
-setlocal spelllang=en
-setlocal statusline=
-setlocal suffixesadd=
-setlocal swapfile
-setlocal synmaxcol=3000
-if &syntax != 'groovy'
-setlocal syntax=groovy
-endif
-setlocal tabstop=4
-setlocal tags=
-setlocal textwidth=0
-setlocal thesaurus=
-setlocal nowinfixheight
-setlocal nowinfixwidth
-setlocal wrap
-setlocal wrapmargin=0
-silent! normal! zE
-let s:l = 6 - ((5 * winheight(0) + 39) / 79)
-if s:l < 1 | let s:l = 1 | endif
-exe s:l
-normal! zt
-6
-normal! 04l
-wincmd w
-exe 'vert 1resize ' . ((&columns * 91 + 91) / 182)
-exe 'vert 2resize ' . ((&columns * 90 + 91) / 182)
-tabnext 8
-if exists('s:wipebuf')
- silent exe 'bwipe ' . s:wipebuf
-endif
-unlet! s:wipebuf
-set winheight=1 winwidth=20 shortmess=filnxtToO
-let s:sx = expand(":p:r")."x.vim"
-if file_readable(s:sx)
- exe "source " . fnameescape(s:sx)
-endif
-let &so = s:so_save | let &siso = s:siso_save
-doautoall SessionLoadPost
-unlet SessionLoad
-" vim: set ft=vim :
diff --git a/libpit/src/main/com/jdbernard/pit/Category.groovy b/libpit/src/main/com/jdbernard/pit/Category.groovy
deleted file mode 100755
index 32575c8..0000000
--- a/libpit/src/main/com/jdbernard/pit/Category.groovy
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.jdbernard.pit
-
-public enum Category {
- BUG,
- FEATURE,
- TASK
-
- public static Category toCategory(String s) {
- for(c in Category.values())
- if (c.name().startsWith(s.toUpperCase())) return c
- throw new IllegalArgumentException("No category matches ${s}.")
- }
-
- public String getSymbol() { toString()[0].toLowerCase() }
-
- public String toString() { return "${name()[0]}${name()[1..-1].toLowerCase()}" }
-}
diff --git a/libpit/src/main/com/jdbernard/pit/ExtendedPropertyHelp.groovy b/libpit/src/main/com/jdbernard/pit/ExtendedPropertyHelp.groovy
deleted file mode 100644
index 5aeb92a..0000000
--- a/libpit/src/main/com/jdbernard/pit/ExtendedPropertyHelp.groovy
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.jdbernard.pit
-
-import org.joda.time.DateMidnight
-import org.joda.time.DateTime
-
-import java.text.SimpleDateFormat
-
-public enum ExtendedPropertyHelp {
-
- // Property types should be ordered here in order of decreasing specificity.
- // That is, subclasses should come before the more general class so that
- // objects are converted using the most specific class that
- // ExtendedPropertyHelp knows how to work with.
- DATE_MIDNIGHT(/^\d{4}-\d{2}-\d{2}$/, DateMidnight,
- { v -> DateMidnight.parse(v) },
- { d -> d.toString("YYYY-MM-dd") }),
- DATETIME(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/, DateTime,
- { v -> DateTime.parse(v) },
- { d -> d.toString("YYYY-MM-dd'T'HH:mm:ss") }),
- // We never want to parse a value into a java.util.Date or
- // java.util.Calendar object (we are using Joda Time instead of the
- // standard Java Date and Calendar objects) but we do want to be able to
- // handle if someone gives us a Date or Calendar object.
- DATE(NEVER_MATCH, Date,
- { v -> v }, // never called
- { d -> dateFormat.format(d) }),
- CALENDAR(NEVER_MATCH, Calendar,
- { v -> v }, // never called
- { c ->
- def df = dateFormat.clone()
- df.calendar = c
- df.format(c.time) }),
-
- INTEGER(NEVER_MATCH, Integer,
- { v -> v as Integer }, // never called
- { i -> i as String }),
- LONG(/^\d+$/, Long,
- { v -> v as Long },
- { l -> l as String }),
- FLOAT(NEVER_MATCH, Float,
- { v -> v as Float}, // never called
- { f -> f as String}),
- DOUBLE(/^\d+\.\d+$/, Double,
- { v -> v as Double },
- { d -> d as String });
-
- String pattern;
- Class klass;
- def parseFun, formatFun;
-
- private static SimpleDateFormat dateFormat =
- new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
-
- // This pattern for can never match (is uses negative lookahead to
- // contradict itself).
- private static String NEVER_MATCH = /(?!x)x/;
-
-
- public ExtendedPropertyHelp(String pattern, Class klass, def parseFun,
- def formatFun) {
- this.pattern = pattern
- this.klass = klass
- this.parseFun = parseFun
- this.formatFun = formatFun }
-
- public boolean matches(String prop) { return prop ==~ pattern }
-
- public boolean matches(Class klass) { return this.klass == klass }
-
- public static Object parse(String value) {
- def propertyType = ExtendedPropertyHelp.values().find {
- it.matches(value) }
-
- return propertyType ? propertyType.parseFun(value) : value }
-
- public static String format(def object) {
- def propertyType = ExtendedPropertyHelp.values().find {
- it.klass.isInstance(object) }
-
- return propertyType ? propertyType.formatFun(object) : object.toString() }
-}
diff --git a/libpit/src/main/com/jdbernard/pit/Filter.groovy b/libpit/src/main/com/jdbernard/pit/Filter.groovy
deleted file mode 100755
index 3a2025e..0000000
--- a/libpit/src/main/com/jdbernard/pit/Filter.groovy
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.jdbernard.pit
-
-class Filter {
-
- List categories = null
- List status = null
- List projects = null
- List ids = null
- Map extendedProperties = null
- int priority = 9
- boolean acceptProjects = true
- def issueSorter = defaultIssueSorter
- def projectSorter = defaultProjectSorter
-
- public static Closure defaultIssueSorter = { it.id.toInteger() }
- public static Closure defaultProjectSorter = { it.name }
-
- public boolean accept(Issue i) {
- return (
- // Needs to meet the priority threshold.
- i.priority <= priority &&
- // Needs to be in one of the filtered categories (if given)
- (!categories || categories.contains(i.category)) &&
- // Needs to have one of the filtered statuses (if given)
- (!status || status.contains(i.status)) &&
- // Needs to be one of the filtered ids (if given)
- (!ids || ids.contains(i.id)) &&
- // Needs to have all of the extended properties (if given)
- (!extendedProperties ||
- extendedProperties.every { name, value -> i[name] == value }))
- }
-
- public boolean accept(Project p) {
- return (acceptProjects &&
- (!projects || projects.contains(p.name)))
- }
-
- public boolean accept(String name) {
- return (acceptProjects &&
- (!projects || projects.contains(name)))
- }
-}
diff --git a/libpit/src/main/com/jdbernard/pit/FlatProjectView.groovy b/libpit/src/main/com/jdbernard/pit/FlatProjectView.groovy
deleted file mode 100755
index f415c62..0000000
--- a/libpit/src/main/com/jdbernard/pit/FlatProjectView.groovy
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.jdbernard.pit
-
-public class FlatProjectView extends Project {
-
- public FlatProjectView(String name) { super(name) }
-
- public Issue createNewIssue(Map options) {
- throw new UnsupportedOperationException("The FlatProjectView is " +
- "read-only.")
- }
-
- public Project createNewProject(String name) {
- throw new UnsupportedOperationException("The FlatProjectView is " +
- "read-only.")
- }
-
- public boolean deleteIssue(Issue issue) { return false }
- public boolean deleteProject(Project project) { return false }
-
- public boolean delete() { return true }
-
- public void eachIssue(Filter filter = null, Closure closure) {
- def sorter = filter?.issueSorter ?: Filter.defaultIssueSorter
- def gatherIssues
- def gatheredIssues = []
-
- gatherIssues = { project, f ->
- project.eachIssue(f) { gatheredIssues << it }
- project.eachProject(f) { gatherIssues(it, f) }
- }
- for (p in projects.values())
- if (!filter || filter.accept(p))
- gatherIssues(p, filter)
-
- gatheredIssues.sort(sorter).each(closure)
- }
-}
diff --git a/libpit/src/main/com/jdbernard/pit/Issue.groovy b/libpit/src/main/com/jdbernard/pit/Issue.groovy
deleted file mode 100755
index d699ceb..0000000
--- a/libpit/src/main/com/jdbernard/pit/Issue.groovy
+++ /dev/null
@@ -1,74 +0,0 @@
-package com.jdbernard.pit
-
-import java.lang.IllegalArgumentException as IAE
-
-public class Issue {
-
- protected String id
- protected Category category
- protected Status status
- protected int priority
- protected String text
- protected String title
-
- Map extendedProperties = [:]
-
- Issue(Map props) {
- this.id = props.id
- this.category = props.category ?: Category.TASK
- this.status = props.status ?: Status.NEW
- this.priority = props.priority ?: 5
- this.title = props.title ?: ''
- this.text = props.text ?: ''
-
- // Put all the non-native properties into our extendedProperties map.
- def nativeProps =
- ["id", "category", "status", "priority", "title", "text"]
- extendedProperties.putAll(props.findAll {
- !nativeProps.contains(it.key) })}
-
- public String getId() { return id; }
-
- public Category getCategory() { return category }
-
- public void setCategory(Category c) throws IOException {
- if (c == null)
- throw new IAE("Category cannot be null.")
-
- this.category = c
- }
-
- public Status getStatus() { return status }
-
- public void setStatus(Status s) throws IOException {
- if (s == null)
- throw new IAE("Status cannot be null.")
-
- this.status = s
- }
-
- public int getPriority() { return priority }
-
- public void setPriority(int p) throws IOException {
- priority = Math.min(9, Math.max(0, p))
- }
-
- public String getTitle() { return title }
-
- public void setTitle(String t) throws IOException { title = t }
-
- public String getText() { return text }
-
- public void setText(String t) throws IOException { text = t }
-
- public def propertyMissing(String name) { extendedProperties[name] }
-
- public def propertyMissing(String name, def value) {
- extendedProperties[name] = value }
-
- @Override
- public String toString() {
- return "${id}(${priority}-${status}): ${category} ${title}"
- }
-
-}
diff --git a/libpit/src/main/com/jdbernard/pit/Project.groovy b/libpit/src/main/com/jdbernard/pit/Project.groovy
deleted file mode 100755
index 9135f23..0000000
--- a/libpit/src/main/com/jdbernard/pit/Project.groovy
+++ /dev/null
@@ -1,60 +0,0 @@
-package com.jdbernard.pit
-
-public abstract class Project {
-
- protected String name
- Map issues = [:]
- Map projects = [:]
-
- Project(String name) { this.name = name }
-
- public void eachIssue(Filter filter = null, Closure c) {
- def sorter = filter?.issueSorter ?: Filter.defaultIssueSorter
- for (i in sort(issues.values(), sorter))
- if (!filter || filter.accept(i))
- c.call(i) }
-
- public void eachProject(Filter filter = null, Closure c) {
- def sorter = filter?.projectSorter ?: Filter.defaultProjectSorter
- for (p in sort(projects.values(), sorter))
- if (!filter || filter.accept(p))
- c.call(p) }
-
- // walk every issue and project in this project recursively and execute the
- // given closure on each issue that meets the filter criteria
- public void walkProject(Filter filter, Closure c) {
- this.eachIssue(filter, c)
- this.eachProject(filter) { p -> p.walkProject(filter, c) } }
-
- // This get all issues, including subissues
- public List getAllIssues(Filter filter = null) {
- def sorter = filter?.issueSorter ?: Filter.defaultIssueSorter
-
- List allIssues = this.issues.values().findAll {
- filter ? filter.accept(it) : true }
-
- this.eachProject(filter) { p -> allIssues += p.getAllIssues(filter) }
-
- return sort(allIssues, sorter) }
-
- public void setName(String name) { this.name = name }
-
- public String getName() { return name }
-
- @Override
- String toString() { return name }
-
- public abstract Issue createNewIssue(Map options)
-
- public abstract Project createNewProject(String name)
-
- public abstract boolean deleteIssue(Issue issue)
-
- public abstract boolean deleteProject(Project project)
-
- protected List sort(def collection, def sorter) {
- if (sorter instanceof Closure) {
- return collection.sort(sorter) }
- else if (sorter instanceof List) {
- return sorter.reverse().inject(collection) { c, s -> c.sort(s) }}}
-}
diff --git a/libpit/src/main/com/jdbernard/pit/Repository.groovy b/libpit/src/main/com/jdbernard/pit/Repository.groovy
deleted file mode 100755
index 7851a57..0000000
--- a/libpit/src/main/com/jdbernard/pit/Repository.groovy
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.jdbernard.pit
-
-public abstract class Repository {
-
- public abstract void persist()
- public abstract Project[] getRootProjects()
- public abstract Project createNewProject(String name)
-}
diff --git a/libpit/src/main/com/jdbernard/pit/Status.groovy b/libpit/src/main/com/jdbernard/pit/Status.groovy
deleted file mode 100755
index 1779370..0000000
--- a/libpit/src/main/com/jdbernard/pit/Status.groovy
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.jdbernard.pit
-
-public enum Status {
- REASSIGNED('a'),
- REJECTED('j'),
- NEW('n'),
- RESOLVED('s'),
- VALIDATION_REQUIRED('v')
-
- String symbol
-
- protected Status(String s) { symbol = s }
-
- public static Status toStatus(String str) {
- // Try to match based on symbol
- def match = Status.values().find {it.symbol.equalsIgnoreCase(str)}
- if (match) { return match }
-
- // No match on the symbol, look for the status name (or abbreviations)
- match = Status.values().findAll {
- it.name().startsWith(str.toUpperCase()) }
-
- // No matching status, oops.
- if (match.size() == 0) {
- throw new IllegalArgumentException("No status matches '${str}'") }
-
- // More than one matching status, oops.
- else if (match.size() > 1) {
- throw new IllegalArgumentException("Request string is" +
- " ambigous, '${str}' could represent any of ${match}.")}
-
- // Only one matching status, yay!
- else { return match[0] }}
-
- public String toString() {
- def words = name().split("_")
- String result = ""
- words.each { result += "${it[0]}${it[1..-1].toLowerCase()} " }
- return result[0..-2]
- }
-}
diff --git a/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy b/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy
deleted file mode 100755
index 387a39b..0000000
--- a/libpit/src/main/com/jdbernard/pit/file/FileIssue.groovy
+++ /dev/null
@@ -1,189 +0,0 @@
-package com.jdbernard.pit.file
-
-import com.jdbernard.pit.*
-
-import java.lang.IllegalArgumentException as IAE
-
-import org.parboiled.Parboiled
-import org.parboiled.parserunners.ReportingParseRunner
-
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-public class FileIssue extends Issue {
-
- protected File source
- private Logger log = LoggerFactory.getLogger(getClass())
-
- public static final String fileExp = /(\d+)([bft])([ajnsv])(\d).*/
-
- protected static parseRunner
-
- static {
- def parser = Parboiled.createParser(IssuePegParser)
- parseRunner = new ReportingParseRunner(parser.IssueFile()) }
-
- public FileIssue(File file) {
-
- super(id: -1, title: 'REPLACE_ME')
-
- if (log.isDebugEnabled()) {
- log.debug("Loading a FileIssue from '{}'", file.canonicalPath) }
-
- def matcher = file.name =~ fileExp
- if (!matcher)
- throw new IllegalArgumentException("${file} " +
- "is not a valid Issue file.")
-
- // Read issue attributes from the filename.
- super.id = matcher[0][1]
- super.category = Category.toCategory(matcher[0][2])
- super.status = Status.toStatus(matcher[0][3])
- super.priority = matcher[0][4].toInteger()
-
- log.debug("id: {}\tcategory: {}\tstatus: {}\tpriority: {}",
- super.id, super.category, super.status, super.priority)
-
- this.source = file
-
- // Parse the file and extract the title, text, and extended properties
- // TODO: guard against parsing problems (null/empty value stack, etc.)
- def parsedIssue = parseRunner.run(file.text).valueStack.pop()
-
- super.text = parsedIssue.body
- super.title = parsedIssue.title
-
- // Add the extended properties
- parsedIssue.extProperties.each { key, value ->
- key = key.toLowerCase().replaceAll(/\s/, '_')
- super.extendedProperties[key] =
- ExtendedPropertyHelp.parse(value) }
- }
-
- public void setCategory(Category c) throws IOException {
-
- File newSource = new File(source.canonicalFile.parentFile,
- makeFilename(id, c, status, priority))
-
- if (source.renameTo(newSource)) {
- source = newSource
- super.setCategory(c) }
- else { throw new IOException("I was unable to set the category. "
- + "I need to rename the file for this issue, but something is "
- + "preventing me from doing so (maybe the path to the file is "
- + "no longer valid, or maybe the file is currently open in "
- + "some other program).") }}
-
- public void setStatus(Status s) throws IOException {
- File newSource = new File(source.canonicalFile.parentFile,
- makeFilename(id, category, s, priority))
-
- if (source.renameTo(newSource)) {
- source = newSource
- super.setStatus(s) }
- else { throw new IOException("I was unable to set the status. "
- + "I need to rename the file for this issue, but something is "
- + "preventing me from doing so (maybe the path to the file is "
- + "no longer valid, or maybe the file is currently open in "
- + "some other program).") }}
-
- public void setPriority(int p) throws IOException {
-
- File newSource = new File(source.canonicalFile.parentFile,
- makeFilename(id, category, status, p))
-
- if (source.renameTo(newSource)) {
- source = newSource
- super.setPriority(p) }
- else { throw new IOException("I was unable to set the priority. "
- + "I need to rename the file for this issue, but something is "
- + "preventing me from doing so (maybe the path to the file is "
- + "no longer valid, or maybe the file is currently open in "
- + "some other program).") }}
-
- public String getFilename() {
- return makeFilename(id, category, status, priority) }
-
- public void setTitle(String title) throws IOException {
- super.setTitle(title)
- writeFile() }
-
- public void setText(String text) throws IOException {
- super.setText(text)
- writeFile() }
-
- public def propertyMissing(String name, def value) {
- super.propertyMissing(name, value)
- writeFile() }
-
- boolean deleteFile() { return source.deleteDir() }
-
- public static boolean isValidFilename(String name) {
- return name ==~ fileExp }
-
- public static String makeFilename(String id, Category category,
- Status status, int priority) {
-
- // bounds check priority
- priority = Math.min(9, Math.max(0, priority))
-
- //check for valid values of cateogry and id
- if (category == null)
- throw new IAE("Category must be non-null.")
- if (status == null)
- throw new IAE("Status must be non-null.")
- if (!(id ==~ /\d+/))
- throw new IAE( "'${id}' is not a legal value for id.")
-
- return id + category.symbol + status.symbol + priority + ".rst" }
-
- public static String formatIssue(Issue issue) {
- def result = new StringBuilder()
- result.append(issue.title)
- result.append("\n")
- result.append("=".multiply(issue.title.length()))
- result.append("\n\n")
- result.append(issue.text)
-
- // If there are any extended properties, let's write those.
- if (issue.extendedProperties.size() > 0) {
- result.append("\n----\n\n")
- def extOutput = [:]
- def maxKeyLen = 0
- def maxValLen = 0
-
- // Find the longest key and value, convert all to strings.
- issue.extendedProperties.each { key, val ->
- def ks = key.toString().split('_').collect({it.capitalize()}).join(' ')
- def vs = ExtendedPropertyHelp.format(val)
-
- extOutput[ks] = vs
- if (ks.length() > maxKeyLen) { maxKeyLen = ks.length() }
- if (vs.length() > maxValLen) { maxValLen = vs.length() } }
-
- result.append("=".multiply(maxKeyLen + 1))
- result.append(" ")
- result.append("=".multiply(maxValLen))
- result.append("\n")
-
- extOutput.sort().each { key, val ->
- result.append(key.padRight(maxKeyLen))
- result.append(": ")
- result.append(val.padRight(maxValLen))
- result.append("\n") }
-
- result.append("=".multiply(maxKeyLen + 1))
- result.append(" ")
- result.append("=".multiply(maxValLen))
- result.append("\n") }
-
- return result.toString()}
-
- protected void writeFile() {
- try { source.write(formatIssue(this)) }
- catch (IOException ioe) {
- throw new IOException("I could not save the new text for this "
- + "issue. I can not write to the file for this issue. I do not"
- + " know why, I am sorry (maybe the file can not be reached).") } }
-
-}
diff --git a/libpit/src/main/com/jdbernard/pit/file/FileProject.groovy b/libpit/src/main/com/jdbernard/pit/file/FileProject.groovy
deleted file mode 100755
index b8b481a..0000000
--- a/libpit/src/main/com/jdbernard/pit/file/FileProject.groovy
+++ /dev/null
@@ -1,107 +0,0 @@
-package com.jdbernard.pit.file
-
-import com.jdbernard.pit.*
-
-class FileProject extends Project {
-
- protected File source
-
- public FileProject(File dir) {
- super(dir.canonicalFile.name)
-
- if (!dir.isDirectory())
- throw new IllegalArgumentException(
- "${dir.name} is not a directory.")
-
- this.source = dir
-
- dir.eachFile { child ->
-
- // add sub projects
- if (child.isDirectory()) {
- if (child.name ==~ /\d+/ ||
- child.isHidden()) return // just an issue folder
-
- // otherwise build and add to list
- projects[(child.name)] = new FileProject(child) }
- else if (child.isFile() &&
- FileIssue.isValidFilename(child.name)) {
- def issue
-
- // if exception, then not an issue
- try { issue = new FileIssue(child) } catch (all) { return }
-
- issues[(issue.id)] = issue } }}
-
- public void setName(String name) {
- super.setName(name)
- source.renameTo(new File(source.canonicalFile.parentFile, name)) }
-
- public FileIssue createNewIssue(Map options) {
- Issue issue
- File issueFile
-
- if (!options) options = [:]
-
- // We want some different defaults for issues due to the parser being
- // unable to handle empty title or text.
- if (!options.title) options.title = "Default issue title."
- if (!options.text) options.text = "Describe the issue here."
-
- // We are also going to find the next id based on the issues already in the
- // project.
- if (issues.size() == 0) options.id = '0000'
- else {
- def lastId = (issues.values().max { it.id.toInteger() }).id
- options.id = (lastId.toInteger() + 1).toString().padLeft(
- lastId.length(), '0') }
-
- // Create an Issue object from the options (we will discard it later).
- issue = new Issue(options)
-
- // Create the filename and File object based on the options given.
- issueFile = new File(source, FileIssue.makeFilename(
- issue.id, issue.category, issue.status, issue.priority))
-
- // Create the actual file on the system
- issueFile.createNewFile()
-
- // Write the issue to the file created.
- issueFile.write(FileIssue.formatIssue(issue))
-
- // Read that new file back in as a FileIssue
- issue = new FileIssue(issueFile)
-
- // Add the issue to our collection.
- issues[(issue.id)] = issue
-
- return issue }
-
- public FileProject createNewProject(String name) {
- def newDir = new File(source, name)
- newDir.mkdirs()
-
- return new FileProject(newDir) }
-
- public boolean deleteIssue(Issue issue) {
- if (!issues[(issue.id)]) return false
-
- issues.remove(issue.id)
- if (issue instanceof FileIssue)
- return issue.deleteFile()
-
- else return true }
-
- public boolean deleteProject(Project project) {
- if (!projects[(project.name)]) return false
-
- projects.remove(project.name)
- if (project instanceof FileProject)
- return project.source.delete()
-
- return true }
-
- @Override
- public String toString() { return name }
-
-}
diff --git a/libpit/src/main/com/jdbernard/pit/file/FileRepository.groovy b/libpit/src/main/com/jdbernard/pit/file/FileRepository.groovy
deleted file mode 100755
index 6b19aa1..0000000
--- a/libpit/src/main/com/jdbernard/pit/file/FileRepository.groovy
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.jdbernard.pit.file
-
-import com.jdbernard.pit.*
-
-public class FileRepository extends Repository {
-
- @Delegate FileProject fileProject
-
- public FileRepository(File dir) {
- assert dir.isDirectory()
- fileProject = new FileProject(dir)
- }
-
- public void persist() {} // nothing to do
- public Project[] getRootProjects() {
- return [fileProject] as Project[]
- }
-
- public FileProject createNewProject(String name) {
- return fileProject.createNewProject()
- }
-}
diff --git a/libpit/src/main/com/jdbernard/pit/file/IssuePegParser.java b/libpit/src/main/com/jdbernard/pit/file/IssuePegParser.java
deleted file mode 100644
index 03fce38..0000000
--- a/libpit/src/main/com/jdbernard/pit/file/IssuePegParser.java
+++ /dev/null
@@ -1,67 +0,0 @@
-package com.jdbernard.pit.file;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.parboiled.Action;
-import org.parboiled.BaseParser;
-import org.parboiled.Context;
-import org.parboiled.Rule;
-import org.parboiled.annotations.*;
-
-@BuildParseTree
-public class IssuePegParser extends BaseParser