Mercurial > vim
annotate runtime/indent/eruby.vim @ 11518:63b0b7b79b25
Update runtime files.
commit https://github.com/vim/vim/commit/3ec574f2b549f456f664f689d6da36dc5719aeb9
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 13 18:12:01 2017 +0200
Update runtime files.
Includes changing &sw to shiftwidth() for all indent scripts.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 13 Jun 2017 18:15:04 +0200 |
parents | 43efa4f5a8ea |
children | f0f06837a699 |
rev | line source |
---|---|
532 | 1 " Vim indent file |
1121 | 2 " Language: eRuby |
2225 | 3 " Maintainer: Tim Pope <vimNOSPAM@tpope.org> |
4869 | 4 " URL: https://github.com/vim-ruby/vim-ruby |
831 | 5 " Release Coordinator: Doug Kearns <dougkearns@gmail.com> |
532 | 6 |
7 if exists("b:did_indent") | |
8 finish | |
9 endif | |
10 | |
1121 | 11 runtime! indent/ruby.vim |
12 unlet! b:did_indent | |
1668 | 13 setlocal indentexpr= |
1121 | 14 |
1200 | 15 if exists("b:eruby_subtype") |
16 exe "runtime! indent/".b:eruby_subtype.".vim" | |
17 else | |
18 runtime! indent/html.vim | |
19 endif | |
1121 | 20 unlet! b:did_indent |
21 | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
22 " Force HTML indent to not keep state. |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
23 let b:html_indent_usestate = 0 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
24 |
1200 | 25 if &l:indentexpr == '' |
26 if &l:cindent | |
27 let &l:indentexpr = 'cindent(v:lnum)' | |
28 else | |
29 let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))' | |
30 endif | |
31 endif | |
32 let b:eruby_subtype_indentexpr = &l:indentexpr | |
33 | |
1121 | 34 let b:did_indent = 1 |
35 | |
1200 | 36 setlocal indentexpr=GetErubyIndent() |
1121 | 37 setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when |
38 | |
39 " Only define the function once. | |
40 if exists("*GetErubyIndent") | |
41 finish | |
42 endif | |
831 | 43 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
44 " this file uses line continuations |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
45 let s:cpo_sav = &cpo |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
46 set cpo&vim |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
47 |
1668 | 48 function! GetErubyIndent(...) |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
49 " The value of a single shift-width |
11518 | 50 let sw = shiftwidth() |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
51 |
1668 | 52 if a:0 && a:1 == '.' |
53 let v:lnum = line('.') | |
54 elseif a:0 && a:1 =~ '^\d' | |
55 let v:lnum = a:1 | |
56 endif | |
1121 | 57 let vcol = col('.') |
1200 | 58 call cursor(v:lnum,1) |
1620 | 59 let inruby = searchpair('<%','','%>','W') |
1200 | 60 call cursor(v:lnum,vcol) |
4869 | 61 if inruby && getline(v:lnum) !~ '^<%\|^\s*[-=]\=%>' |
62 let ind = GetRubyIndent(v:lnum) | |
1121 | 63 else |
1200 | 64 exe "let ind = ".b:eruby_subtype_indentexpr |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
65 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
66 " Workaround for Andy Wokula's HTML indent. This should be removed after |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
67 " some time, since the newest version is fixed in a different way. |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
68 if b:eruby_subtype_indentexpr =~# '^HtmlIndent(' |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
69 \ && exists('b:indent') |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
70 \ && type(b:indent) == type({}) |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
71 \ && has_key(b:indent, 'lnum') |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
72 " Force HTML indent to not keep state |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
73 let b:indent.lnum = -1 |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
74 endif |
1121 | 75 endif |
1200 | 76 let lnum = prevnonblank(v:lnum-1) |
1121 | 77 let line = getline(lnum) |
1200 | 78 let cline = getline(v:lnum) |
4869 | 79 if cline =~# '^\s*<%[-=]\=\s*\%(}\|end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%([-=]\=%>\|$\)' |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
80 let ind = ind - sw |
2225 | 81 endif |
4869 | 82 if line =~# '\S\s*<%[-=]\=\s*\%(}\|end\).\{-\}\s*\%([-=]\=%>\|$\)' |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
83 let ind = ind - sw |
1121 | 84 endif |
4869 | 85 if line =~# '\%({\|\<do\)\%(\s*|[^|]*|\)\=\s*[-=]\=%>' |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
86 let ind = ind + sw |
4869 | 87 elseif line =~# '<%[-=]\=\s*\%(module\|class\|def\|if\|for\|while\|until\|else\|elsif\|case\|when\|unless\|begin\|ensure\|rescue\)\>.*%>' |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
88 let ind = ind + sw |
1121 | 89 endif |
1668 | 90 if line =~# '^\s*<%[=#-]\=\s*$' && cline !~# '^\s*end\>' |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
91 let ind = ind + sw |
1121 | 92 endif |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
93 if line !~# '^\s*<%' && line =~# '%>\s*$' && line !~# '^\s*end\>' |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
94 let ind = ind - sw |
4869 | 95 endif |
96 if cline =~# '^\s*[-=]\=%>\s*$' | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
97 let ind = ind - sw |
1121 | 98 endif |
99 return ind | |
100 endfunction | |
101 | |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
102 let &cpo = s:cpo_sav |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
103 unlet! s:cpo_sav |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
4869
diff
changeset
|
104 |
1620 | 105 " vim:set sw=2 sts=2 ts=8 noet: |