Split vim projects into separate repos. vim-stuff tip
authorMahlon E. Smith <mahlon@martini.nu>
Sat, 16 Jan 2016 11:39:19 -0800
branchvim-stuff
changeset 29 cc3094023778
parent 28 2b198f0a86fe
Split vim projects into separate repos.
hgrev/Makefile
hgrev/build.vim
hgrev/doc/hgrev.txt
hgrev/plugin/hgrev.vim
specky/Makefile
specky/build.vim
specky/doc/specky.txt
specky/ftdetect/rspec.vim
specky/ftplugin/rspec.vim
specky/plugin/specky.vim
specky/ruby/specky_formatter.rb
specky/snippets/rspec.snippets
specky/syntax/rdoc.vim
specky/syntax/rspec.vim
specky/syntax/specrun.vim
specky/syntax/specrun1.vim
--- a/hgrev/Makefile	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-PLUGIN = hgrev
-
-SOURCE =  plugin/hgrev.vim
-SOURCE += doc/hgrev.txt
-
-${PLUGIN}.vba: ${SOURCE}
-	- vim --cmd 'let g:plugin_name="${PLUGIN}"' -S build.vim -cq\!
-	gzip ${PLUGIN}.vba
-
-install:
-	rsync -Rv ${SOURCE} ${HOME}/.vim/
-
-clean:
-	rm ${PLUGIN}.vba.gz
--- a/hgrev/build.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-let g:vimball_home="."
-e Makefile
-%!grep ^SOURCE
-%s/^SOURCE\s\++\?=\s\+//
-execute '%MkVimball!' . g:plugin_name
--- a/hgrev/doc/hgrev.txt	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,167 +0,0 @@
-*hgrev.txt* Last change: $Id$
-
-                VIM REFERENCE MANUAL    by Mahlon E. Smith
-
-
-                                   HGRev
-
-A simple plugin for showing the current buffer's HG revision           *HGRev*
-==============================================================================
-CONTENTS                                                       *HGRevContents*
-
-
-    1) Intro........................................|HGRevIntro|
-    2) Configuration................................|HGRevOptions|
-        2.1) Altering revision info shown...........|g:hgrevFlags|
-        2.2) Appending file status info.............|g:hgrevAddStatus|
-        2.3) Automatically updating status..........|g:hgrevAutoUpdate|
-        2.4) Changing non-repo buffer behavior......|g:hgrevNoRepoChar|
-    3) Author.......................................|HGRevAuthor|
-    4) License......................................|HGRevLicense|
-
-
-
-==============================================================================
-1. INTRO                                                          *HGRevIntro*
-
-HGRev is a small plugin that can find the current buffer's revision ID from a
-Mercurial repository.  For more information on Mercurial, see:
-
-	http://mercurial.selenic.com/
-
-It is intended for use in the |statusline|- here's an example to enable it:
-
-	set statusline=[r%{HGRev()}] ~
-
-HGRev exports the 'HGRev()' function (for use in the statusline), and a
-command called
->
-	:RefreshMercurialRev
-
-Which you can use to manually update the revision information for the current
-buffer.  If you've added HGRev() to your statusline, you'll see the file
-revision, branch, tags, and file status reflected -- if you used the
-statusline example above, you should see something like this:
-
-	[r192+ default tip M] ~
-
-The information displayed can be easily customized, and HGRev can also
-automatically update the status line on file changes.  (This behavior is
-disabled by default.)
-
-
-==============================================================================
-2. CONFIGURATION-OPTIONS                                        *HGRevOptions*
-
-Here are the available configuration options and their defaults:
->
-	let g:hgrevFlags = '-nbt'
-	let g:hgrevAddStatus = 1
-	let g:hgrevAutoUpdate = 0
-	let g:hgrevNoRepoChar = '-'
-
-
-------------------------------------------------------------------------------
-2.1                                                             *g:hgrevFlags*
-
-These are the flags passed directly to 'hg id'.  The flags "-nbt" are passed
-by default, which show a local rev id, branch, and tags.
-
-If you wanted to show the global rev hash (and nothing else) as an example,
-you can set this to:
->
-	let g:hgrevFlags = '-i'
-
-
-------------------------------------------------------------------------------
-2.2                                                         *g:hgrevAddStatus*
-
-This settings will append the current file status to the output, by running
-'hg stat'.  I find it useful, so it is enabled by default -- you can disable
-it like so:
->
-	let g:hgrevAddStatus = 0
->
-
-------------------------------------------------------------------------------
-2.3                                                        *g:hgrevAutoUpdate*
->
-When this option is enabled, some |autocmd-events| are added that
-automatically call :RefreshMercurialRev on file changes -- when a buffer is
-read, written to, or modified outside of Vim.  This is disabled by default, as
-the additional time needed (however small) to system() to hg for every
-read/write outweighs running :RefreshMercurialRev manually for my tastes.
-Yours tastes, of course, may vary, so you can enable it like so:
->
-	let g:hgrevAutoUpdate = 1
-
-Alternatively, you can leave it disabled, and add your own |autocmd| events
-for :RefreshMercurialRev to what works best for you.
-
-
-------------------------------------------------------------------------------
-2.4                                                        *g:hgrevNoRepoChar*
->
-If the current buffer doesn't seem to be a member of a Mercurial repository,
-HGRev() returns this character instead of a revision ID.
-
-Some examples:
->
-	let g:hgrevNoRepoChar = '-'    (default)
-	set statusline=[r%{HGRev()}]
-
-This will output something like '[r12+ default tip M]' for repo files,
-and '[r-]' for non-repo.
->
-	let g:hgrevNoRepoChar = ''
-	set statusline=%{HGRev()?'[r'.HGRev().']':''}
-
-This will output something like '[r512 default tip]' for repo files, and
-nothing at all for non-repo.
-
-
-==============================================================================
-3. AUTHOR                                                        *HGRevAuthor*
-
-HGRev was written by Mahlon E. Smith.
-
-    mahlon@martini.nu ~
-    http://www.martini.nu/ 
-
-
-
-==============================================================================
-4. LICENSE                                                      *HGRevLicense*
-
-HGRev is distributed under the BSD license.
-    http://www.opensource.org/licenses/bsd-license.php
->
-    Copyright (c) 2010-2012, Mahlon E. Smith <mahlon@martini.nu>
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions are
-    met:
-
-        * Redistributions of source code must retain the above copyright
-          notice, this list of conditions and the following disclaimer.
-
-        * Redistributions in binary form must reproduce the above copyright
-          notice, this list of conditions and the following disclaimer in the
-          documentation and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-    TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-vim: set noet nosta sw=4 ts=4 ft=help :
--- a/hgrev/plugin/hgrev.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-" vim: set noet nosta sw=4 ts=4 fdm=marker :
-"
-" HGRev
-" Mahlon E. Smith <mahlon@martini.nu>
-" $Id$
-"
-" Simplistic file revision checker, meant for adding current revision
-" information to the statusbar, a la:
-"
-" 	set statusline=[r%{HGRev()}]
-"
-
-if exists( 'hgrev_loaded' )
-	finish
-endif
-let hgrev_loaded = '$Rev$'
-
-" }}}
-" Defaults for misc settings {{{
-"
-if !exists( 'g:hgrevFlags' )
-	let g:hgrevFlags = '-nbt'
-endif
-
-if !exists( 'g:hgrevAddStatus' )
-	let g:hgrevAddStatus = 1
-endif
-
-if !exists( 'g:hgrevAutoUpdate' )
-	let g:hgrevAutoUpdate = 0
-endif
-
-if !exists( 'g:hgrevNoRepoChar' )
-	let g:hgrevNoRepoChar = '-'
-endif
-
-
-
-"}}}
-" Commands {{{
-"
-command! RefreshMercurialRev :call <SID>RefreshMercurialRev()
-
-
-" HGRev() {{{
-" Return the current buffer rev id from the global dictionary.
-"
-function! HGRev()
-	if exists( 'g:hg_revs' )
-		let l:key = getcwd() . '/' . bufname('%')
-		return has_key(g:hg_revs, l:key) ? g:hg_revs[l:key] : g:hgrevNoRepoChar
-	else
-		call <SID>RefreshMercurialRev()
-		call HGRev()
-	endif
-endfunction
-
-
-" }}}
-" RefreshMercurialRev() {{{
-"
-" Locate the hgroot and fetch the current rev id, populating the global
-" dictionary.
-"
-function! <SID>RefreshMercurialRev()
-	if ! exists( 'g:hg_revs' )
-		let g:hg_revs = {}
-	endif
-
-	" Find the closest HG root for the buffer. 'hg root' won't do it, since
-	" it works off the cwd, and we need the nearest root from the filename.
-	"
-
-	" (we're unlikely to get lucky finding '.hg' in http:// or similar)
-	"
-	if matchstr(bufname('%'), "^[^:/]\\+://") != ''
-		return
-	endif
-
-	let l:searchpaths = split( expand('%:p:h'), '/' )
-	let l:dircount = len(l:searchpaths)
-	let l:root = ''
-	while l:dircount > 0
-		let l:root = '/' . join( l:searchpaths[0 : l:dircount], '/' )
-		if isdirectory( l:root . '/' . '.hg' )
-			break
-		endif
-		let l:dircount = l:dircount - 1
-	endwhile
-
-	if l:dircount == -1
-		return
-	endif
-
-	let l:key = getcwd() . '/' . bufname('%')
-
-	" Find the rev for the repo containing the current file buffer.
-	"
-	let l:cmd     = 'hg id ' . g:hgrevFlags . ' ' . l:root
-	let l:rev     = system( l:cmd )
-	let l:hg_exit = v:shell_error
-
-	if l:hg_exit == 0
-		let l:rev = substitute( l:rev, '\n', '', 'g' )
-		let g:hg_revs[ l:key ] = l:rev
-	endif
-
-	" Add file repo status.
-	"
-	if g:hgrevAddStatus == 1
-		let l:cmd     = 'hg stat ' . bufname('%')
-		let l:stat    = system( l:cmd )
-		let l:hg_exit = v:shell_error
-
-		if l:hg_exit == 0 && len(l:stat) > 0
-			let l:stat = split( l:stat, '\s\+' )[0]
-			let g:hg_revs[ l:key ] = g:hg_revs[ l:key ] . ' ' . l:stat
-		endif
-	endif
-
-	return
-endfunction
-"}}}
-
-
-" Refresh the rev for the current buffer on reads/writes.
-"
-if g:hgrevAutoUpdate == 1
-	autocmd BufReadPost          * call <SID>RefreshMercurialRev()
-	autocmd BufWritePost         * call <SID>RefreshMercurialRev()
-	autocmd FileChangedShellPost * call <SID>RefreshMercurialRev()
-endif
-
--- a/specky/Makefile	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-PLUGIN = specky
-
-SOURCE =  syntax/rdoc.vim
-SOURCE += syntax/specrun.vim
-SOURCE += syntax/specrun1.vim
-SOURCE += syntax/rspec.vim
-SOURCE += ftdetect/rspec.vim
-SOURCE += ftplugin/rspec.vim
-SOURCE += doc/specky.txt
-SOURCE += plugin/specky.vim
-SOURCE += snippets/rspec.snippets
-SOURCE += ruby/specky_formatter.rb
-
-
-${PLUGIN}.vba: ${SOURCE}
-	- vim --cmd 'let g:plugin_name="${PLUGIN}"' -S build.vim -cq\!
-	gzip ${PLUGIN}.vba
-
-install:
-	rsync -Rv ${SOURCE} ${HOME}/.vim/
-
-clean:
-	rm ${PLUGIN}.vba.gz
--- a/specky/build.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-let g:vimball_home="."
-e Makefile
-v/^SOURCE/d
-%s/^SOURCE\s\++\?=\s\+//
-execute '%MkVimball!' . g:plugin_name
--- a/specky/doc/specky.txt	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,358 +0,0 @@
-*specky.txt* Last change: $Id$
-
-                VIM REFERENCE MANUAL    by Mahlon E. Smith
-
-
-                                  specky!
-
-A Plugin for testing Ruby code with RSpec -- and more                 *specky*
-==============================================================================
-CONTENTS                                                      *SpeckyContents*
-
-    1) Intro........................................|SpeckyIntro|
-    2) Functionality................................|SpeckyFunctionality|
-    3) Enabling Specky..............................|SpeckyInstallation|
-    4) Configuration................................|SpeckyOptions|
-        4.1) Create text banners....................|g:speckyBannerKey|
-        4.2) Cycling quote styles...................|g:speckyQuoteSwitcherKey|
-        4.3) Display ruby documentation.............|g:speckyRunRdocKey|
-        4.4) Toggle editing between spec and code...|g:speckySpecSwitcherKey|
-        4.5) Run specs for the current buffer.......|g:speckyRunSpecKey|
-        4.6) Modify the default spec command........|g:speckyRunSpecCmd|
-        4.7) Modify the default rdoc command........|g:speckyRunRdocCmd|
-        4.8) Alter new window behavior..............|g:speckyWindowType|
-        4.9) Running older rspec (1.x) .............|g:speckySpecVersion|
-    5) Author.......................................|SpeckyAuthor|
-    6) License......................................|SpeckyLicense|
-
-
-
-==============================================================================
-1. INTRO                                                         *SpeckyIntro*
-
-Specky is primarily a small collection of functions to help make behavioral
-testing streamlined and easy when working with ruby and rspec.  Specky
-supports rspec 2.x by default, and is backwards compatible with rspec 1.x.
-
-Specky secondarily includes a couple of conveniences to make your everyday
-programming tasks smooooth and pleasurable.
-
-
-==============================================================================
-2. FUNCTIONALITY                                         *SpeckyFunctionality*
-
-Okay then, what does it do?
-
-By default?  Nothing but syntax highlighting unless you are comfortable using
-the menus.  I decided the easiest way to cherry pick the functionality that
-you'd like was to enable them via key bindings.  By doing this, Specky won't
-make assumptions about your current environment, and won't stomp on anything
-you don't want it to.
-
-    Specky won't do -anything- with your environment until you enable ~
-    the key bindings!! ~
-
-After you've configured your bindings, here are some of the things you can
-now do with a single key stroke:
->
-    - Switch back and forth from code to testing spec 
-
-    - Run the spec, with results going to a new, syntax highlighted buffer 
-
-    - Jump quickly to spec failures and failure detail 
-        - 'e' and 'r' to move back and forth on each failed assertion, 
-        - 'E' to jump details for it. 
-        - '<C-e>' to "forget" the currently selected failed assertion
-        - 'q' to close the spec output buffer. 
-
-    - View rdoc of the word under the cursor
-
-    - Dynamically switch string types for the word under the cursor
-      (double quoted, quoted, symbol)
-
-    - Make lovely and quick comment banners for ruby code.
-
-Specky also includes a "snippets" file that can be used with the Snipmate
-plugin by Michael Sanders <msanders42+vim@gmail.com>. (Minimum version 0.74.)
-
-	http://www.vim.org/scripts/script.php?script_id=2540
-
-==============================================================================
-3. ENABLING-SPECKY                                        *SpeckyInstallation*
-
-Getting Specky to work should be a fairly trivial process.  Specky now
-uses a custom rspec formatter to function reliably, and it needs to know
-where that lives on your system.
-
-If you installed Specky from Vimball, it is likely found at:
-
-	~/.vim/ruby/specky_formatter.rb ~
-
-Otherwise, you'll need to locate it, and tell rspec to use it in one of two
-ways.
-
-	1) Set the 'g:speckyRunSpecCmd' variable explicitly:
-
-		let g:speckyRunSpecCmd = "rspec -r ~/.vim/ruby/specky_formatter.rb -f SpeckyFormatter" ~
-
-	2) or, leave 'g:speckyRunSpecCmd' at its default value, and instead use
-	   an '.rspec' settings file in the root directory of the the project
-	   you're working in.  I find this method much more flexible -- the
-	   '.rspec' file can be carried with your project, and customized to
-	   include additional bits like custom $LOAD_PATH injections, etc.
-	   Here's what mine usually looks like: >
-
-		-r loadpath
-		-r ~/.vim/bundle/specky/ruby/specky_formatter
-		-f SpeckyFormatter
-
-	You can also use both of these methods, and use the
-	'SpeckyConsoleFormatter' class from your .rspec file, if it suits
-	your fancy.
-
-
-After that is taken care of, then just set up your keybindings in your
-.vimrc.  Here's what my config looks like. >
-
-    let g:speckyBannerKey        = "<C-S>b"
-    let g:speckyQuoteSwitcherKey = "<C-S>'"
-    let g:speckyRunRdocKey       = "<C-S>r"
-    let g:speckySpecSwitcherKey  = "<C-S>x"
-    let g:speckyRunSpecKey       = "<C-S>s"
-    let g:speckyRunRdocCmd       = "fri -L -f plain"
-    let g:speckyWindowType       = 2
-
-With these bindings, all Specky commands start with <ctrl-s> ("s" for
-Specky!), followed by a mnemonic function to run:
-
-    b ----> Banner creation ~
-    ' ----> Quote cycling ~
-    r ----> run Rdoc ~
-    x ----> code and spec eXchange ~
-    s ----> run rSpec ~
-
-Of course, <ctrl-s> is a "suspend" signal for most terminals, so these
-bindings are meant for a |gui| environment, such as gvim.  Your mileage (and
-tastes) will doubtlessly vary.  Do what you will.  I won't judge you.
-
-
-==============================================================================
-4. CONFIGURATION-OPTIONS                                       *SpeckyOptions*
-
-Here are all of the available configuration options.
-
-Please note that you must set binding variables:
-
-    |g:speckyBannerKey|
-    |g:speckyQuoteSwitcherKey|
-    |g:speckyRunRdocKey|
-    |g:speckySpecSwitcherKey|
-    |g:speckyRunSpecKey|
-
-...in order to enable the respective Specky functionality.  See
-|SpeckyInstallation| for details. Any other options are entirely optional.
-Put these into your |vimrc|, or wherever else you enjoy storing this kind of
-stuff.
-
-
-------------------------------------------------------------------------------
-4.1                                                        *g:speckyBannerKey*
-
-Setting this binding enables comment banner creation.
-
-This is purely a convenience routine, and a stylistic one at that.  I prefer
-large advertising of what "area" of code you are in, along with other
-miscellaneous labels for humans to read.  If this isn't how you roll, then by
-all means, don't enable this binding!  :)
-
-As an example -- you can just type:
-
-	instance methods ~
-
-Then hit the keystroke.  It will magically turn into: >
-
-  ########################################################################
-  ### I N S T A N C E   M E T H O D S
-  ########################################################################
-
-With all those saved extra keystrokes this might provide you per banner over
-the years, your RSI-free hands will thank you.  And the total time savings!!
-Oh man, what are you going to DO with all of that extra free time?
-The possibilities are staggering.
-
-
-------------------------------------------------------------------------------
-4.2                                                 *g:speckyQuoteSwitcherKey*
-
-Setting this binding enables quote "style switching".
-
-If you aren't in ruby mode, this just changes the word under the cursor
-back and forth from double quoting to single quoting.
-
-    string -> "string" -> 'string' -> "string" ... ~
-
-In ruby mode, symbols are also put into the rotation.
-
-    "string" -> 'string' -> :string -> "string" ... ~
-
-Note that quote cycling only works with a |word|.
-
-
-------------------------------------------------------------------------------
-4.3                                                       *g:speckyRunRdocKey*
-
-Setting this enables the display of rdoc documentation for the current
-word under the cursor.  For lookups with multiple matches, you can continue
-using this binding to "drill down" to the desired documentation.
-         
-
-------------------------------------------------------------------------------
-4.4                                                  *g:speckySpecSwitcherKey*
-
-Setting this enables spec to code switching, and visa versa.
-
-Switching uses path searching instead of reliance on directory structure in
-your project.  The idea here is that you'd |:chdir| into your project
-directory.  Spec files just need to end in '_spec.rb', which is a common
-convention.
-
-    aRubyClass.rb ---> aRubyClass_spec.rb~
- 
-Because it leaves respective buffers open, you can essentially think of this
-as a quick toggle between code and tests.
-
-
-------------------------------------------------------------------------------
-4.5                                                       *g:speckyRunSpecKey*
-
-Setting this variable runs "rspec" on the current buffer.
-
-All output is sent to a syntax highlighted scratch buffer. This new window is
-re-used for each spec run.  You can quickly "jump" to assertion failures and
-their associated details with the following keys:
-
-        e and r ~
-            Move forward and backward through the failed assertions.
-
-        E~
-            While on a failure line, jump to the details of the failure.
-
-        <C-e> ~
-            "Forget" the last found failed assertion, and start over at the
-            beginning of the list. (ie, the next 'e' keystroke will select
-            error #1.)
-
-        q ~
-            Closes the spec output buffer. 
-
-
-Normally, you'd only want to perform this keystroke while in a spec file
-buffer.  If Specky thinks you are in code, rather than a buffer (as indicated
-by the lack of a "_spec.rb" file naming convention) then it will attempt to
-switch to the spec before running the command.
-
-
-------------------------------------------------------------------------------
-4.6                                                       *g:speckyRunSpecCmd*
-
-This is the program, with flags, that the current file is sent to when
-executing the |g:speckyRunSpecKey| keybinding.
-
-A common addition is to include an "-r" flag for sucking in local libraries
-necessary for testing your project.  In fact, this is required to use the 
-rspec formatter supplied by Specky.  See |SpeckyInstallation| for more info.
-
-    Default: ~
-        rspec
-
-
-------------------------------------------------------------------------------
-4.7                                                       *g:speckyRunRdocCmd*
-
-If you prefer an rdoc display program other than "ri", you can set it
-with this variable.  "fri -L -f plain" is always a nice choice, for example.
-
-    Default: ~
-        ri
-
-
-------------------------------------------------------------------------------
-4.8                                                       *g:speckyWindowType*
-
-For both spec and rdoc commands, this variable controls the behavior of the
-newly generated window.
-
-	Default: ~
-		0
-		
-	0 ~
-		Create a new tabbed window
-	1 ~
-		Split the current window horizontally
-	2 ~
-		Split the current window vertically
-
-
-------------------------------------------------------------------------------
-4.9                                                      *g:speckySpecVersion*
-
-Specky should work out of the box with rspec 2.x.  If you'd like to use rspec
-1.x instead, you can do so with the following Vim settings: >
-
-    let g:speckySpecVersion = 1
-	let g:speckyRunRdocCmd  = "spec -fs" 
-
-If you have both rspec 1.x and 2.x installed at the same time, you need to 
-be explicit with what version you are executing: >
-
-	let g:speckyRunRdocCmd  = "spec _1.3.0_ -fs" 
-
-
-==============================================================================
-5. AUTHOR                                                       *SpeckyAuthor*
-
-
-Specky was written by Mahlon E. Smith.
-
-    mahlon@martini.nu ~
-    http://www.martini.nu/ 
-
-
-
-==============================================================================
-6. LICENSE                                                     *SpeckyLicense*
-
-
-Specky is distributed under the BSD license.
-    http://www.opensource.org/licenses/bsd-license.php
->
-    Copyright (c) 2008-2010, Mahlon E. Smith <mahlon@martini.nu>
-    All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions are
-    met:
-
-        * Redistributions of source code must retain the above copyright
-          notice, this list of conditions and the following disclaimer.
-
-        * Redistributions in binary form must reproduce the above copyright
-          notice, this list of conditions and the following disclaimer in the
-          documentation and/or other materials provided with the distribution.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-    TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-
-vim: set noet nosta sw=4 ts=4 ft=help :
-
--- a/specky/ftdetect/rspec.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-au BufRead,BufNewFile *_spec.rb set filetype=rspec
--- a/specky/ftplugin/rspec.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-if exists("b:did_ftplugin")
-    finish
-endif
-
-" Behave just like Ruby
-runtime! ftplugin/ruby.vim
-
--- a/specky/plugin/specky.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +0,0 @@
-" vim: set noet nosta sw=4 ts=4 fdm=marker :
-"
-" Specky!
-" Mahlon E. Smith <mahlon@martini.nu>
-" $Id$
-"
-
-
-" Hook up the functions to the user supplied key bindings. {{{
-"
-if exists( 'g:speckySpecSwitcherKey' )
-	execute 'map ' . g:speckySpecSwitcherKey . ' :call <SID>SpecSwitcher()<CR>'
-"	map &g:speckySpecSwitcherKey <SID>SpecSwitcher()
-endif
-
-if exists( 'g:speckyQuoteSwitcherKey' )
-	execute 'map ' . g:speckyQuoteSwitcherKey . ' :call <SID>QuoteSwitcher()<CR>'
-endif
-
-if exists( 'g:speckyBannerKey' )
-	execute 'map ' . g:speckyBannerKey . ' :call <SID>MakeBanner()<CR>'
-endif
-
-if exists( 'g:speckyRunSpecKey' )
-	execute 'map ' . g:speckyRunSpecKey . ' :call <SID>RunSpec()<CR>'
-endif
-
-if exists( 'g:speckyRunRdocKey' )
-	execute 'map ' . g:speckyRunRdocKey . ' :call <SID>RunRdoc()<CR>'
-endif
-
-if exists( 'specky_loaded' )
-	finish
-endif
-let specky_loaded = '$Rev$'
-
-
-"}}}
-" Menu configuration {{{
-"
-let s:menuloc = '&Plugin.&specky'
-execute 'menu ' . s:menuloc . '.&Jump\ to\ code/spec :call <SID>SpecSwitcher()<CR>'
-execute 'menu ' . s:menuloc . '.Run\ &spec :call <SID>RunSpec()<CR>'
-execute 'menu ' . s:menuloc . '.&RDoc\ lookup :call <SID>RunRdoc()<CR>'
-execute 'menu ' . s:menuloc . '.Rotate\ &quote\ style :call <SID>QuoteSwitcher()<CR>'
-execute 'menu ' . s:menuloc . '.Make\ a\ &banner :call <SID>MakeBanner()<CR>'
-
-
-" }}}
-" SpecSwitcher() {{{
-"
-" When in ruby code or an rspec BDD file, try and search recursively through
-" the filesystem (within the current working directory) to find the
-" respectively matching file.  (code to spec, spec to code.)
-"
-" This operates under the assumption that you've used chdir() to put vim into
-" the top level directory of your project.
-"
-function! <SID>SpecSwitcher()
-
-	" If we aren't in a ruby or rspec file then we probably don't care
-	" too much about this function.
-	"
-	if &ft != 'ruby' && &ft != 'rspec'
-		call s:err( "Not currently in ruby or rspec mode." )
-		return
-	endif
-
-	" Ensure that we can always search recursively for files to open.
-	"
-	let l:orig_path = &path
-	set path=**
-
-	" Get the current buffer name, and determine if it is a spec file.
-	"
-	" /tmp/something/whatever/rubycode.rb ---> rubycode.rb
-	" A requisite of the specfiles is that they match to the class/code file,
-	" this emulates the eigenclass stuff, but doesn't require the same
-	" directory structures.
-	"
-	" rubycode.rb ---> rubycode_spec.rb
-	" 
-	let l:filename     = matchstr( bufname('%'), '[0-9A-Za-z_.-]*$' )
-	let l:is_spec_file = match( l:filename, '_spec.rb$' ) == -1 ? 0 : 1
-
-	if l:is_spec_file
-		let l:other_file = substitute( l:filename, '_spec\.rb$', '\.rb', '' )
-	else
-		let l:other_file = substitute( l:filename, '\.rb$', '_spec\.rb', '' )
-	endif
-
-	let l:bufnum = bufnr( l:other_file )
-	if l:bufnum == -1
-		" The file isn't currently open, so let's search for it.
-		execute 'find ' . l:other_file
-	else
-		" We've already got an open buffer with this file, just go to it.
-		execute 'buffer' . l:bufnum
-	endif
-
-	" Restore the original path.
-	execute 'set path=' . l:orig_path
-endfunction
-
-
-" }}}
-" QuoteSwitcher() {{{
-"
-" Wrap the word under the cursor in quotes.  If in ruby mode,
-" cycle between quoting styles and symbols.
-"
-" variable -> "variable" -> 'variable' -> :variable
-"
-function! <SID>QuoteSwitcher()
-	let l:type = strpart( expand("<cWORD>"), 0, 1 )
-	let l:word = expand("<cword>")
-
-	if l:type == '"'
-		" Double quote to single
-		execute ":normal viWc'" . l:word . "'"
-
-	elseif l:type == "'"
-		if &ft == 'ruby' || &ft == 'rspec'
-			" Single quote to symbol
-			execute ':normal viWc:' . l:word
-		else
-			" Single quote to double
-			execute ':normal viWc"' . l:word . '"'
-		end
-
-	else
-		" Whatever to double quote
-		execute ':normal viWc"' . l:word . '"'
-	endif
-
-	" Move the cursor back into the cl:word
-	call cursor( 0, getpos('.')[2] - 1 )
-endfunction
-
-
-" }}}
-" MakeBanner() {{{
-"
-" Create a quick banner from the current line's text.
-"
-function! <SID>MakeBanner()
-	let l:banner_text = toupper(join( split( getline('.'), '\zs' ), ' ' ))
-	let l:banner_text = substitute( l:banner_text, '^\s\+', '', '' )
-	let l:sep = repeat( '#', &textwidth == 0 ? 72 : &textwidth )
-	let l:line = line('.')
-
-	call setline( l:line, l:sep )
- 	call append( l:line, [ '### ' . l:banner_text, l:sep ] )
-	execute 'normal 3=='
-	call cursor( l:line + 3, 0 )
-endfunction
-
-
-" }}}
-" RunSpec() {{{
-"
-" Run this function while in a spec file to run the specs within vim.
-"
-function! <SID>RunSpec()
-
-	" If we're in the code instead of the spec, try and switch
-	" before running tests.
-	"
-	let l:filename     = matchstr( bufname('%'), '[0-9A-Za-z_.-]*$' )
-	let l:is_spec_file = match( l:filename, '_spec.rb$' ) == -1 ? 0 : 1
-	if ( ! l:is_spec_file )
-		silent call <SID>SpecSwitcher()
-	endif
-
-	let l:spec    = bufname('%')
-	let l:buf     = 'specky:specrun'
-	let l:bufnum  = bufnr( l:buf )
-	let l:specver = (exists( 'g:speckySpecVersion') && g:speckySpecVersion == 1) ? 1 : 2
-
-	" Squash the old buffer, if it exists.
-	"
-	if buflisted( l:buf )
-		execute 'bd! ' . l:buf
-	endif
-
-	execute <SID>NewWindowCmd() . l:buf
-	setlocal buftype=nofile bufhidden=delete noswapfile
-	if ( l:specver == 1 )
-		setlocal filetype=specrun1
-		set foldtext='--'.getline(v:foldstart).v:folddashes
-	else
-		setlocal filetype=specrun
-		set foldtext=_formatFoldText()
-	endif
-
-	" Set up some convenient keybindings.
-	"
-	nnoremap <silent> <buffer> q :close<CR>
-	nnoremap <silent> <buffer> e :call <SID>FindSpecError(1)<CR>
-	nnoremap <silent> <buffer> r :call <SID>FindSpecError(-1)<CR>
-	nnoremap <silent> <buffer> E :call <SID>FindSpecError(0)<CR>
-	nnoremap <silent> <buffer> <C-e> :let b:err_line=1<CR>
-
-	" Default cmd for spec
-	"
-	if !exists( 'g:speckyRunSpecCmd' )
-		let g:speckyRunSpecCmd = l:specver == 1 ? 'spec -fs' : 'rspec'
-	endif
-
-	" Call spec and gather up the output
-	"
-	let l:cmd =  g:speckyRunSpecCmd . ' ' . l:spec
-	call append( line('$'), 'Output of: ' . l:cmd  )
-	call append( line('$'), '' )
-	let l:output = system( l:cmd )
-	call append( line('$'), split( l:output, "\n" ) )
-	normal gg
-
-	" Lockdown the buffer
-	setlocal nomodifiable
-endfunction
-
-
-" }}}
-" RunRdoc() {{{
-"
-" Get documentation for the word under the cursor.
-"
-function! <SID>RunRdoc()
-
-	" If we aren't in a ruby file (specs are ruby-mode too) then we probably
-	" don't care too much about this function.
-	"
-	if ( &ft != 'ruby' && &ft != 'rdoc' && &ft != 'rspec' )
-		call s:err( "Not currently in a rubyish-mode." )
-		return
-	endif
-
-	" Set defaults
-	"
-	if !exists( 'g:speckyRunRdocCmd' )
-		let g:speckyRunRdocCmd = 'ri'
-	endif
-
-	let l:buf     = 'specky:rdoc'
-	let l:bufname = bufname('%')
-
-	if ( match( l:bufname, l:buf ) != -1 )
-		" Already in the rdoc buffer.  This allows us to lookup
-		" something like Kernel#require.
-		"
-		let l:word = expand('<cWORD>')
-	else
-		" Not in the rdoc buffer.  This allows us to lookup
-		" something like 'each' in some_hash.each { ... }
-		"
-		let l:word = expand('<cword>')
-	endif
-
-	" Squash the old buffer, if it exists.
-	"
-	if buflisted( l:buf )
-		execute 'bd! ' . l:buf
-	endif
-
-	" With multiple matches, strip the commas from the cWORD.
-	let l:word = substitute( l:word, ',', '', 'eg' )
-
-	execute <SID>NewWindowCmd() . l:buf
-	setlocal buftype=nofile bufhidden=delete noswapfile filetype=rdoc
-	nnoremap <silent> <buffer> q :close<CR>
-
-	" Call the documentation and gather up the output
-	"
-	let l:cmd    = g:speckyRunRdocCmd . ' ' . l:word
-	let l:output = system( l:cmd )
-	call append( 0, split( l:output, "\n" ) )
-	execute 'normal gg'
-
-	" Lockdown the buffer
-	setlocal nomodifiable
-endfunction
-
-
-" }}}
-" FindSpecError( detail ) {{{
-"
-" detail:
-" 	1  -- find the next failure
-" 	-1 -- find the previous failure
-" 	0  -- expand the current failure's detail
-"
-" Convenience searches for jumping to spec failures.
-"
-function! <SID>FindSpecError( detail )
-
-	let l:specver = (exists( 'g:speckySpecVersion') && g:speckySpecVersion == 1) ? 1 : 2
-	let l:err_str = l:specver == 1 ? '(FAILED\|ERROR - \d\+)$' : 'FAILED - #\d\+)$'
-
-	if ( a:detail == 0 )
-		" Find the detailed failure text for the current failure line,
-		" and unfold it.
-		"
-		let l:orig_so = &so
-		set so=100
-		if l:specver == 1
-			call search('^' . matchstr(getline('.'),'\d\+)$') )
-		else
-			call search('^FAILURE - #' . matchstr(getline('.'),'\d\+)$') )
-		endif
-		if has('folding')
-			silent! normal za
-		endif
-		execute 'set so=' . l:orig_so
-
-	else
-		" Find the 'regular' failure line
-		"
-		if exists( 'b:err_line' )
-			call cursor( b:err_line, a:detail == -1 ? 1 : strlen(getline(b:err_line)) )
-		endif
-		call search( l:err_str, a:detail == -1 ? 'b' : '' )
-		let b:err_line = line('.')
-		nohl
-
-	endif
-endfunction
-
-
-" }}}
-" NewWindowCmd() {{{
-"
-" Return the stringified command for a new window, based on user preferences.
-"
-function! <SID>NewWindowCmd()
-	if ( ! exists('g:speckyWindowType' ) )
-		return 'tabnew '
-	endif
-
-	if ( g:speckyWindowType == 1 )
-		return 'new '
-	elseif ( g:speckyWindowType == 2 )
-		return 'vert new '
-	else
-		return 'tabnew '
-	endif
-endfunction
-
-
-" }}}
-" _formatFoldText() {{{
-"
-" Make folded failure detail visually appealing when folded.
-"
-function! _formatFoldText()
-	let l:fold = tolower( getline(v:foldstart) )
-	let l:fold = substitute( l:fold, '-', 'detail', 'e' )
-	let l:fold = '--[ ' . substitute( l:fold, ')', ' ]', 'e' )
-	return l:fold
-endfunction
-
-
-" }}}
-" s:err( msg ) "{{{
-" Notify of problems in a consistent fashion.
-"
-function! s:err( msg )
-	echohl WarningMsg|echomsg 'specky: ' . a:msg|echohl None
-endfunction " }}}
-
--- a/specky/ruby/specky_formatter.rb	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-
-require 'rspec/core/formatters/base_text_formatter'
-
-### SpeckyFormatter: A basic RSpec 2.x text formatter, to be used
-### with the 'Specky' vim plugin (or from the command line, if you
-### dig it over the default 'documentation' format!)
-###
-### rspec -r /path/to/this/specky_formatter.rb -f SpeckyFormatter specs
-###
-class SpeckyFormatter < RSpec::Core::Formatters::BaseTextFormatter
-
-	def initialize( *args )
-		super
-		@indent_level  = 0
-		@failure_index = 0
-		@failures      = []
-		@txt           = ''
-		@summary       = ''
-	end
-
-
-	########################################################################
-	### R S P E C  H O O K S
-	########################################################################
-
-	### Example group hook -- increase indentation, emit description
-	###
-	def example_group_started( example_group )
-		self.out '+', '-' * (example_group.description.length + 2), '+'
-		self.out '| ', example_group.description, ' |'
-		self.out '+', '-' * (example_group.description.length + 2), '+'
-		@indent_level += 1
-	end
-
-
-	### Example group hook -- decrease indentation
-	###
-	def example_group_finished( example_group )
-		@indent_level -= 1
-	end
-
-
-	### Called on example success
-	###
-	def example_passed( example )
-		msg = self.format_example( example )
-		msg << ')'
-		self.out msg
-	end
-
-
-	### Called on a pending example
-	###
-	def example_pending( example )
-		msg = self.format_example( example )
-		pending_msg = example.metadata[ :execution_result ][ :pending_message ]
-		msg << ", PENDING%s)" % [ ": #{pending_msg}" || '' ]
-		self.out msg
-	end
-
-
-	### Called on example failure
-	###
-	def example_failed( example )
-		@failure_index += 1
-		msg = self.format_example( example )
-		msg << ", FAILED - #%d)" % [ @failure_index ]
-		self.out msg
-
-		@failures << example
-	end
-
-
-	### Called after all examples are run.  Emit details for each failed example,
-	### for Vim to fold.
-	###
-	def dump_failures
-		self.out "\n" unless @failures.empty?
-		cwd = Regexp.new( Dir.pwd )
-		bt_regexp = /(.+?):(\d+)(|:\d+)/
-
-		@failures.each_with_index do |example, index|
-			desc      = example.metadata[ :full_description ]
-			exception = example.execution_result[ :exception ]
-			file = line = nil
-
-			# remove files that are not in within the cwd.
-			#
-			# this isn't optimal, but it does stay within specky's notion of
-			# running it from within the project directory, and makes sure we don't
-			# inadvertently display code from rspec itself.
-			#
-			bt_file = exception.backtrace.find { |line| line =~ bt_regexp && line =~ cwd }
-			file, line = $1, $2.to_i if bt_file =~ bt_regexp
-			self.out "FAILURE - #%d)" % [ index + 1 ]
-			self.out "%s:%d" % [ file, line ] if bt_file
-
-			if exception.respond_to?( :pending_fixed? ) && exception.pending_fixed?
-				self.out "%s FIXED" % [ desc ]
-				self.out "Expected pending '%s' to fail.  No error was raised." % [
-					example.metadata[ :execution_result ][ :pending_message ]
-				]
-			else
-				self.out desc
-				self.out "Failure/Error: %s" %  [ read_failed_line( exception, example).strip ]
-				exception.message.split("\n").each {|l| self.out l}
-
-				# logic taken from the base class
-				if shared_group = find_shared_group(example)
-					self.out "Shared Example Group: \"#{shared_group.metadata[:shared_group_name]}\" called from " +
-						"#{backtrace_line(shared_group.metadata[:example_group][:location])}"
-				end
-			end
-
-			self.out exception_source( file, line-1 ) if file && line
-		end
-	end
-
-
-	### Emit the source of the exception, with context lines.
-	###
-	def exception_source( file, line )
-		context = ''
-		low, high = line - 3, line + 3
-
-		File.open( file ).each_with_index do |cline, i|
-			cline.chomp!.rstrip!
-			next unless i >= low && i <= high
-			context << "  %s%4d: %s\n" % [ ( i == line ? '>>' : ' |' ), i, cline ]
-		end
-
-		return context
-
-	rescue
-		'Unable to parse exception context lines.'
-	end
-
-
-	### Emit summary data for all examples.
-	###
-	def dump_summary( duration, example_count, failure_count, pending_count )
-		succeeded = example_count - failure_count - pending_count
-		@summary << "+%s+\n" % [ '-' * 49 ]
-		@summary << "|%s-- Summary --%s|\n" % [ ' ' * 18, ' ' * 18 ]
-		@summary << "+----------+-----------+--------+---------+-------+\n"
-		@summary << "| Duration | Succeeded | Failed | Pending | Total |\n"
-		@summary << "+----------+-----------+--------+---------+-------+\n"
-
-		@summary << "| %7ss | %9s | %6s | %7s | %5s |\n" % [
-			"%0.3f" % duration, succeeded, failure_count,
-			pending_count, example_count
-		]
-
-		@summary << "+----------+-----------+--------+---------+-------+\n\n"
-	end
-
-
-	### End of run.  Dump it all out!
-	###
-	def close
-		output.puts @summary
-		output.puts @txt
-	end
-
-
-	#########
-	protected
-	#########
-
-	### Send a string to the output IO object, after indentation.
-	###
-	def out( *msg )
-		msg = msg.join
-		@txt << "%s%s\n" % [ '  ' * @indent_level, msg ]
-	end
-
-	### Format the basic example information, along with the run duration.
-	###
-	def format_example( example )
-		metadata    = example.metadata
-		duration    = metadata[ :execution_result ][ :run_time ]
-		description = metadata[ :description ]
-		return "| %s (%0.3fs" % [ description, duration ]
-	end
-end # SpeckyFormatter
-
-
-### Identical to the regular SpeckyFormatter, but it puts summary
-### information at the bottom of the screen instead of the top, and just
-### spits out rudamentary failure info.  Mimics the progress
-### formatter for status feedback
-###
-class SpeckyFormatterConsole < SpeckyFormatter
-
-	def example_passed( ex );  print '.'; end
-	def example_failed( ex );  print 'F'; super; end
-	def example_pending( ex ); print '*'; end
-
-	def close
-		puts
-		puts "Failures:" unless @failures.empty?
-		@failures.each do |test|
-			metadata = test.metadata
-			msg = "- %s\n  %s\n  %s:%d\n\n" % [
-				metadata[:full_description],
-				test.exception.message,
-				metadata[:file_path],
-				metadata[:line_number]
-			]
-			puts msg
-		end
-		output.puts @summary
-	end
-end
-
--- a/specky/snippets/rspec.snippets	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-#
-# specky: snippet file for rspec, to be used with the quite excellent
-# 'snipmate' Vim plugin by Michael Sanders <msanders42+vim@gmail.com>.
-# http://www.vim.org/scripts/script.php?script_id=2540
-#
-# $Id$
-#
-
-snippet .and and_raise()
-	.and_raise( ${1:exception}.new("${2:message}") )
-snippet .and and_return { }
-	.and_return { ${1} }
-snippet .and and_return()
-	.and_return( ${1:value} )
-snippet .and and_throw()
-	.and_throw( ${1:sym} )
-snippet .and and_yield()
-	.and_yield( ${1:values} )
-snippet .at at_least()
-	.at_least( ${1:n} ).times
-snippet .at at_most()
-	.at_most( ${1:n} ).times
-snippet .on
-	.once
-snippet .tw
-	.twice
-snippet .any
-	.any_number_of_times
-snippet des Describe subject
-	describe "${1:subject}" do
-		${2}
-	end
-snippet des Describe Type
-	describe ${1:Type} do
-		${2}
-	end
-snippet des Describe Type, description
-	describe ${1:Type}, "${2:description}" do
-		${3}
-	end
-snippet des Describe a shared group
-	describe "${1:A Shared Thing}", :shared => true do
-		${2}
-	end
-snippet it it block
-	it "${1:should do something}" do
-		${2}
-	end
-snippet it it (pending)
-	it "${1:does something}"${2}
-snippet .ex
-	.exactly( ${1:n} ).times
-snippet .w
-	.with( ${1:args} )${2}
-snippet con
-	context "${1:context}" do
-		${2}
-	end
-# this is the 'old' mock syntax (rspec 1.x)
-# use 'double' for rspec 2.x
-snippet mock
-	${1:var} = mock( "${2:mock_name}"${3:, :null_object => true} )
-	${4}
-snippet dou
-	${1:var} = double( "${2:double_name}" )${3:.as_null_object}
-	${4}
-snippet st
-	stub!( :${1:expectation} ).with( ${2:args} ).and_return( ${3} )
-snippet bef Before each test
-	before( :each ) do
-		${1}
-	end
-snippet bef Before all tests
-	before( :all ) do
-		${1}
-	end
-snippet aft After each test
-	after( :each ) do
-		${1}
-	end
-snippet aft After all tests
-	after( :all ) do
-		${1}
-	end
-snippet sh=
-	${1:target}.should == ${2:value}
-	${3}
-snippet shn=
-	${1:target}.should_not == ${2:value}
-	${3}
-snippet she
-	${1:target}.should equal( ${2:value} )
-	${3}
-snippet shne
-	${1:target}.should_not equal( ${2:value} )
-	${3}
-snippet shm Should contain
-	${1:target}.should =~ /${2:regexp}/
-	${3}
-snippet shnm 
-	${1:target}.should_not =~ /${2:regexp}/
-	${3}
-snippet shm Should match
-	${1:target}.should match( /${2:regexp}/ )${3}
-snippet shb
-	${1:target}.should be( ${2:result} )
-	${3}
-snippet shnb
-	${1:target}.should_not be( ${2:result} )
-	${3}
-snippet shbko
-	${1:target}.should be_a_kind_of( ${2:klass} )
-	${3}
-snippet shnbko
-	${1:target}.should_not be_a_kind_of( ${2:klass} )
-	${3}
-snippet shbio
-	${1:target}.should be_instance_of( ${2:klass} )
-	${3}
-snippet shnbio
-	${1:target}.should_not be_instance_of( ${2:klass} )
-	${3}
-snippet shbc
-	${1:target}.should be_close( ${2:result}, ${3:tolerance} )
-	${4}
-snippet shnbc
-	${1:target}.should_not be_close( ${2:result}, ${3:tolerance} )
-	${4}
-snippet shh
-	${1:target}.should have( ${2:num} ).${3:things}
-	${4}
-snippet shhal
-	${1:target}.should have_at_least( ${2:num} ).${3:things}
-	${4}
-snippet shham
-	${1:target}.should have_at_most( ${2:num} ).${3:things}
-	${4}
-snippet shbp
-	${1:target}.should ${2:be_${3:predicate}} ${4}
-snippet shnbp
-	${1:target}.should_not ${2:be_${3:predicate}} ${4}
-snippet exre
-	expect { ${1} }.to raise_exception( ${2:ErrorClass}, /${3:message match}/i )
-	${4}
-snippet exnre
-	expect { ${1} }.to_not raise_exception( ${2:ErrorClass} )
-	${3}
-snippet shre
-	lambda { ${1} }.should raise_exception( ${2:ErrorClass}, /${3:message match}/i )
-	${4}
-snippet shnre
-	lambda { ${1} }.should_not raise_exception( ${2:ErrorClass} )
-	${3}
-snippet shr
-	${1:mock}.should_receive( :${2:message} )${3}
-snippet shnr
-	${1:mock}.should_not_receive( :${2:message} )${3}
-snippet shrt
-	${1:target}.should respond_to( :${2:sym} )
-snippet shnrt
-	${1:target}.should_not respond_to( :${2:sym} )
-snippet shbl
-	it_should_behave_like "${1:shared behavior}"
-	${2}
-snippet sim
-	def ${1:matcher_method}( expected )
-		simple_matcher do |given, matcher|
-			matcher.description = "${2:verb} with #{expected.inspect}"
-			matcher.failure_message = "expected #{given.inspect} to $2 with #{expected.inspect}"
-			matcher.negative_failure_message = "expected #{given.inspect} not to $2 with #{expected.inspect}"
-			given.${3:...checks something and returns a boolean}
-		end
-	end
--- a/specky/syntax/rdoc.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-"
-" specky: syntax highlighting for 'rdoc' output
-" $Id$
-
-
-" Separator lines
-"
-syntax match rdocSpeckyLines /^------\+\s\?/ contains=rdocSpeckyTarget,rdocSpeckyMultiples
-highlight link rdocSpeckyLines Comment
-
-" The class/method that we're reading
-"
-syntax match rdocSpeckyTarget / .\+/hs=s+1 contained
-highlight link rdocSpeckyTarget Underlined
-
-" When there are multiple matches to choose from.
-" This is only output by fri.
-"
-syntax match rdocSpeckyMultiples / Multiple choices/hs=s+1 contained
-highlight link rdocSpeckyMultiples WarningMsg
-
-" Secondary headers
-"
-syntax region rdocSpeckyHeader start="^\S\+.\+:$\n-\+" end="-$" keepend contains=rdocSpeckyHeaderLine
-highlight link rdocSpeckyHeader Question
-
-" Secondary header lines
-"
-syntax match rdocSpeckyHeaderLine /^-\+$/ contained 
-highlight link rdocSpeckyHeaderLine NonText
-
-" Remove the formatting characters from the display
-"
-highlight link rdocSpeckySpecials NonText
-
-" _word_ --> italic
-"
-syntax region rdocSpeckyItalic matchgroup=rdocSpeckySpecials start=" _" end="_"
-highlight link rdocSpeckyItalic Special
-
-" *word* --> bold
-"
-syntax region rdocSpeckBold matchgroup=rdocSpeckySpecials start=" \*" end="\*"
-highlight link rdocSpeckyBold Constant
-
-" +word+ --> typewriter
-"
-syntax region rdocSpeckyType matchgroup=rdocSpeckySpecials start=" +" end="+"
-highlight link rdocSpeckyType Identifier
-
-let b:current_syntax = "rdoc"
-
--- a/specky/syntax/rspec.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-"
-" specky: syntax highlighting for rspec files.
-" This includes keywords for both rspec 1.x and rspec 2.x.
-" $Id$
-"
-
-runtime! syntax/ruby.vim
-unlet b:current_syntax
-
-syntax keyword rspecGroupMethods context describe example it its let it_should_behave_like shared_examples_for subject it_behaves_like pending specify
-highlight link rspecGroupMethods Type
-
-syntax keyword rspecBeforeAndAfter after after_suite_parts append_after append_before before before_suite_parts prepend_after prepend_before around
-highlight link rspecBeforeAndAfter Statement
-
-syntax keyword rspecMocks double mock stub stub_chain
-highlight link rspecMocks Constant
-
-syntax keyword rspecMockMethods and_raise and_return and_throw and_yield build_child called_max_times expected_args invoke matches
-highlight link rspecMockMethods Function
-
-syntax keyword rspecKeywords should should_not should_not_receive should_receive
-highlight link rspecKeywords Constant
-
-syntax keyword rspecMatchers be change eql equal exist expect have have_at_least have_at_most have_exactly include match matcher raise_error raise_exception respond_to satisfy throw_symbol to to_not when wrap_expectation
-syntax match rspecMatchers /\<\(be\|have\)_\w\+\>/
-highlight link rspecMatchers Function
-
-syntax keyword rspecMessageExpectation advise any_args any_number_of_times anything at_least at_most exactly expected_messages_received generate_error hash_including hash_not_including ignoring_args instance_of matches_at_least_count matches_at_most_count matches_exact_count matches_name_but_not_args negative_expectation_for never no_args once ordered similar_messages times twice verify_messages_received with 
-highlight link rspecMessageExpectation Function
-
-let b:current_syntax = "rspec"
-
--- a/specky/syntax/specrun.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-"
-" specky: syntax highlighting for rspec test output, using the
-" custom specky formatter. (rspec 2.x)
-" $Id$
-"
-
-if has("folding")
-  setlocal foldmethod=syntax
-endif
-
-" Command line as it was called, inserted by Specky
-syntax match specSpeckyCmd /^Output of: .*/
-
-" Pending specs that somehow pass
-syntax keyword specCallout FIXED
-
-" Passed specs
-syntax match specPassed /.*(\d\+.\d\+s)/ contains=specDuration,specBoxLine
-syntax keyword specPassedKeyword Succeeded
-
-" Pending specs
-syntax match specPending /.*PENDING: .*)$/ contains=specDuration,specBoxLine
-syntax keyword specPendingKeyword Pending
-
-" Failed specs
-syntax match specFailed /.*FAILED - #\d\+)/ contains=specDuration,specBoxLine
-syntax keyword specFailedKeyword Failed
-
-" Failure details
-syntax region specFailedDetails start="^FAILURE - #\d\+)" end="^$" fold contains=specCallout,specErrorLine
-syntax match specErrorLine /^  >>/
-
-
-" Boxes
-syntax match specBox /^\(\s\+\)\?\(+[+-]\+\||.*|\)$/ contains=specFailedKeyword,specDurationKeyword,specPendingKeyword,specPassedKeyword,specBoxContent
-syntax match specBoxContent /[a-zA-Z0-9]\+/ contained
-syntax match specBoxLine /^\(\s\+\)\?|/ contained
-
-" Spec timing
-" syntax match specDuration /\d\+\.\d\+s/ contained
-" syntax keyword specDurationKeyword Duration
-
-highlight def link specSpeckyCmd Question
-highlight def link specCallout Todo
-highlight def link specPassed MoreMsg
-highlight def link specPassedKeyword specPassed
-highlight def link specPending Function
-highlight def link specPendingKeyword specPending
-highlight def link specFailed WarningMsg
-highlight def link specFailedKeyword specFailed
-highlight def link specFailedDetails specFailed
-highlight def link specDuration Normal
-highlight def link specBox LineNr
-highlight def link specBoxContent Constant
-highlight def link specBoxLine LineNr
-highlight def link specErrorLine ErrorMsg
-
-let b:current_syntax = "specrun"
-
--- a/specky/syntax/specrun1.vim	Wed Jan 02 09:14:17 2013 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-"
-" specky: syntax highlighting for the 'spec' script output (rspec 1.x)
-" $Id$
-"
-
-if has("folding")
-  setlocal foldmethod=syntax
-endif
-
-" Command line as it was called, inserted by Specky
-"
-syntax match specSpeckyCmd /^Output of: .*/
-highlight link specSpeckyCmd Question
-"syntax match WarningMsg /\.\./
-
-" Plain output block (...P..F...)
-"
-syntax region specPlain start="^[\.PF]\+" end="^$" contains=specFailedPlain,specPendingPlain
-highlight link specPlain MoreMsg
-
-" Passed specs (specdoc output)
-"
-syntax match specPassed /^- .*/ contains=specFailed,specPending
-highlight link specPassed MoreMsg
-
-" Pending specs (specdoc output)
-"
-syntax match specPending /.*PENDING: .*)$/ contained
-highlight link specPending Function
-"
-" (Plain output)
-syntax match specPendingPlain /P/ contained
-highlight link specPendingPlain Function
-
-" Failed specs (specdoc output)
-"
-syntax match specFailed /.*\(FAILED\|ERROR\) - \d\+)/ contained
-highlight link specFailed WarningMsg
-"
-" (Plain output)
-syntax match specFailedPlain /F/ contained
-highlight link specFailedPlain WarningMsg
-
-" Warning details
-"
-syntax region specFailedDetails start="^\d\+)" end="^$" fold
-highlight link specFailedDetails WarningMsg
-
-" Pending specs
-"
-syntax region specPendingDetails start="^Pending:" end="^$" fold
-highlight link specPendingDetails Function
-
-" Timing information
-"
-syntax match specTimedRun /^Finished in.*/
-highlight link specTimedRun Question
-
-" Status summary
-"
-syntax match specExamplesTotal /^\d\+ examples, .\+/ contains=specTotalFailed,specNoFailures,specTotalPending
-highlight link specExamplesTotal Special
-"
-syntax match specTotalFailed /\d\+ failure\%[s]/ contained
-highlight link specTotalFailed WarningMsg
-"
-syntax match specTotalPending /\d pending/ contained
-highlight link specTotalPending Function
-"
-syntax match specNoFailures /0 failures/ contained
-highlight link specNoFailures MoreMsg
-
-
-let b:current_syntax = "specrun"
-