Files
Basalt2/tools/BasaltDoc/utils/helper.lua
2025-09-13 09:54:09 +02:00

59 lines
1.7 KiB
Lua

local helper = {}
function helper.applyAnnotations(annotations, target, handlers)
local i = 1
while i <= #annotations do
local ann = annotations[i]
local tag, args = ann:match("^%-%-%-?%s*(@%S+)%s*(.*)")
if tag then
if args == ">" then
local multiArgs = ""
i = i + 1
while i <= #annotations do
local nextAnn = annotations[i]
local nextTag = nextAnn:match("^%-%-%-?%s*(@%S+)")
if nextTag then
i = i - 1
break
else
local content = nextAnn:match("^%-%-%-?%s*(.*)") or nextAnn
if multiArgs ~= "" then
multiArgs = multiArgs .. "\n" .. content
else
multiArgs = content
end
end
i = i + 1
end
args = multiArgs
end
if handlers and handlers[tag] then
handlers[tag](target, args)
end
else
local comment = ann:match("^%-%-%-?%s*(.*)") or ann
if comment and not comment:match("^@%S+") then
if target.description then
target.description = target.description .. "\n" .. comment
else
target.description = comment
end
end
end
i = i + 1
end
end
function helper.findAnnotationLine(annotations, tag)
for _, l in ipairs(annotations) do
if l:match("@" .. tag) then
return l
end
end
return nil
end
return helper