LuaLS test

This commit is contained in:
Robert Jelic
2025-02-10 16:52:33 +01:00
parent 2b8a0764bc
commit bacbb07187

View File

@@ -90,16 +90,13 @@ end
local function collectAllClassNames(folder) local function collectAllClassNames(folder)
local classes = {} local classes = {}
local files = fs.list(folder) for file in io.popen('ls "' .. folder .. '"'):lines() do
if file:match("%.lua$") then
for _, filename in ipairs(files) do local f = io.open(folder .. "/" .. file, "r")
if filename:match("%.lua$") then
local path = fs.combine(folder, filename)
local f = fs.open(path, "r")
if f then if f then
local content = f.readAll() local content = f:read("*a")
f.close() f:close()
local className = findClassName(content) local className = findClassName(content)
if className and className ~= "BaseFrame" then if className and className ~= "BaseFrame" then
table.insert(classes, className) table.insert(classes, className)
@@ -187,23 +184,21 @@ end
local function parseFolder(folder, destinationFile) local function parseFolder(folder, destinationFile)
local allClasses = collectAllClassNames(folder) local allClasses = collectAllClassNames(folder)
local allContent = {} local allContent = {}
local files = fs.list(folder) -- Get list of files
for file in io.popen('ls "' .. folder .. '"'):lines() do
for _, filename in ipairs(files) do if file:match("%.lua$") then
if filename:match("%.lua$") then local f = io.open(folder .. "/" .. file, "r")
local path = fs.combine(folder, filename)
local f = fs.open(path, "r")
if f then if f then
local content = f.readAll() local content = f:read("*a")
f.close() f:close()
local className = findClassName(content) local className = findClassName(content)
if className then if className then
local properties = parseProperties(content) local properties = parseProperties(content)
local events = parseEvents(content) local events = parseEvents(content)
local classContent = generateClassContent(className, properties, events, allClasses) local classContent = generateClassContent(className, properties, events, allClasses)
if classContent then -- Only add if content was generated if classContent then
table.insert(allContent, classContent) table.insert(allContent, classContent)
end end
end end
@@ -211,10 +206,11 @@ local function parseFolder(folder, destinationFile)
end end
end end
local f = fs.open(destinationFile, "w") -- Write output file
local f = io.open(destinationFile, "w")
if f then if f then
f.write(table.concat(allContent, "\n\n")) f:write(table.concat(allContent, "\n\n"))
f.close() f:close()
end end
end end