diff options
Diffstat (limited to 'indent/lua.vim')
-rw-r--r-- | indent/lua.vim | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/indent/lua.vim b/indent/lua.vim index 9db1d7db..3c33c032 100644 --- a/indent/lua.vim +++ b/indent/lua.vim @@ -1,70 +1,3 @@ -if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'vim') == -1 - -" Vim indent file -" Language: Lua script -" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br> -" First Author: Max Ischenko <mfi 'at' ukr.net> -" Last Change: 2017 Jun 13 - -" Only load this indent file when no other was loaded. -if exists("b:did_indent") - finish -endif -let b:did_indent = 1 - -setlocal indentexpr=GetLuaIndent() - -" To make Vim call GetLuaIndent() when it finds '\s*end' or '\s*until' -" on the current line ('else' is default and includes 'elseif'). -setlocal indentkeys+=0=end,0=until - -setlocal autoindent - -" Only define the function once. -if exists("*GetLuaIndent") - finish -endif - -function! GetLuaIndent() - " 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 - - " Add a 'shiftwidth' after lines that start a block: - " 'function', 'if', 'for', 'while', 'repeat', 'else', 'elseif', '{' - let ind = indent(prevlnum) - let prevline = getline(prevlnum) - let midx = match(prevline, '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\|then\>\)') - if midx == -1 - let midx = match(prevline, '{\s*$') - if midx == -1 - let midx = match(prevline, '\<function\>\s*\%(\k\|[.:]\)\{-}\s*(') - endif - endif - - if midx != -1 - " Add 'shiftwidth' if what we found previously is not in a comment and - " an "end" or "until" is not present on the same line. - if synIDattr(synID(prevlnum, midx + 1, 1), "name") != "luaComment" && prevline !~ '\<end\>\|\<until\>' - let ind = ind + shiftwidth() - endif - endif - - " Subtract a 'shiftwidth' on end, else, elseif, until and '}' - " This is the part that requires 'indentkeys'. - let midx = match(getline(v:lnum), '^\s*\%(end\>\|else\>\|elseif\>\|until\>\|}\)') - if midx != -1 && synIDattr(synID(v:lnum, midx + 1, 1), "name") != "luaComment" - let ind = ind - shiftwidth() - endif - - return ind -endfunction - -endif if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'lua') == -1 " Vim indent file |