-
Notifications
You must be signed in to change notification settings - Fork 0
/
user_defined.lua
106 lines (96 loc) · 2.02 KB
/
user_defined.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
local Config = require("yayalint_config")
local function initialize()
if type(Config) ~= "table" then
Config = {}
end
if not(Config.file) then
Config.file = {}
end
if not(Config.file.no_unused_global) then
Config.file.no_unused_global = {}
end
if not(Config.var) then
Config.var = {}
end
if not(Config.var.used) then
Config.var.used = {}
end
if not(Config.var.predefined) then
Config.var.predefined = {}
end
if not(Config.func) then
Config.func = {}
end
if not(Config.func.used) then
Config.func.used = {}
end
if not(Config.func.predefined) then
Config.func.predefined = {}
end
if not(Config.func.builtin) then
Config.func.builtin = {}
end
end
local M = {}
function M.loadConfig(path)
local chunk = loadfile(path .. "yayalint_config.lua")
if type(chunk) == "function" then
local ret = chunk()
if type(ret) == "table" then
Config = ret
initialize()
end
end
end
function M.isSuppressWarning(path)
for _, v in ipairs(Config.file.no_unused_global) do
if string.match(path, v) then
return true
end
end
return false
end
function M.isUserDefinedVariable(name)
for _, v in ipairs(Config.var.predefined) do
if string.match(name, v) then
return true
end
end
for _, v in ipairs(Config.func.builtin) do
if string.match(name, v) then
return true
end
end
return false
end
function M.isUserUsedVariable(name)
for _, v in ipairs(Config.var.used) do
if string.match(name, v) then
return true
end
end
return false
end
function M.isUserDefinedFunction(name)
for _, v in ipairs(Config.func.predefined) do
if string.match(name, v) then
return true
end
end
for _, v in ipairs(Config.func.builtin) do
if string.match(name, v) then
return true
end
end
return false
end
function M.isUserUsedFunction(name)
for _, v in ipairs(Config.func.used) do
if string.match(name, v) then
return true
end
end
return false
end
initialize()
return M