diff options
Diffstat (limited to 'indent/eruby.vim')
-rw-r--r-- | indent/eruby.vim | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/indent/eruby.vim b/indent/eruby.vim index 3bae537e..6fd76600 100644 --- a/indent/eruby.vim +++ b/indent/eruby.vim @@ -1,112 +1,3 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim indent file -" Language: eRuby -" Maintainer: Tim Pope <vimNOSPAM@tpope.org> -" URL: https://github.com/vim-ruby/vim-ruby -" Release Coordinator: Doug Kearns <dougkearns@gmail.com> - -if exists("b:did_indent") - finish -endif - -runtime! indent/ruby.vim -unlet! b:did_indent -setlocal indentexpr= - -if exists("b:eruby_subtype") - exe "runtime! indent/".b:eruby_subtype.".vim" -else - runtime! indent/html.vim -endif -unlet! b:did_indent - -" Force HTML indent to not keep state. -let b:html_indent_usestate = 0 - -if &l:indentexpr == '' - if &l:cindent - let &l:indentexpr = 'cindent(v:lnum)' - else - let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))' - endif -endif -let b:eruby_subtype_indentexpr = &l:indentexpr - -let b:did_indent = 1 - -setlocal indentexpr=GetErubyIndent() -setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when - -" Only define the function once. -if exists("*GetErubyIndent") - finish -endif - -" this file uses line continuations -let s:cpo_sav = &cpo -set cpo&vim - -function! GetErubyIndent(...) - " The value of a single shift-width - let sw = shiftwidth() - - if a:0 && a:1 == '.' - let v:lnum = line('.') - elseif a:0 && a:1 =~ '^\d' - let v:lnum = a:1 - endif - let vcol = col('.') - call cursor(v:lnum,1) - let inruby = searchpair('<%','','%>','W') - call cursor(v:lnum,vcol) - if inruby && getline(v:lnum) !~ '^<%\|^\s*[-=]\=%>' - let ind = GetRubyIndent(v:lnum) - else - exe "let ind = ".b:eruby_subtype_indentexpr - - " Workaround for Andy Wokula's HTML indent. This should be removed after - " some time, since the newest version is fixed in a different way. - if b:eruby_subtype_indentexpr =~# '^HtmlIndent(' - \ && exists('b:indent') - \ && type(b:indent) == type({}) - \ && has_key(b:indent, 'lnum') - " Force HTML indent to not keep state - let b:indent.lnum = -1 - endif - endif - let lnum = prevnonblank(v:lnum-1) - let line = getline(lnum) - let cline = getline(v:lnum) - if cline =~# '^\s*<%[-=]\=\s*\%(}\|end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%([-=]\=%>\|$\)' - let ind = ind - sw - endif - if line =~# '\S\s*<%[-=]\=\s*\%(}\|end\).\{-\}\s*\%([-=]\=%>\|$\)' - let ind = ind - sw - endif - if line =~# '\%({\|\<do\)\%(\s*|[^|]*|\)\=\s*[-=]\=%>' - let ind = ind + sw - elseif line =~# '<%[-=]\=\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>' - let ind = ind + sw - endif - if line =~# '^\s*<%[=#-]\=\s*$' && cline !~# '^\s*end\>' - let ind = ind + sw - endif - if line !~# '^\s*<%' && line =~# '%>\s*$' && line !~# '^\s*end\>' - let ind = ind - sw - endif - if cline =~# '^\s*[-=]\=%>\s*$' - let ind = ind - sw - endif - return ind -endfunction - -let &cpo = s:cpo_sav -unlet! s:cpo_sav - -" vim:set sw=2 sts=2 ts=8 noet: - -endif if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'ruby') == -1 " Vim indent file |