summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2014-12-05 16:59:56 +0100
committerMattes D <github@xoft.cz>2014-12-05 16:59:56 +0100
commit8e56d7539d03e6d344f5e27f9be391c6cd1846bf (patch)
tree6eff654acdc32dd720f2b74e7446bb26d7a7c791
parentBasicStyle: Added missing braces to control statements. (diff)
downloadcuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.tar
cuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.tar.gz
cuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.tar.bz2
cuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.tar.lz
cuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.tar.xz
cuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.tar.zst
cuberite-8e56d7539d03e6d344f5e27f9be391c6cd1846bf.zip
Diffstat (limited to '')
-rw-r--r--src/CheckBasicStyle.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/CheckBasicStyle.lua b/src/CheckBasicStyle.lua
index d703c3816..7914aedfd 100644
--- a/src/CheckBasicStyle.lua
+++ b/src/CheckBasicStyle.lua
@@ -181,6 +181,7 @@ local function ProcessFile(a_FileName)
-- Ref.: http://stackoverflow.com/questions/10416869/iterate-over-possibly-empty-lines-in-a-way-that-matches-the-expectations-of-exis
local lineCounter = 1
local lastIndentLevel = 0
+ local isLastLineControl = false
all:gsub("\r\n", "\n") -- normalize CRLF into LF-only
string.gsub(all .. "\n", "[^\n]*\n", -- Iterate over each line, while preserving empty lines
function(a_Line)
@@ -217,6 +218,24 @@ local function ProcessFile(a_FileName)
end
lastIndentLevel = indentLevel
end
+
+ -- Check that control statements have braces on separate lines after them:
+ -- Note that if statements can be broken into multiple lines, in which case this test is not taken
+ if (isLastLineControl) then
+ if not(a_Line:find("^%s*{") or a_Line:find("^%s*#")) then
+ -- Not followed by a brace, not followed by a preprocessor
+ ReportViolation(a_FileName, lineCounter - 1, 1, 1, "Control statement needs a brace on separate line")
+ end
+ end
+ local lineWithSpace = " " .. a_Line
+ isLastLineControl =
+ lineWithSpace:find("^%s+if %b()") or
+ lineWithSpace:find("^%s+else if %b()") or
+ lineWithSpace:find("^%s+for %b()") or
+ lineWithSpace:find("^%s+switch %b()") or
+ lineWithSpace:find("^%s+else\n") or
+ lineWithSpace:find("^%s+else //") or
+ lineWithSpace:find("^%s+do %b()")
lineCounter = lineCounter + 1
end