diff --git a/changelog.md b/changelog.md index 33fc397b6..a8972dfdd 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,7 @@ ## Unreleased +* `FIX` Plugin virtual comment style and behavior issues * `FIX` Incorrect generation of function signatures with tuple-parameters * `NEW` Doc output now contains file paths for `@alias` and `@enum` types * `FIX` Typos in a few error messages. diff --git a/script/core/find-source.lua b/script/core/find-source.lua index c5d52f3e4..8b5755d8b 100644 --- a/script/core/find-source.lua +++ b/script/core/find-source.lua @@ -15,6 +15,9 @@ return function (state, position, accept) local len = math.huge local result guide.eachSourceContain(state.ast, position, function (source) + if source.virtual then + return + end if source.type == 'function' then if not isValidFunctionPos(source, position) then return diff --git a/script/parser/luadoc.lua b/script/parser/luadoc.lua index 72e5dc18d..ad22af1d7 100644 --- a/script/parser/luadoc.lua +++ b/script/parser/luadoc.lua @@ -2308,6 +2308,14 @@ local function luadoc(state) bindDocs(state) end +local function markVirtual(node) + if not node then + return + end + node.virtual = true + guide.eachChild(node, markVirtual) +end + return { buildAndBindDoc = function (ast, src, comment, group) local doc = buildLuaDoc(comment) @@ -2316,7 +2324,7 @@ return { pluginDocs[#pluginDocs+1] = doc doc.special = src doc.originalComment = comment - doc.virtual = true + markVirtual(doc) doc.specialBindGroup = group ast.state.pluginDocs = pluginDocs return doc