diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2014-12-09 23:09:20 +0100 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2014-12-09 23:09:20 +0100 |
commit | 4071c094c69ba8ef716f8048cac8415fc7d96e26 (patch) | |
tree | ccf17bae58ed7655d62a7bce6104f31480976dc6 /indent/ruby.vim | |
parent | 617b01a5b6aa3cadb25b2ff8639e330cfc6cf3c1 (diff) | |
download | vim-polyglot-4071c094c69ba8ef716f8048cac8415fc7d96e26.tar.gz vim-polyglot-4071c094c69ba8ef716f8048cac8415fc7d96e26.zip |
Updatev1.10.4
Diffstat (limited to 'indent/ruby.vim')
-rw-r--r-- | indent/ruby.vim | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/indent/ruby.vim b/indent/ruby.vim index f2059982..1acde808 100644 --- a/indent/ruby.vim +++ b/indent/ruby.vim @@ -369,6 +369,13 @@ function GetRubyIndent(...) " 3.1. Setup {{{2 " ---------- + " The value of a single shift-width + if exists('*shiftwidth') + let sw = shiftwidth() + else + let sw = &sw + endif + " For the current line, use the first argument if given, else v:lnum let clnum = a:0 ? a:1 : v:lnum @@ -388,7 +395,7 @@ function GetRubyIndent(...) if s:Match(clnum, s:access_modifier_regex) let class_line = s:FindContainingClass() if class_line > 0 - return indent(class_line) + &sw + return indent(class_line) + sw endif endif elseif g:ruby_indent_access_modifier_style == 'outdent' @@ -458,7 +465,7 @@ function GetRubyIndent(...) " If the current line starts with a leading operator, add a level of indent. if s:Match(clnum, s:leading_operator_regex) - return indent(s:GetMSL(clnum)) + &sw + return indent(s:GetMSL(clnum)) + sw endif " 3.3. Work on the previous line. {{{2 @@ -485,23 +492,23 @@ function GetRubyIndent(...) " If the previous line was a private/protected keyword, add a " level of indent. if s:Match(lnum, s:indent_access_modifier_regex) - return indent(lnum) + &sw + return indent(lnum) + sw endif elseif g:ruby_indent_access_modifier_style == 'outdent' " If the previous line was a private/protected/public keyword, add " a level of indent, since the keyword has been out-dented. if s:Match(lnum, s:access_modifier_regex) - return indent(lnum) + &sw + return indent(lnum) + sw endif endif if s:Match(lnum, s:continuable_regex) && s:Match(lnum, s:continuation_regex) - return indent(s:GetMSL(lnum)) + &sw + &sw + return indent(s:GetMSL(lnum)) + sw + sw endif " If the previous line ended with a block opening, add a level of indent. if s:Match(lnum, s:block_regex) - return indent(s:GetMSL(lnum)) + &sw + return indent(s:GetMSL(lnum)) + sw endif " If the previous line started with a leading operator, use its MSL's level @@ -512,7 +519,7 @@ function GetRubyIndent(...) " If the previous line ended with the "*" of a splat, add a level of indent if line =~ s:splat_regex - return indent(lnum) + &sw + return indent(lnum) + sw endif " If the previous line contained unclosed opening brackets and we are still @@ -527,20 +534,20 @@ function GetRubyIndent(...) if opening.pos != -1 if opening.type == '(' && searchpair('(', '', ')', 'bW', s:skip_expr) > 0 if col('.') + 1 == col('$') - return ind + &sw + return ind + sw else return virtcol('.') endif else let nonspace = matchend(line, '\S', opening.pos + 1) - 1 - return nonspace > 0 ? nonspace : ind + &sw + return nonspace > 0 ? nonspace : ind + sw endif elseif closing.pos != -1 call cursor(lnum, closing.pos + 1) normal! % if s:Match(line('.'), s:ruby_indent_keywords) - return indent('.') + &sw + return indent('.') + sw else return indent('.') endif @@ -569,7 +576,7 @@ function GetRubyIndent(...) let col = s:Match(lnum, s:ruby_indent_keywords) if col > 0 call cursor(lnum, col) - let ind = virtcol('.') - 1 + &sw + let ind = virtcol('.') - 1 + sw " TODO: make this better (we need to count them) (or, if a searchpair " fails, we know that something is lacking an end and thus we indent a " level @@ -606,9 +613,9 @@ function GetRubyIndent(...) " TODO: this does not take into account contrived things such as " module Foo; class Bar; end if s:Match(lnum, s:ruby_indent_keywords) - let ind = msl_ind + &sw + let ind = msl_ind + sw if s:Match(lnum, s:end_end_regex) - let ind = ind - &sw + let ind = ind - sw endif return ind endif @@ -617,7 +624,7 @@ function GetRubyIndent(...) " closing bracket, indent one extra level. if s:Match(lnum, s:non_bracket_continuation_regex) && !s:Match(lnum, '^\s*\([\])}]\|end\)') if lnum == p_lnum - let ind = msl_ind + &sw + let ind = msl_ind + sw else let ind = msl_ind endif |