summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--script/core/searcher.lua19
1 files changed, 15 insertions, 4 deletions
diff --git a/script/core/searcher.lua b/script/core/searcher.lua
index 05733af4..79e80577 100644
--- a/script/core/searcher.lua
+++ b/script/core/searcher.lua
@@ -373,7 +373,7 @@ function m.searchRefsByID(status, uri, expect, mode)
local btag = {}
local function checkThenPushTag(ward, tag)
- if not tag then
+ if not tag or tag == 'deep' then
return true
end
local checkTags
@@ -393,7 +393,7 @@ function m.searchRefsByID(status, uri, expect, mode)
end
local function popTag(ward, tag)
- if not tag then
+ if not tag or tag == 'deep' then
return
end
local popTags
@@ -602,11 +602,22 @@ function m.searchRefsByID(status, uri, expect, mode)
end
local stepCount = 0
+ local stepMaxCount = 1e3
+ local statusMaxCount = 1e4
+ if mode == 'allref' then
+ stepMaxCount = 1e4
+ statusMaxCount = 1e5
+ end
function searchStep(id, field)
stepCount = stepCount + 1
status.count = status.count + 1
- if stepCount > 1000
- or status.count > 10000 then
+ if mode == 'allref' then
+ if status.count % 1e4 == 0 then
+ await.delay()
+ end
+ end
+ if stepCount > stepMaxCount
+ or status.count > statusMaxCount then
if TEST then
if FOOTPRINT then
log.debug(table.concat(status.footprint, '\n'))