summaryrefslogtreecommitdiffstats
path: root/src/CheckBasicStyle.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/CheckBasicStyle.lua')
-rw-r--r--src/CheckBasicStyle.lua63
1 files changed, 28 insertions, 35 deletions
diff --git a/src/CheckBasicStyle.lua b/src/CheckBasicStyle.lua
index e4597a426..13a6d15d2 100644
--- a/src/CheckBasicStyle.lua
+++ b/src/CheckBasicStyle.lua
@@ -1,3 +1,4 @@
+#!/usr/bin/env lua
-- CheckBasicStyle.lua
@@ -8,7 +9,7 @@ Checks that all source files (*.cpp, *.h) use the basic style requirements of th
- Two spaces between code and line-end comment ("//")
- Spaces after comma, not before
- Opening braces not at the end of a code line
- - (TODO) Spaces after if, for, while
+ - Spaces after if, for, while
- (TODO) Spaces before *, /, &
- (TODO) Hex numbers with even digit length
- (TODO) Hex numbers in lowercase
@@ -23,26 +24,12 @@ the line brings the editor directly to the violation.
Returns 0 on success, 1 on internal failure, 2 if any violations found
-This script requires LuaFileSystem to be available in the current Lua interpreter.
--]]
--- Check that LFS is installed:
-local hasLfs = pcall(require, "lfs")
-if not(hasLfs) then
- print("This script requires LuaFileSystem to be installed")
- os.exit(1)
-end
-local lfs = require("lfs")
-assert(lfs ~= nil)
-
-
-
-
-
-- The list of file extensions that are processed:
local g_ShouldProcessExt =
{
@@ -53,13 +40,12 @@ local g_ShouldProcessExt =
--- The list of files not to be processed:
local g_IgnoredFiles =
{
- "./Bindings/Bindings.cpp",
- "./Bindings/DeprecatedBindings.cpp",
- "./LeakFinder.cpp",
- "./LeakFinder.h",
- "./MersenneTwister.h",
- "./StackWalker.cpp",
- "./StackWalker.h",
+ "Bindings/Bindings.cpp",
+ "LeakFinder.cpp",
+ "LeakFinder.h",
+ "MersenneTwister.h",
+ "StackWalker.cpp",
+ "StackWalker.h",
}
--- The list of files not to be processed, as a dictionary (filename => true), built from g_IgnoredFiles
@@ -125,6 +111,22 @@ local g_ViolationPatterns =
-- Check that opening braces are not at the end of a code line:
{"[^%s].-{\n?$", "Brace should be on a separate line"},
+
+ -- Space after keywords:
+ {"[^_]if%(", "Needs a space after \"if\""},
+ {"for%(", "Needs a space after \"for\""},
+ {"while%(", "Needs a space after \"while\""},
+ {"switch%(", "Needs a space after \"switch\""},
+ {"catch%(", "Needs a space after \"catch\""},
+
+ -- No space after keyword's parenthesis:
+ {"[^%a#]if %( ", "Remove the space after \"(\""},
+ {"for %( ", "Remove the space after \"(\""},
+ {"while %( ", "Remove the space after \"(\""},
+ {"catch %( ", "Remove the space after \"(\""},
+
+ -- No space before a closing parenthesis:
+ {" %)", "Remove the space before \")\""},
}
@@ -182,17 +184,6 @@ local function ProcessItem(a_ItemName)
return
end
- -- If the item is a folder, recurse:
- local attrs = lfs.attributes(a_ItemName)
- if (attrs and (attrs.mode == "directory")) then
- for fnam in lfs.dir(a_ItemName) do
- if ((fnam ~= ".") and (fnam ~= "..")) then
- ProcessItem(a_ItemName .. "/" .. fnam)
- end
- end
- return
- end
-
local ext = a_ItemName:match("%.([^/%.]-)$")
if (g_ShouldProcessExt[ext]) then
ProcessFile(a_ItemName)
@@ -203,8 +194,10 @@ end
--- Process the entire current folder:
-ProcessItem(".")
+-- Process all files in the AllFiles.lst file (generated by cmake):
+for fnam in io.lines("AllFiles.lst") do
+ ProcessItem(fnam)
+end
-- Report final verdict:
print("Number of violations found: " .. g_NumViolations)