- if ft == "c" then
- lint("gcc", "gcc", {"-fsyntax-only", "-Wall", "-Wextra", file}, "%f:%l:%d+:.+: %m")
- elseif ft == "c++" then
- lint("gcc", "gcc", {"-fsyntax-only","-std=c++14", "-Wall", "-Wextra", file}, "%f:%l:%d+:.+: %m")
- elseif ft == "d" then
- lint("dmd", "dmd", {"-color=off", "-o-", "-w", "-wi", "-c", file}, "%f%(%l%):.+: %m")
- elseif ft == "go" then
- lint("gobuild", "go", {"build", "-o", devnull}, "%f:%l: %m")
- lint("golint", "golint", {file}, "%f:%l:%d+: %m")
- elseif ft == "java" then
- lint("javac", "javac", {"-d", dir, file}, "%f:%l: error: %m")
- elseif ft == "javascript" then
- lint("jshint", "jshint", {file}, "%f: line %l,.+, %m")
- elseif string.match(ft, "literate") then
- lint("literate", "lit", {"-c", file}, "%f:%l:%m")
- elseif ft == "lua" then
- lint("luacheck", "luacheck", {"--no-color", file}, "%f:%l:%d+: %m")
- elseif ft == "nim" then
- lint("nim", "nim", {"check", "--listFullPaths", "--stdout", "--hints:off", file}, "%f.%l, %d+. %m")
- elseif ft == "Objective-C" then
- lint("clang", "xcrun", {"clang", "-fsyntax-only", "-Wall", "-Wextra", file}, "%f:%l:%d+:.+: %m")
- elseif ft == "python" then
- lint("pyflakes", "pyflakes", {file}, "%f:%l:.-:? %m")
- lint("mypy", "mypy", {file}, "%f:%l: %m")
- lint("pylint", "pylint", {"--output-format=parseable", "--reports=no", file}, "%f:%l: %m")
- elseif ft == "shell" then
- lint("shfmt", "shfmt", {file}, "%f:%l:%d+: %m")
- elseif ft == "swift" and OS == "darwin" then
- lint("switfc", "xcrun", {"swiftc", file}, "%f:%l:%d+:.+: %m")
- elseif ft == "swift" and OS == "linux" then
- lint("switfc", "swiftc", {file}, "%f:%l:%d+:.+: %m")
- elseif ft == "yaml" then
- lint("yaml", "yamllint", {"--format", "parsable", file}, "%f:%l:%d+:.+ %m")
+ makeLinter("gcc", "c", "gcc", {"-fsyntax-only", "-Wall", "-Wextra", "%f"}, "%f:%l:%c:.+: %m")
+ makeLinter("gcc", "c++", "gcc", {"-fsyntax-only","-std=c++14", "-Wall", "-Wextra", "%f"}, "%f:%l:%c:.+: %m")
+ makeLinter("dmd", "d", "dmd", {"-color=off", "-o-", "-w", "-wi", "-c", "%f"}, "%f%(%l%):.+: %m")
+ makeLinter("gobuild", "go", "go", {"build", "-o", devnull}, "%f:%l:%c:? %m")
+ -- makeLinter("golint", "go", "golint", {"%f"}, "%f:%l:%c: %m")
+ makeLinter("javac", "java", "javac", {"-d", "%d", "%f"}, "%f:%l: error: %m")
+ makeLinter("jshint", "javascript", "jshint", {"%f"}, "%f: line %l,.+, %m")
+ makeLinter("literate", "literate", "lit", {"-c", "%f"}, "%f:%l:%m", {}, false, true)
+ makeLinter("luacheck", "lua", "luacheck", {"--no-color", "%f"}, "%f:%l:%c: %m")
+ makeLinter("nim", "nim", "nim", {"check", "--listFullPaths", "--stdout", "--hints:off", "%f"}, "%f.%l, %c. %m")
+ makeLinter("clang", "objective-c", "xcrun", {"clang", "-fsyntax-only", "-Wall", "-Wextra", "%f"}, "%f:%l:%c:.+: %m")
+ makeLinter("pyflakes", "python", "pyflakes", {"%f"}, "%f:%l:.-:? %m")
+ makeLinter("mypy", "python", "mypy", {"%f"}, "%f:%l: %m")
+ makeLinter("pylint", "python", "pylint", {"--output-format=parseable", "--reports=no", "%f"}, "%f:%l: %m")
+ makeLinter("shfmt", "shell", "shfmt", {"%f"}, "%f:%l:%c: %m")
+ makeLinter("swiftc", "swift", "xcrun", {"swiftc", "%f"}, "%f:%l:%c:.+: %m", {"darwin"}, true)
+ makeLinter("swiftc", "swiftc", {"%f"}, "%f:%l:%c:.+: %m", {"linux"}, true)
+ makeLinter("yaml", "yaml", "yamllint", {"--format", "parsable", "%f"}, "%f:%l:%c:.+ %m")
+
+ config.MakeCommand("lint", "linter.lintCmd", config.NoComplete)
+end
+
+function lintCmd(bp, args)
+ bp:Save()
+ runLinter(bp.Buf)
+end
+
+function contains(list, element)
+ for k, v in pairs(list) do
+ if v == element then
+ return true
+ end