Skip to content

Commit ea27955

Browse files
committed
cleanup
1 parent 896a1af commit ea27955

File tree

20 files changed

+98
-89
lines changed

20 files changed

+98
-89
lines changed

script/files.lua

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,7 @@ function m.getAllUris(suri)
465465
files[i] = uri
466466
end
467467
end
468+
table.sort(files)
468469
return files
469470
end
470471

script/workspace/require-path.lua

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -170,30 +170,24 @@ function mt:findUrisByRequireName(suri, name)
170170

171171
for _, searcher in ipairs(searchers) do
172172
local fspath = searcher:gsub('%?', (path:gsub('%%', '%%%%')))
173-
local fullPath = workspace.getAbsolutePath(self.scp.uri, fspath)
174-
if fullPath then
175-
local fullUri = furi.encode(fullPath)
176-
if files.exists(fullUri)
177-
and fullUri ~= suri then
178-
results[#results+1] = fullUri
179-
searcherMap[fullUri] = searcher
180-
end
181-
end
173+
fspath = workspace.normalize(fspath)
182174
local tail = '/' .. furi.encode(fspath):gsub('^file:[/]*', '')
183175
for uri in files.eachFile(self.scp.uri) do
184-
if not searcherMap[uri]
176+
if not searcherMap[uri]
185177
and suri ~= uri
186178
and util.stringEndWith(uri, tail) then
187-
local parentUri = files.getLibraryUri(self.scp.uri, uri) or self.scp.uri
188-
if parentUri == nil or parentUri == '' then
189-
parentUri = furi.encode ''
190-
end
191-
local relative = uri:sub(#parentUri + 1):sub(1, - #tail)
192-
if not strict or relative == "/" then
193-
results[#results+1] = uri
194-
end
195-
searcherMap[uri] = workspace.normalize(relative .. searcher)
196-
end
179+
local parentUri = files.getLibraryUri(self.scp.uri, uri) or self.scp.uri
180+
if parentUri == nil or parentUri == '' then
181+
parentUri = furi.encode '/'
182+
end
183+
local relative = uri:sub(#parentUri + 1):sub(1, - #tail)
184+
if not strict
185+
or relative == '/'
186+
or relative == '' then
187+
results[#results+1] = uri
188+
searcherMap[uri] = workspace.normalize(relative .. searcher)
189+
end
190+
end
197191
end
198192
end
199193

script/workspace/scope.lua

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,12 @@ function mt:removeAllLinks()
3737
self._links = {}
3838
end
3939

40+
---@return fun(): uri
41+
---@return table<uri, true>
42+
function mt:eachLink()
43+
return next, self._links
44+
end
45+
4046
---@param uri uri
4147
---@return boolean
4248
function mt:isChildUri(uri)
@@ -46,14 +52,14 @@ function mt:isChildUri(uri)
4652
if not self.uri then
4753
return false
4854
end
49-
if self.uri == '' then
50-
return true
51-
end
5255
if self.uri == uri then
5356
return true
5457
end
55-
if uri:sub(1, #self.uri) == self.uri
56-
and uri:sub(#self.uri + 1, #self.uri + 1) == '/' then
58+
if uri:sub(1, #self.uri) ~= self.uri then
59+
return false
60+
end
61+
if uri:sub(#self.uri, #self.uri) == '/'
62+
or uri:sub(#self.uri + 1, #self.uri + 1) == '/' then
5763
return true
5864
end
5965
return false
@@ -69,10 +75,14 @@ function mt:isLinkedUri(uri)
6975
if uri == linkUri then
7076
return true
7177
end
72-
if uri:sub(1, #linkUri) == linkUri
73-
and uri:sub(#linkUri + 1, #linkUri + 1) == '/' then
78+
if uri:sub(1, #linkUri) ~= linkUri then
79+
goto CONTINUE
80+
end
81+
if uri:sub(#linkUri, #linkUri) == '/'
82+
or uri:sub(#linkUri + 1, #linkUri + 1) == '/' then
7483
return true
7584
end
85+
::CONTINUE::
7686
end
7787
return false
7888
end

script/workspace/workspace.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,13 @@ function m.create(uri)
4949
uri = furi.normalize(uri)
5050
end
5151
log.info('Workspace create: ', uri)
52+
local scp = scope.createFolder(uri)
53+
m.folders[#m.folders+1] = scp
5254
if uri == furi.encode '/'
5355
or uri == furi.encode(os.getenv 'HOME' or '') then
5456
client.showMessage('Error', lang.script('WORKSPACE_NOT_ALLOWED', furi.decode(uri)))
55-
return
57+
scp:set('bad root', true)
5658
end
57-
local scp = scope.createFolder(uri)
58-
m.folders[#m.folders+1] = scp
5959
end
6060

6161
function m.remove(uri)
@@ -306,7 +306,7 @@ function m.awaitPreload(scp)
306306
local native = m.getNativeMatcher(scp)
307307
local librarys = m.getLibraryMatchers(scp)
308308

309-
if scp.uri then
309+
if scp.uri and not scp:get('bad root') then
310310
log.info('Scan files at:', scp:getName())
311311
local count = 0
312312
---@async

test.lua

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,17 +76,21 @@ local function main()
7676

7777
local lclient = require 'lclient'
7878
local ws = require 'workspace'
79+
local furi = require 'file-uri'
7980

8081
--log.print = true
8182

83+
TESTURI = furi.encode('/unittest.lua')
84+
8285
---@async
8386
lclient():start(function (client)
8487
client:registerFakers()
88+
local rootUri = furi.encode '/'
8589
client:initialize {
86-
rootUri = '',
90+
rootUri = rootUri,
8791
}
8892

89-
ws.awaitReady('')
93+
ws.awaitReady(rootUri)
9094

9195
print('Loaded files in', os)
9296
for uri in files.eachFile() do

test/code_action/init.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ end
3939
function TEST(script)
4040
return function (expect)
4141
local newScript, catched = catch(script, '?')
42-
files.setText('', newScript)
43-
local results = core('', catched['?'][1][1], catched['?'][1][2])
42+
files.setText(TESTURI, newScript)
43+
local results = core(TESTURI, catched['?'][1][1], catched['?'][1][2])
4444
assert(results)
4545
assert(eq(expect, results))
46-
files.remove('')
46+
files.remove(TESTURI)
4747
end
4848
end
4949

test/command/auto-require.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ end
1919
function TEST(text)
2020
return function (name)
2121
return function (expect)
22-
files.setText('', text)
22+
files.setText(TESTURI, text)
2323
EditResult = nil
24-
local row, fmt = findInsertRow('')
25-
applyAutoRequire('', row, name, name, fmt)
24+
local row, fmt = findInsertRow(TESTURI)
25+
applyAutoRequire(TESTURI, row, name, name, fmt)
2626
assert(util.equal(EditResult, expect))
27-
files.remove('')
27+
files.remove(TESTURI)
2828
end
2929
end
3030
end

test/completion/init.lua

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,24 +68,24 @@ function TEST(script)
6868
---@diagnostic disable: await-in-sync
6969
local newScript, catched = catch(script, '?')
7070

71-
files.setText('', newScript)
72-
local state = files.getState('')
71+
files.setText(TESTURI, newScript)
72+
local state = files.getState(TESTURI)
7373
local inputPos = catched['?'][1][2]
7474
if ContinueTyping then
7575
local triggerCharacter = script:sub(inputPos - 1, inputPos - 1)
7676
if triggerCharacter == '\n'
7777
or triggerCharacter:find '%w_' then
7878
triggerCharacter = nil
7979
end
80-
core.completion('', inputPos, triggerCharacter)
80+
core.completion(TESTURI, inputPos, triggerCharacter)
8181
end
8282
local offset = guide.positionToOffset(state, inputPos)
8383
local triggerCharacter = script:sub(offset, offset)
8484
if triggerCharacter == '\n'
8585
or triggerCharacter:find '%w_' then
8686
triggerCharacter = nil
8787
end
88-
local result = core.completion('', inputPos, triggerCharacter)
88+
local result = core.completion(TESTURI, inputPos, triggerCharacter)
8989

9090
if not expect then
9191
assert(result == nil)
@@ -131,7 +131,7 @@ function TEST(script)
131131
assert(eq(expect, result))
132132
end
133133
end
134-
files.remove('')
134+
files.remove(TESTURI)
135135
end
136136
end
137137

test/crossfile/completion.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ config.set(nil, 'Lua.runtime.path', {
376376

377377
TEST {
378378
{
379-
path = 'D:/xxxx/1.lua',
379+
path = 'tt/xxxx/1.lua',
380380
content = '',
381381
},
382382
{
@@ -386,7 +386,7 @@ TEST {
386386
},
387387
completion = {
388388
{
389-
label = 'D:.xxxx',
389+
label = 'tt.xxxx',
390390
kind = CompletionItemKind.File,
391391
textEdit = EXISTS,
392392
},
@@ -402,12 +402,12 @@ config.set(nil, 'Lua.runtime.path', originRuntimePath)
402402

403403
local originRuntimePath = config.get(nil, 'Lua.runtime.path')
404404
config.set(nil, 'Lua.runtime.path', {
405-
'D:/?/1.lua',
405+
'tt/?/1.lua',
406406
})
407407

408408
TEST {
409409
{
410-
path = 'D:/xxxx/1.lua',
410+
path = 'tt/xxxx/1.lua',
411411
content = '',
412412
},
413413
{

test/definition/init.lua

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,22 @@ end
2424
function TEST(script)
2525
local newScript, catched = catch(script, '!?')
2626

27-
files.setText('', newScript)
27+
files.setText(TESTURI, newScript)
2828

29-
local results = core('', catched['?'][1][1])
29+
local results = core(TESTURI, catched['?'][1][1])
3030
if results then
3131
local positions = {}
3232
for i, result in ipairs(results) do
3333
if not vm.isMetaFile(result.uri) then
34-
positions[i] = { result.target.start, result.target.finish }
34+
positions[#positions+1] = { result.target.start, result.target.finish }
3535
end
3636
end
3737
assert(founded(catched['!'], positions))
3838
else
3939
assert(#catched['!'] == 0)
4040
end
4141

42-
files.remove('')
42+
files.remove(TESTURI)
4343
end
4444

4545
require 'definition.local'

0 commit comments

Comments
 (0)