summaryrefslogtreecommitdiffstats
path: root/runtime/indent/lua.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2005-06-25 23:04:51 +0000
committerBram Moolenaar <Bram@vim.org>2005-06-25 23:04:51 +0000
commitf461c8e7f8ce2fd2ac3367680ec4c540f04ab259 (patch)
treebfacc7b1f4c7b6087026c9e8c39bb1f7b305d22f /runtime/indent/lua.vim
parentea408854a8360b6925122ce7709b424ab3005209 (diff)
updated for version 7.0093v7.0093
Diffstat (limited to 'runtime/indent/lua.vim')
-rw-r--r--runtime/indent/lua.vim23
1 files changed, 12 insertions, 11 deletions
diff --git a/runtime/indent/lua.vim b/runtime/indent/lua.vim
index ace7fd1a7f..ffe03be4a9 100644
--- a/runtime/indent/lua.vim
+++ b/runtime/indent/lua.vim
@@ -2,7 +2,7 @@
" Language: Lua script
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
" First Author: Max Ischenko <mfi 'at' ukr.net>
-" Last Change: 2005 Jun 09
+" Last Change: 2005 Jun 23
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -10,19 +10,19 @@ if exists("b:did_indent")
endif
let b:did_indent = 1
-" Only define the function once.
-if exists("*GetLuaIndent")
- finish
-endif
-
setlocal indentexpr=GetLuaIndent()
" To make Vim call GetLuaIndent() when it finds '\s*end' or '\s*until'
-" on the current line (else is default).
+" 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 lnum = prevnonblank(v:lnum - 1)
@@ -32,18 +32,19 @@ function! GetLuaIndent()
return 0
endif
- " Add a 'shiftwidth' after lines beginning with:
- " function, if, for, while, repeat, else, elseif, '{'
+ " Add a 'shiftwidth' after lines that start a block:
+ " 'function', 'if', 'for', 'while', 'repeat', 'else', 'elseif', '{'
let ind = indent(lnum)
let flag = 0
let prevline = getline(lnum)
- if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\)' || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*('
+ if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\|then\>\)'
+ \ || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*('
let ind = ind + &shiftwidth
let flag = 1
endif
" Subtract a 'shiftwidth' after lines ending with
- " 'end' when they begin with while, if, for, etc.
+ " 'end' when they begin with 'while', 'if', 'for', etc. too.
if flag == 1 && prevline =~ '\<end\>\|\<until\>'
let ind = ind - &shiftwidth
endif