<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>autoload/rubycomplete.vim</filename>
    </added>
    <added>
      <filename>compiler/eruby.vim</filename>
    </added>
    <added>
      <filename>compiler/ruby.vim</filename>
    </added>
    <added>
      <filename>compiler/rubyunit.vim</filename>
    </added>
    <added>
      <filename>ftdetect/ruby.vim</filename>
    </added>
    <added>
      <filename>ftplugin/eruby.vim</filename>
    </added>
    <added>
      <filename>indent/eruby.vim</filename>
    </added>
    <added>
      <filename>indent/ruby.vim</filename>
    </added>
    <added>
      <filename>syntax/eruby.vim</filename>
    </added>
    <added>
      <filename>syntax/ruby.vim</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,230 @@
-setl sts=2
-setl sw=2
-setl et
+&quot; Vim filetype plugin
+&quot; Language:		Ruby
+&quot; Maintainer:		Gavin Sinclair &lt;gsinclair at gmail.com&gt;
+&quot; Info:			$Id: ruby.vim,v 1.39 2007/05/06 16:38:40 tpope Exp $
+&quot; URL:			http://vim-ruby.rubyforge.org
+&quot; Anon CVS:		See above site
+&quot; Release Coordinator:  Doug Kearns &lt;dougkearns@gmail.com&gt;
+&quot; ----------------------------------------------------------------------------
+&quot;
+&quot; Original matchit support thanks to Ned Konz.  See his ftplugin/ruby.vim at
+&quot;   http://bike-nomad.com/vim/ruby.vim.
+&quot; ----------------------------------------------------------------------------
+
+&quot; Only do this when not done yet for this buffer
+if (exists(&quot;b:did_ftplugin&quot;))
+  finish
+endif
+let b:did_ftplugin = 1
+
+let s:cpo_save = &amp;cpo
+set cpo&amp;vim
+
+if has(&quot;gui_running&quot;) &amp;&amp; !has(&quot;gui_win32&quot;)
+  setlocal keywordprg=ri\ -T
+else
+  setlocal keywordprg=ri
+endif
+
+&quot; Matchit support
+if exists(&quot;loaded_matchit&quot;) &amp;&amp; !exists(&quot;b:match_words&quot;)
+  let b:match_ignorecase = 0
+
+  let b:match_words =
+	\ '\&lt;\%(if\|unless\|case\|while\|until\|for\|do\|class\|module\|def\|begin\)\&gt;=\@!' .
+	\ ':' .
+	\ '\&lt;\%(else\|elsif\|ensure\|when\|rescue\|break\|redo\|next\|retry\)\&gt;' .
+	\ ':' .
+	\ '\&lt;end\&gt;' .
+	\ ',{:},\[:\],(:)'
+
+  let b:match_skip =
+	\ &quot;synIDattr(synID(line('.'),col('.'),0),'name') =~ '&quot; .
+	\ &quot;\\&lt;ruby\\%(String\\|StringDelimiter\\|ASCIICode\\|Escape\\|&quot; .
+	\ &quot;Interpolation\\|NoInterpolation\\|Comment\\|Documentation\\|&quot; .
+	\ &quot;ConditionalModifier\\|RepeatModifier\\|OptionalDo\\|&quot; .
+	\ &quot;Function\\|BlockArgument\\|KeywordAsMethod\\|ClassVariable\\|&quot; .
+	\ &quot;InstanceVariable\\|GlobalVariable\\|Symbol\\)\\&gt;'&quot;
+endif
+
+setlocal formatoptions-=t formatoptions+=croql
+
+setlocal include=^\\s*\\&lt;\\(load\\\|\w*require\\)\\&gt;
+setlocal includeexpr=substitute(substitute(v:fname,'::','/','g'),'$','.rb','')
+setlocal suffixesadd=.rb
+
+if exists(&quot;&amp;ofu&quot;) &amp;&amp; has(&quot;ruby&quot;)
+  setlocal omnifunc=rubycomplete#Complete
+endif
+
+&quot; To activate, :set ballooneval
+if has('balloon_eval') &amp;&amp; exists('+balloonexpr')
+  setlocal balloonexpr=RubyBalloonexpr()
+endif
+
+
+&quot; TODO:
+&quot;setlocal define=^\\s*def
+
+setlocal comments=:#
+setlocal commentstring=#\ %s
+
+if !exists(&quot;s:rubypath&quot;)
+  if has(&quot;ruby&quot;) &amp;&amp; has(&quot;win32&quot;)
+    ruby VIM::command( 'let s:rubypath = &quot;%s&quot;' % ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,}) )
+    let s:rubypath = '.,' . substitute(s:rubypath, '\%(^\|,\)\.\%(,\|$\)', ',,', '')
+  elseif executable(&quot;ruby&quot;)
+    let s:code = &quot;print ($: + begin; require %q{rubygems}; Gem.all_load_paths.sort.uniq; rescue LoadError; []; end).join(%q{,})&quot;
+    if &amp;shellxquote == &quot;'&quot;
+      let s:rubypath = system('ruby -e &quot;' . s:code . '&quot;')
+    else
+      let s:rubypath = system(&quot;ruby -e '&quot; . s:code . &quot;'&quot;)
+    endif
+    let s:rubypath = '.,' . substitute(s:rubypath, '\%(^\|,\)\.\%(,\|$\)', ',,', '')
+  else
+    &quot; If we can't call ruby to get its path, just default to using the
+    &quot; current directory and the directory of the current file.
+    let s:rubypath = &quot;.,,&quot;
+  endif
+endif
+
+let &amp;l:path = s:rubypath
+
+if has(&quot;gui_win32&quot;) &amp;&amp; !exists(&quot;b:browsefilter&quot;)
+  let b:browsefilter = &quot;Ruby Source Files (*.rb)\t*.rb\n&quot; .
+                     \ &quot;All Files (*.*)\t*.*\n&quot;
+endif
+
+let b:undo_ftplugin = &quot;setl fo&lt; inc&lt; inex&lt; sua&lt; def&lt; com&lt; cms&lt; path&lt; kp&lt;&quot;
+      \.&quot;| unlet! b:browsefilter b:match_ignorecase b:match_words b:match_skip&quot;
+      \.&quot;| if exists('&amp;ofu') &amp;&amp; has('ruby') | setl ofu&lt; | endif&quot;
+      \.&quot;| if has('balloon_eval') &amp;&amp; exists('+bexpr') | setl bexpr&lt; | endif&quot;
+
+if !exists(&quot;g:no_plugin_maps&quot;) &amp;&amp; !exists(&quot;g:no_ruby_maps&quot;)
+
+  noremap &lt;silent&gt; &lt;buffer&gt; [m :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;def\&gt;','rubyDefine','b')&lt;CR&gt;
+  noremap &lt;silent&gt; &lt;buffer&gt; ]m :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;def\&gt;','rubyDefine','')&lt;CR&gt;
+  noremap &lt;silent&gt; &lt;buffer&gt; [M :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;end\&gt;','rubyDefine','b')&lt;CR&gt;
+  noremap &lt;silent&gt; &lt;buffer&gt; ]M :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;end\&gt;','rubyDefine','')&lt;CR&gt;
+
+  noremap &lt;silent&gt; &lt;buffer&gt; [[ :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;\%(class\&lt;Bar&gt;module\)\&gt;','rubyModule\&lt;Bar&gt;rubyClass','b')&lt;CR&gt;
+  noremap &lt;silent&gt; &lt;buffer&gt; ]] :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;\%(class\&lt;Bar&gt;module\)\&gt;','rubyModule\&lt;Bar&gt;rubyClass','')&lt;CR&gt;
+  noremap &lt;silent&gt; &lt;buffer&gt; [] :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;end\&gt;','rubyModule\&lt;Bar&gt;rubyClass','b')&lt;CR&gt;
+  noremap &lt;silent&gt; &lt;buffer&gt; ][ :&lt;C-U&gt;call &lt;SID&gt;searchsyn('\&lt;end\&gt;','rubyModule\&lt;Bar&gt;rubyClass','')&lt;CR&gt;
+
+  let b:undo_ftplugin = b:undo_ftplugin
+        \.&quot;| sil! exe 'unmap &lt;buffer&gt; [[' | sil! exe 'unmap &lt;buffer&gt; ]]' | sil! exe 'unmap &lt;buffer&gt; []' | sil! exe 'unmap &lt;buffer&gt; ]['&quot;
+        \.&quot;| sil! exe 'unmap &lt;buffer&gt; [m' | sil! exe 'unmap &lt;buffer&gt; ]m' | sil! exe 'unmap &lt;buffer&gt; [M' | sil! exe 'unmap &lt;buffer&gt; ]M'&quot;
+endif
+
+let &amp;cpo = s:cpo_save
+unlet s:cpo_save
+
+if exists(&quot;g:did_ruby_ftplugin_functions&quot;)
+  finish
+endif
+let g:did_ruby_ftplugin_functions = 1
+
+function! RubyBalloonexpr()
+  if !exists('s:ri_found')
+    let s:ri_found = executable('ri')
+  endif
+  if s:ri_found
+    let line = getline(v:beval_lnum)
+    let b = matchstr(strpart(line,0,v:beval_col),'\%(\w\|[:.]\)*$')
+    let a = substitute(matchstr(strpart(line,v:beval_col),'^\w*\%([?!]\|\s*=\)\?'),'\s\+','','g')
+    let str = b.a
+    let before = strpart(line,0,v:beval_col-strlen(b))
+    let after  = strpart(line,v:beval_col+strlen(a))
+    if str =~ '^\.'
+      let str = substitute(str,'^\.','#','g')
+      if before =~ '\]\s*$'
+        let str = 'Array'.str
+      elseif before =~ '}\s*$'
+        &quot; False positives from blocks here
+        let str = 'Hash'.str
+      elseif before =~ &quot;[\&quot;'`]\\s*$&quot; || before =~ '\$\d\+\s*$'
+        let str = 'String'.str
+      elseif before =~ '\$\d\+\.\d\+\s*$'
+        let str = 'Float'.str
+      elseif before =~ '\$\d\+\s*$'
+        let str = 'Integer'.str
+      elseif before =~ '/\s*$'
+        let str = 'Regexp'.str
+      else
+        let str = substitute(str,'^#','.','')
+      endif
+    endif
+    let str = substitute(str,'.*\.\s*to_f\s*\.\s*','Float#','')
+    let str = substitute(str,'.*\.\s*to_i\%(nt\)\=\s*\.\s*','Integer#','')
+    let str = substitute(str,'.*\.\s*to_s\%(tr\)\=\s*\.\s*','String#','')
+    let str = substitute(str,'.*\.\s*to_sym\s*\.\s*','Symbol#','')
+    let str = substitute(str,'.*\.\s*to_a\%(ry\)\=\s*\.\s*','Array#','')
+    let str = substitute(str,'.*\.\s*to_proc\s*\.\s*','Proc#','')
+    if str !~ '^\w'
+      return ''
+    endif
+    silent! let res = substitute(system(&quot;ri -f simple -T \&quot;&quot;.str.'&quot;'),'\n$','','')
+    if res =~ '^Nothing known about' || res =~ '^Bad argument:' || res =~ '^More than one method'
+      return ''
+    endif
+    return res
+  else
+    return &quot;&quot;
+  endif
+endfunction
+
+function! s:searchsyn(pattern,syn,flags)
+    norm! m'
+    let i = 0
+    let cnt = v:count ? v:count : 1
+    while i &lt; cnt
+        let i = i + 1
+        let line = line('.')
+        let col  = col('.')
+        let pos = search(a:pattern,'W'.a:flags)
+        while pos != 0 &amp;&amp; s:synname() !~# a:syn
+            let pos = search(a:pattern,'W'.a:flags)
+        endwhile
+        if pos == 0
+            call cursor(line,col)
+            return
+        endif
+    endwhile
+endfunction
+
+function! s:synname()
+    return synIDattr(synID(line('.'),col('.'),0),'name')
+endfunction
+
+&quot;
+&quot; Instructions for enabling &quot;matchit&quot; support:
+&quot;
+&quot; 1. Look for the latest &quot;matchit&quot; plugin at
+&quot;
+&quot;         http://www.vim.org/scripts/script.php?script_id=39
+&quot;
+&quot;    It is also packaged with Vim, in the $VIMRUNTIME/macros directory.
+&quot;
+&quot; 2. Copy &quot;matchit.txt&quot; into a &quot;doc&quot; directory (e.g. $HOME/.vim/doc).
+&quot;
+&quot; 3. Copy &quot;matchit.vim&quot; into a &quot;plugin&quot; directory (e.g. $HOME/.vim/plugin).
+&quot;
+&quot; 4. Ensure this file (ftplugin/ruby.vim) is installed.
+&quot;
+&quot; 5. Ensure you have this line in your $HOME/.vimrc:
+&quot;         filetype plugin on
+&quot;
+&quot; 6. Restart Vim and create the matchit documentation:
+&quot;
+&quot;         :helptags ~/.vim/doc
+&quot;
+&quot;    Now you can do &quot;:help matchit&quot;, and you should be able to use &quot;%&quot; on Ruby
+&quot;    keywords.  Try &quot;:echo b:match_words&quot; to be sure.
+&quot;
+&quot; Thanks to Mark J. Reed for the instructions.  See &quot;:help vimrc&quot; for the
+&quot; locations of plugin directories, etc., as there are several options, and it
+&quot; differs on Windows.  Email gsinclair@soyabean.com.au if you need help.
+&quot;
+
+&quot; vim: nowrap sw=2 sts=2 ts=8 ff=unix:</diff>
      <filename>ftplugin/ruby.vim</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f5ca9eaccdc4943693262af89eab492bbdd4b76e</id>
    </parent>
  </parents>
  <author>
    <name>Martin Grenfell</name>
    <email>martin_grenfell@msn.com</email>
  </author>
  <url>http://github.com/jeffrydegrande/vimfiles/commit/0ba2fc91d671db9e1a6e0033203116c432ec4d52</url>
  <id>0ba2fc91d671db9e1a6e0033203116c432ec4d52</id>
  <committed-date>2008-06-02T15:58:08-07:00</committed-date>
  <authored-date>2008-06-02T15:58:08-07:00</authored-date>
  <message>add the vim-ruby gem files</message>
  <tree>cc6a34d3a620292a875917fac4944e5a0a96e3c3</tree>
  <committer>
    <name>Martin Grenfell</name>
    <email>martin_grenfell@msn.com</email>
  </committer>
</commit>
