Skip to content

Commit 22a1e44

Browse files
committed
diagnostic opened files first
1 parent f583a9f commit 22a1e44

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

script/provider/diagnostic.lua

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ local converter = require 'proto.converter'
1313
local loading = require 'workspace.loading'
1414
local scope = require 'workspace.scope'
1515
local time = require 'bee.time'
16+
local ltable = require 'linked-table'
1617

1718
---@class diagnosticProvider
1819
local m = {}
@@ -360,28 +361,38 @@ local function askForDisable(uri)
360361
end
361362

362363
---@async
363-
function m.awaitDiagnosticsScope(uri)
364-
local scp = scope.getScope(uri)
364+
function m.awaitDiagnosticsScope(suri)
365+
local scp = scope.getScope(suri)
365366
while loading.count() > 0 do
366367
await.sleep(1.0)
367368
end
368369
local clock = os.clock()
369-
local bar <close> = progress.create(scope.getScope(uri), lang.script.WORKSPACE_DIAGNOSTIC, 1)
370+
local bar <close> = progress.create(scope.getScope(suri), lang.script.WORKSPACE_DIAGNOSTIC, 1)
370371
local cancelled
371372
bar:onCancel(function ()
372373
log.debug('Cancel workspace diagnostics')
373374
cancelled = true
374375
---@async
375376
await.call(function ()
376-
askForDisable(uri)
377+
askForDisable(suri)
377378
end)
378379
end)
379-
local uris = files.getAllUris(uri)
380+
local uris = files.getAllUris(suri)
381+
local sortedUris = ltable()
382+
for _, uri in ipairs(uris) do
383+
if files.isOpen(uri) then
384+
sortedUris:pushHead(uri)
385+
else
386+
sortedUris:pushTail(uri)
387+
end
388+
end
380389
log.info(('Diagnostics scope [%s], files count:[%d]'):format(scp:getName(), #uris))
381-
for i, uri in ipairs(uris) do
390+
local i = 0
391+
for uri in sortedUris:pairs() do
382392
while loading.count() > 0 do
383393
await.sleep(1.0)
384394
end
395+
i = i + 1
385396
bar:setMessage(('%d/%d'):format(i, #uris))
386397
bar:setPercentage(i / #uris * 100)
387398
xpcall(m.doDiagnostic, log.error, uri, true)

0 commit comments

Comments
 (0)