golden hour
/usr/share/vim/vim82/indent
⬆️ Go Up
Upload
File/Folder
Size
Actions
README.txt
1.65 KB
Del
OK
aap.vim
265 B
Del
OK
ada.vim
10.97 KB
Del
OK
ant.vim
290 B
Del
OK
automake.vim
243 B
Del
OK
awk.vim
7.59 KB
Del
OK
bash.vim
350 B
Del
OK
bib.vim
346 B
Del
OK
bst.vim
1.89 KB
Del
OK
bzl.vim
2.43 KB
Del
OK
c.vim
325 B
Del
OK
cdl.vim
4.15 KB
Del
OK
ch.vim
470 B
Del
OK
chaiscript.vim
1.11 KB
Del
OK
changelog.vim
264 B
Del
OK
clojure.vim
11.39 KB
Del
OK
cmake.vim
2.62 KB
Del
OK
cobol.vim
8.49 KB
Del
OK
config.vim
2.13 KB
Del
OK
context.vim
752 B
Del
OK
cpp.vim
329 B
Del
OK
cs.vim
1.71 KB
Del
OK
css.vim
1.75 KB
Del
OK
cucumber.vim
2.62 KB
Del
OK
cuda.vim
305 B
Del
OK
d.vim
510 B
Del
OK
dictconf.vim
337 B
Del
OK
dictdconf.vim
338 B
Del
OK
docbk.vim
336 B
Del
OK
dosbatch.vim
1.3 KB
Del
OK
dtd.vim
11.59 KB
Del
OK
dtrace.vim
451 B
Del
OK
dune.vim
332 B
Del
OK
dylan.vim
2.64 KB
Del
OK
eiffel.vim
3.24 KB
Del
OK
elm.vim
3.15 KB
Del
OK
erlang.vim
48.89 KB
Del
OK
eruby.vim
2.95 KB
Del
OK
eterm.vim
668 B
Del
OK
falcon.vim
13.75 KB
Del
OK
fortran.vim
7.48 KB
Del
OK
framescript.vim
816 B
Del
OK
gitconfig.vim
841 B
Del
OK
gitolite.vim
1.25 KB
Del
OK
go.vim
1.63 KB
Del
OK
haml.vim
2.15 KB
Del
OK
hamster.vim
1.39 KB
Del
OK
hog.vim
1.85 KB
Del
OK
html.vim
32.75 KB
Del
OK
htmldjango.vim
273 B
Del
OK
idlang.vim
1.58 KB
Del
OK
ishd.vim
1.83 KB
Del
OK
j.vim
1.77 KB
Del
OK
java.vim
4.19 KB
Del
OK
javascript.vim
15 KB
Del
OK
javascriptreact.vim
109 B
Del
OK
json.vim
4.42 KB
Del
OK
jsp.vim
462 B
Del
OK
ld.vim
1.75 KB
Del
OK
less.vim
243 B
Del
OK
lifelines.vim
637 B
Del
OK
liquid.vim
1.85 KB
Del
OK
lisp.vim
353 B
Del
OK
logtalk.vim
1.82 KB
Del
OK
lua.vim
1.88 KB
Del
OK
mail.vim
308 B
Del
OK
make.vim
3.41 KB
Del
OK
matlab.vim
4.73 KB
Del
OK
meson.vim
5.1 KB
Del
OK
mf.vim
156 B
Del
OK
mma.vim
2.18 KB
Del
OK
mp.vim
11.06 KB
Del
OK
nsis.vim
3.18 KB
Del
OK
objc.vim
1.61 KB
Del
OK
ocaml.vim
8.98 KB
Del
OK
occam.vim
4.53 KB
Del
OK
pascal.vim
5.52 KB
Del
OK
perl.vim
5.77 KB
Del
OK
perl6.vim
3.46 KB
Del
OK
php.vim
25.29 KB
Del
OK
postscr.vim
1.61 KB
Del
OK
pov.vim
2.6 KB
Del
OK
prolog.vim
1.76 KB
Del
OK
pyrex.vim
326 B
Del
OK
python.vim
6.77 KB
Del
OK
r.vim
13.71 KB
Del
OK
raml.vim
285 B
Del
OK
readline.vim
711 B
Del
OK
rhelp.vim
2.77 KB
Del
OK
rmd.vim
1.64 KB
Del
OK
rnoweb.vim
1.06 KB
Del
OK
rpl.vim
1.82 KB
Del
OK
rrst.vim
1.17 KB
Del
OK
rst.vim
1.78 KB
Del
OK
ruby.vim
29.41 KB
Del
OK
rust.vim
6.35 KB
Del
OK
sas.vim
5.15 KB
Del
OK
sass.vim
950 B
Del
OK
scala.vim
18.97 KB
Del
OK
scheme.vim
372 B
Del
OK
scss.vim
191 B
Del
OK
sdl.vim
2.73 KB
Del
OK
sh.vim
9.05 KB
Del
OK
sml.vim
6.33 KB
Del
OK
sql.vim
1.18 KB
Del
OK
sqlanywhere.vim
13.11 KB
Del
OK
sshconfig.vim
796 B
Del
OK
systemd.vim
205 B
Del
OK
systemverilog.vim
8.42 KB
Del
OK
tcl.vim
2.45 KB
Del
OK
tcsh.vim
1.24 KB
Del
OK
teraterm.vim
1.33 KB
Del
OK
tex.vim
13.37 KB
Del
OK
tf.vim
1.51 KB
Del
OK
tilde.vim
1013 B
Del
OK
treetop.vim
707 B
Del
OK
typescript.vim
14.14 KB
Del
OK
vb.vim
2.04 KB
Del
OK
verilog.vim
7.97 KB
Del
OK
vhdl.vim
14.32 KB
Del
OK
vim.vim
5.57 KB
Del
OK
vroom.vim
379 B
Del
OK
wast.vim
458 B
Del
OK
xf86conf.vim
709 B
Del
OK
xhtml.vim
269 B
Del
OK
xinetd.vim
1.2 KB
Del
OK
xml.vim
7.43 KB
Del
OK
xsd.vim
253 B
Del
OK
xslt.vim
297 B
Del
OK
yacc.vim
781 B
Del
OK
yaml.vim
5.34 KB
Del
OK
zimbu.vim
3.84 KB
Del
OK
zsh.vim
411 B
Del
OK
Edit: scala.vim
" Vim indent file " Language: Scala (http://scala-lang.org/) " Original Author: Stefan Matthias Aust " Modifications By: Derek Wyatt " URL: https://github.com/derekwyatt/vim-scala " Last Change: 2016 Aug 26 if exists("b:did_indent") finish endif let b:did_indent = 1 setlocal autoindent setlocal indentexpr=GetScalaIndent() setlocal indentkeys=0{,0},0),!^F,<>>,o,O,e,=case,<CR> if exists("*GetScalaIndent") finish endif let s:keepcpo= &cpo set cpo&vim let s:defMatcher = '\%(\%(private\|protected\)\%(\[[^\]]*\]\)\?\s\+\|abstract\s\+\|override\s\+\)*\<def\>' let s:funcNameMatcher = '\w\+' let s:typeSpecMatcher = '\%(\s*\[\_[^\]]*\]\)' let s:defArgMatcher = '\%((\_.\{-})\)' let s:returnTypeMatcher = '\%(:\s*\w\+' . s:typeSpecMatcher . '\?\)' let g:fullDefMatcher = '^\s*' . s:defMatcher . '\s\+' . s:funcNameMatcher . '\s*' . s:typeSpecMatcher . '\?\s*' . s:defArgMatcher . '\?\s*' . s:returnTypeMatcher . '\?\s*[={]' function! scala#ConditionalConfirm(msg) if 0 call confirm(a:msg) endif endfunction function! scala#GetLine(lnum) let line = substitute(getline(a:lnum), '//.*$', '', '') let line = substitute(line, '"\(.\|\\"\)\{-}"', '""', 'g') return line endfunction function! scala#CountBrackets(line, openBracket, closedBracket) let line = substitute(a:line, '"\(.\|\\"\)\{-}"', '', 'g') let open = substitute(line, '[^' . a:openBracket . ']', '', 'g') let close = substitute(line, '[^' . a:closedBracket . ']', '', 'g') return strlen(open) - strlen(close) endfunction function! scala#CountParens(line) return scala#CountBrackets(a:line, '(', ')') endfunction function! scala#CountCurlies(line) return scala#CountBrackets(a:line, '{', '}') endfunction function! scala#LineEndsInIncomplete(line) if a:line =~ '[.,]\s*$' return 1 else return 0 endif endfunction function! scala#LineIsAClosingXML(line) if a:line =~ '^\s*</\w' return 1 else return 0 endif endfunction function! scala#LineCompletesXML(lnum, line) let savedpos = getpos('.') call setpos('.', [savedpos[0], a:lnum, 0, savedpos[3]]) let tag = substitute(a:line, '^.*</\([^>]*\)>.*$', '\1', '') let [lineNum, colnum] = searchpairpos('<' . tag . '>', '', '</' . tag . '>', 'Wbn') call setpos('.', savedpos) let pline = scala#GetLine(prevnonblank(lineNum - 1)) if pline =~ '=\s*$' return 1 else return 0 endif endfunction function! scala#IsParentCase() let savedpos = getpos('.') call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]]) let [l, c] = searchpos('^\s*\%(' . s:defMatcher . '\|\%(\<case\>\)\)', 'bnW') let retvalue = -1 if l != 0 && search('\%' . l . 'l\s*\<case\>', 'bnW') let retvalue = l endif call setpos('.', savedpos) return retvalue endfunction function! scala#CurlyMatcher() let matchline = scala#GetLineThatMatchesBracket('{', '}') if scala#CountParens(scala#GetLine(matchline)) < 0 let savedpos = getpos('.') call setpos('.', [savedpos[0], matchline, 9999, savedpos[3]]) call searchpos('{', 'Wbc') call searchpos(')', 'Wb') let [lnum, colnum] = searchpairpos('(', '', ')', 'Wbn') call setpos('.', savedpos) let line = scala#GetLine(lnum) if line =~ '^\s*' . s:defMatcher return lnum else return matchline endif else return matchline endif endfunction function! scala#GetLineAndColumnThatMatchesCurly() return scala#GetLineAndColumnThatMatchesBracket('{', '}') endfunction function! scala#GetLineAndColumnThatMatchesParen() return scala#GetLineAndColumnThatMatchesBracket('(', ')') endfunction function! scala#GetLineAndColumnThatMatchesBracket(openBracket, closedBracket) let savedpos = getpos('.') let curline = scala#GetLine(line('.')) if curline =~ a:closedBracket . '.*' . a:openBracket . '.*' . a:closedBracket call setpos('.', [savedpos[0], savedpos[1], 0, savedpos[3]]) call searchpos(a:closedBracket . '\ze[^' . a:closedBracket . a:openBracket . ']*' . a:openBracket, 'W') else call setpos('.', [savedpos[0], savedpos[1], 9999, savedpos[3]]) call searchpos(a:closedBracket, 'Wbc') endif let [lnum, colnum] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn') call setpos('.', savedpos) return [lnum, colnum] endfunction function! scala#GetLineThatMatchesCurly() return scala#GetLineThatMatchesBracket('{', '}') endfunction function! scala#GetLineThatMatchesParen() return scala#GetLineThatMatchesBracket('(', ')') endfunction function! scala#GetLineThatMatchesBracket(openBracket, closedBracket) let [lnum, colnum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket) return lnum endfunction function! scala#NumberOfBraceGroups(line) let line = substitute(a:line, '[^()]', '', 'g') if strlen(line) == 0 return 0 endif let line = substitute(line, '^)*', '', 'g') if strlen(line) == 0 return 0 endif let line = substitute(line, '^(', '', 'g') if strlen(line) == 0 return 0 endif let c = 1 let counter = 0 let groupCount = 0 while counter < strlen(line) let char = strpart(line, counter, 1) if char == '(' let c = c + 1 elseif char == ')' let c = c - 1 endif if c == 0 let groupCount = groupCount + 1 endif let counter = counter + 1 endwhile return groupCount endfunction function! scala#MatchesIncompleteDefValr(line) if a:line =~ '^\s*\%(' . s:defMatcher . '\|\<va[lr]\>\).*[=({]\s*$' return 1 else return 0 endif endfunction function! scala#LineIsCompleteIf(line) if scala#CountBrackets(a:line, '{', '}') == 0 && \ scala#CountBrackets(a:line, '(', ')') == 0 && \ a:line =~ '^\s*\<if\>\s*([^)]*)\s*\S.*$' return 1 else return 0 endif endfunction function! scala#LineCompletesIfElse(lnum, line) if a:line =~ '^\s*\%(\<if\>\|\%(}\s*\)\?\<else\>\)' return 0 endif let result = search('^\%(\s*\<if\>\s*(.*).*\n\|\s*\<if\>\s*(.*)\s*\n.*\n\)\%(\s*\<else\>\s*\<if\>\s*(.*)\s*\n.*\n\)*\%(\s*\<else\>\s*\n\|\s*\<else\>[^{]*\n\)\?\%' . a:lnum . 'l', 'Wbn') if result != 0 && scala#GetLine(prevnonblank(a:lnum - 1)) !~ '{\s*$' return result endif return 0 endfunction function! scala#GetPrevCodeLine(lnum) " This needs to skip comment lines return prevnonblank(a:lnum - 1) endfunction function! scala#InvertBracketType(openBracket, closedBracket) if a:openBracket == '(' return [ '{', '}' ] else return [ '(', ')' ] endif endfunction function! scala#Testhelper(lnum, line, openBracket, closedBracket, iteration) let bracketCount = scala#CountBrackets(a:line, a:openBracket, a:closedBracket) " There are more '}' braces than '{' on this line so it may be completing the function definition if bracketCount < 0 let [matchedLNum, matchedColNum] = scala#GetLineAndColumnThatMatchesBracket(a:openBracket, a:closedBracket) if matchedLNum == a:lnum return -1 endif let matchedLine = scala#GetLine(matchedLNum) if ! scala#MatchesIncompleteDefValr(matchedLine) let bracketLine = substitute(substitute(matchedLine, '\%' . matchedColNum . 'c.*$', '', ''), '[^{}()]', '', 'g') if bracketLine =~ '}$' return scala#Testhelper(matchedLNum, matchedLine, '{', '}', a:iteration + 1) elseif bracketLine =~ ')$' return scala#Testhelper(matchedLNum, matchedLine, '(', ')', a:iteration + 1) else let prevCodeLNum = scala#GetPrevCodeLine(matchedLNum) if scala#MatchesIncompleteDefValr(scala#GetLine(prevCodeLNum)) return prevCodeLNum else return -1 endif endif else " return indent value instead return matchedLNum endif " There's an equal number of '{' and '}' on this line so it may be a single line function definition elseif bracketCount == 0 if a:iteration == 0 let otherBracketType = scala#InvertBracketType(a:openBracket, a:closedBracket) return scala#Testhelper(a:lnum, a:line, otherBracketType[0], otherBracketType[1], a:iteration + 1) else let prevCodeLNum = scala#GetPrevCodeLine(a:lnum) let prevCodeLine = scala#GetLine(prevCodeLNum) if scala#MatchesIncompleteDefValr(prevCodeLine) && prevCodeLine !~ '{\s*$' return prevCodeLNum else let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line) if possibleIfElse != 0 let defValrLine = prevnonblank(possibleIfElse - 1) let possibleDefValr = scala#GetLine(defValrLine) if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$' return possibleDefValr else return -1 endif else return -1 endif endif endif else return -1 endif endfunction function! scala#Test(lnum, line, openBracket, closedBracket) return scala#Testhelper(a:lnum, a:line, a:openBracket, a:closedBracket, 0) endfunction function! scala#LineCompletesDefValr(lnum, line) let bracketCount = scala#CountBrackets(a:line, '{', '}') if bracketCount < 0 let matchedBracket = scala#GetLineThatMatchesBracket('{', '}') if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket)) let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1)) if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr) return 1 else return 0 endif else return 0 endif elseif bracketCount == 0 let bracketCount = scala#CountBrackets(a:line, '(', ')') if bracketCount < 0 let matchedBracket = scala#GetLineThatMatchesBracket('(', ')') if ! scala#MatchesIncompleteDefValr(scala#GetLine(matchedBracket)) let possibleDefValr = scala#GetLine(prevnonblank(matchedBracket - 1)) if matchedBracket != -1 && scala#MatchesIncompleteDefValr(possibleDefValr) return 1 else return 0 endif else return 0 endif elseif bracketCount == 0 let possibleDefValr = scala#GetLine(prevnonblank(a:lnum - 1)) if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$' return 1 else let possibleIfElse = scala#LineCompletesIfElse(a:lnum, a:line) if possibleIfElse != 0 let possibleDefValr = scala#GetLine(prevnonblank(possibleIfElse - 1)) if scala#MatchesIncompleteDefValr(possibleDefValr) && possibleDefValr =~ '^.*=\s*$' return 2 else return 0 endif else return 0 endif endif else return 0 endif endif endfunction function! scala#SpecificLineCompletesBrackets(lnum, openBracket, closedBracket) let savedpos = getpos('.') call setpos('.', [savedpos[0], a:lnum, 9999, savedpos[3]]) let retv = scala#LineCompletesBrackets(a:openBracket, a:closedBracket) call setpos('.', savedpos) return retv endfunction function! scala#LineCompletesBrackets(openBracket, closedBracket) let savedpos = getpos('.') let offline = 0 while offline == 0 let [lnum, colnum] = searchpos(a:closedBracket, 'Wb') let [lnumA, colnumA] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbn') if lnum != lnumA let [lnumB, colnumB] = searchpairpos(a:openBracket, '', a:closedBracket, 'Wbnr') let offline = 1 endif endwhile call setpos('.', savedpos) if lnumA == lnumB && colnumA == colnumB return lnumA else return -1 endif endfunction function! GetScalaIndent() " Find a non-blank line above the current line. let prevlnum = prevnonblank(v:lnum - 1) " Hit the start of the file, use zero indent. if prevlnum == 0 return 0 endif let ind = indent(prevlnum) let originalIndentValue = ind let prevline = scala#GetLine(prevlnum) let curlnum = v:lnum let curline = scala#GetLine(curlnum) if get(g:, 'scala_scaladoc_indent', 0) let star_indent = 2 else let star_indent = 1 end if prevline =~ '^\s*/\*\*' if prevline =~ '\*/\s*$' return ind else return ind + star_indent endif endif if curline =~ '^\s*\*' return cindent(curlnum) endif " If this line starts with a { then make it indent the same as the previous line if curline =~ '^\s*{' call scala#ConditionalConfirm("1") " Unless, of course, the previous one is a { as well if prevline !~ '^\s*{' call scala#ConditionalConfirm("2") return indent(prevlnum) endif endif " '.' continuations if curline =~ '^\s*\.' if prevline =~ '^\s*\.' return ind else return ind + shiftwidth() endif endif " Indent html literals if prevline !~ '/>\s*$' && prevline =~ '^\s*<[a-zA-Z][^>]*>\s*$' call scala#ConditionalConfirm("3") return ind + shiftwidth() endif " assumes curly braces around try-block if curline =~ '^\s*}\s*\<catch\>' return ind - shiftwidth() elseif curline =~ '^\s*\<catch\>' return ind endif " Add a shiftwidth()' after lines that start a block " If 'if', 'for' or 'while' end with ), this is a one-line block " If 'val', 'var', 'def' end with =, this is a one-line block if (prevline =~ '^\s*\<\%(\%(}\?\s*else\s\+\)\?if\|for\|while\)\>.*[)=]\s*$' && scala#NumberOfBraceGroups(prevline) <= 1) \ || prevline =~ '^\s*' . s:defMatcher . '.*=\s*$' \ || prevline =~ '^\s*\<va[lr]\>.*[=]\s*$' \ || prevline =~ '^\s*\%(}\s*\)\?\<else\>\s*$' \ || prevline =~ '=\s*$' call scala#ConditionalConfirm("4") let ind = ind + shiftwidth() elseif prevline =~ '^\s*\<\%(}\?\s*else\s\+\)\?if\>' && curline =~ '^\s*}\?\s*\<else\>' return ind endif let lineCompletedBrackets = 0 let bracketCount = scala#CountBrackets(prevline, '{', '}') if bracketCount > 0 || prevline =~ '.*{\s*$' call scala#ConditionalConfirm("5b") let ind = ind + shiftwidth() elseif bracketCount < 0 call scala#ConditionalConfirm("6b") " if the closing brace actually completes the braces entirely, then we " have to indent to line that started the whole thing let completeLine = scala#LineCompletesBrackets('{', '}') if completeLine != -1 call scala#ConditionalConfirm("8b") let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1)) " However, what actually started this part looks like it was a function " definition, so we need to indent to that line instead. This is " actually pretty weak at the moment. if prevCompleteLine =~ '=\s*$' call scala#ConditionalConfirm("9b") let ind = indent(prevnonblank(completeLine - 1)) else call scala#ConditionalConfirm("10b") let ind = indent(completeLine) endif else let lineCompletedBrackets = 1 endif endif if ind == originalIndentValue let bracketCount = scala#CountBrackets(prevline, '(', ')') if bracketCount > 0 || prevline =~ '.*(\s*$' call scala#ConditionalConfirm("5a") let ind = ind + shiftwidth() elseif bracketCount < 0 call scala#ConditionalConfirm("6a") " if the closing brace actually completes the braces entirely, then we " have to indent to line that started the whole thing let completeLine = scala#LineCompletesBrackets('(', ')') if completeLine != -1 && prevline !~ '^.*{\s*$' call scala#ConditionalConfirm("8a") let prevCompleteLine = scala#GetLine(prevnonblank(completeLine - 1)) " However, what actually started this part looks like it was a function " definition, so we need to indent to that line instead. This is " actually pretty weak at the moment. if prevCompleteLine =~ '=\s*$' call scala#ConditionalConfirm("9a") let ind = indent(prevnonblank(completeLine - 1)) else call scala#ConditionalConfirm("10a") let ind = indent(completeLine) endif else " This is the only part that's different from from the '{', '}' one below " Yup... some refactoring is necessary at some point. let ind = ind + (bracketCount * shiftwidth()) let lineCompletedBrackets = 1 endif endif endif if curline =~ '^\s*}\?\s*\<else\>\%(\s\+\<if\>\s*(.*)\)\?\s*{\?\s*$' && \ ! scala#LineIsCompleteIf(prevline) && \ prevline !~ '^.*}\s*$' let ind = ind - shiftwidth() endif " Subtract a shiftwidth()' on '}' or html let curCurlyCount = scala#CountCurlies(curline) if curCurlyCount < 0 call scala#ConditionalConfirm("14a") let matchline = scala#CurlyMatcher() return indent(matchline) elseif curline =~ '^\s*</[a-zA-Z][^>]*>' call scala#ConditionalConfirm("14c") return ind - shiftwidth() endif let prevParenCount = scala#CountParens(prevline) if prevline =~ '^\s*\<for\>.*$' && prevParenCount > 0 call scala#ConditionalConfirm("15") let ind = indent(prevlnum) + 5 endif let prevCurlyCount = scala#CountCurlies(prevline) if prevCurlyCount == 0 && prevline =~ '^.*\%(=>\|⇒\)\s*$' && prevline !~ '^\s*this\s*:.*\%(=>\|⇒\)\s*$' && curline !~ '^\s*\<case\>' call scala#ConditionalConfirm("16") let ind = ind + shiftwidth() endif if ind == originalIndentValue && curline =~ '^\s*\<case\>' call scala#ConditionalConfirm("17") let parentCase = scala#IsParentCase() if parentCase != -1 call scala#ConditionalConfirm("17a") return indent(parentCase) endif endif if prevline =~ '^\s*\*/' \ || prevline =~ '*/\s*$' call scala#ConditionalConfirm("18") let ind = ind - star_indent endif if scala#LineEndsInIncomplete(prevline) call scala#ConditionalConfirm("19") return ind endif if scala#LineIsAClosingXML(prevline) if scala#LineCompletesXML(prevlnum, prevline) call scala#ConditionalConfirm("20a") return ind - shiftwidth() else call scala#ConditionalConfirm("20b") return ind endif endif if ind == originalIndentValue "let indentMultiplier = scala#LineCompletesDefValr(prevlnum, prevline) "if indentMultiplier != 0 " call scala#ConditionalConfirm("19a") " let ind = ind - (indentMultiplier * shiftwidth()) let defValrLine = scala#Test(prevlnum, prevline, '{', '}') if defValrLine != -1 call scala#ConditionalConfirm("21a") let ind = indent(defValrLine) elseif lineCompletedBrackets == 0 call scala#ConditionalConfirm("21b") if scala#GetLine(prevnonblank(prevlnum - 1)) =~ '^.*\<else\>\s*\%(//.*\)\?$' call scala#ConditionalConfirm("21c") let ind = ind - shiftwidth() elseif scala#LineCompletesIfElse(prevlnum, prevline) call scala#ConditionalConfirm("21d") let ind = ind - shiftwidth() elseif scala#CountParens(curline) < 0 && curline =~ '^\s*)' && scala#GetLine(scala#GetLineThatMatchesBracket('(', ')')) =~ '.*(\s*$' " Handles situations that look like this: " " val a = func( " 10 " ) " " or " " val a = func( " 10 " ).somethingHere() call scala#ConditionalConfirm("21e") let ind = ind - shiftwidth() endif endif endif call scala#ConditionalConfirm("returning " . ind) return ind endfunction let &cpo = s:keepcpo unlet s:keepcpo " vim:set sw=2 sts=2 ts=8 et: " vim600:fdm=marker fdl=1 fdc=0:
Save