diff options
| author | 2026-10-14 08:09:40 +0000 | |
|---|---|---|
| committer | 2026-10-14 08:09:40 +0000 | |
| commit | a3e9e53e64a1aa5692bca2b60bcbff6a0fcfdba1 (patch) | |
| tree | 2598c50e36e488935211c2e304b720a58315bacb /tests/drivers/toolchain_lsp_contract_test.js | |
| parent | embed: tests, editor support and docs; js vm file access; test fixes (diff) | |
lsp: quick fixes for hints and bare library names; comment cleanup
an undefined bare name that a module exports now says which one:
"put_c is used but never defined; did you mean to include rt and use
rt.put_c?", and the import quick fix is titled the same way and marked
preferred when it is the only one, so the editor's auto-fix applies it.
hints gain quick fixes that keep the program's meaning: an unused
parameter, or a local with no other use, is renamed to _; a constant
local with one declarator becomes const; a power-of-two multiply becomes
a parenthesized shift (not when a * / or % binds its left operand); and
let p = rt.new(n) with a small constant becomes let p[n]. the hints no
longer fire for _ discards or for locals already declared const.
whole-line /* */ comments in zc sources are // comments now, and //: is
gone from the maintained sources: the notes it marked were mostly the
documentation of the declaration below, which hovers now show. section
headers are separated from the declarations after them.
Diffstat (limited to 'tests/drivers/toolchain_lsp_contract_test.js')
| -rw-r--r-- | tests/drivers/toolchain_lsp_contract_test.js | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tests/drivers/toolchain_lsp_contract_test.js b/tests/drivers/toolchain_lsp_contract_test.js index 2872282..59d5a4c 100644 --- a/tests/drivers/toolchain_lsp_contract_test.js +++ b/tests/drivers/toolchain_lsp_contract_test.js @@ -284,12 +284,12 @@ test('inference', 'typed fields do not constrain the containing parameter to a s test('quickfix', 'an entire-line request finds the compiler error inside the range', () => { const source = 'fn main() { rt.put_n(7); }'; const r = run(source, [{ needle: 'fn', method: 'textDocument/codeAction', params: { range: { start: { line: 0, character: 0 }, end: { line: 0, character: source.length } }, context: { diagnostics: [{ range: { start: { line: 99, character: 99 }, end: { line: 99, character: 99 } }, message: 'stale' }] } } }]); - assert.ok(r.result(2)?.some(a => a.title === 'include rt;'), JSON.stringify(r.result(2))); + assert.ok(r.result(2)?.some(a => a.title === 'include rt'), JSON.stringify(r.result(2))); }); test('quickfix', 'an owner-name cursor can import a qualified module', () => { const source = 'fn main() { rt.put_n(7); }', start = { line: 0, character: source.indexOf('rt.') }; const r = run(source, [{ needle: 'rt.', method: 'textDocument/codeAction', params: { range: { start, end: start }, context: { diagnostics: [] } } }]); - assert.ok(r.result(2)?.some(a => a.title === 'include rt;')); + assert.ok(r.result(2)?.some(a => a.title === 'include rt')); }); test('modulehover', 'source library overview is available without a built-in module entry', () => { const folder = fs.mkdtempSync(path.join(os.tmpdir(), 'zc-module-hover-')); |
