aboutsummaryrefslogtreecommitdiff
path: root/tests/drivers/hint_fixes_test.js
Commit message (Collapse)AuthorAgeFilesLines
* constants inside structs, and typo suggestions for fields and static membersGravatar zinc 13 days1-0/+4
| | | | | | | | const NAME = e; inside a struct body declares a compile-time constant named Struct.NAME, reached as Struct.NAME or by bare name in the struct's methods. A misspelled field or Struct.name member now ends its error with '; did you mean 'name'?' on the member word, which the language server turns into a quick fix.
* todo: one sorted list of open work; library suggestions without naming librariesGravatar zinc 13 days1-0/+2
| | | | | | | | | | | | | | TODO.md ticks the items verified done (namespaces, actor and icon libraries and their coverage, the genome embed, the bootstrap ownership limits, the docs and fixtures sweep) and lists everything still open, including the newly requested language features, sorted easiest first. the compiler no longer names actor: file libraries for suggestions come from src/lib/modules.txt, and lib.name before its include reports the missing include. icon gains fixtures for reading globals while stepping and for begin_function on a non-function, and the suite checks that nothing the compiler reads by default mentions actors. bf.zc, the web sample and std's capture example use qualified runtime names; LEARN.md uses build/bin paths.
* zc: untyped local const, c precedence for && and ||, import fixes for every ↵Gravatar zinc 13 days1-2/+14
| | | | | | | | | | | | | | | | module const name = value; inside a function declares a local constant that takes the initializer's type. the let quick fix now writes a bare const. the self-hosted compiler bound || tighter than &&, unlike zc0 and the readme. no existing source mixed them without parentheses, so only new code was affected. missing-name diagnostics and their quick fixes now search every module: rt, core, run, loaded files, and std, icon and actor scanned from source, including static groups (std.Text.itoa). typos suggest module exports (putc -> rt.put_c) and get a change-to fix.
* lsp: quick fixes for hints and bare library names; comment cleanupGravatar zinc 13 days1-0/+66
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.