Repository navigation
Conversation
This was referenced Oct 6, 2026
metif12
force-pushed
the
feat/check-vet-fmt-tasks
branch
2 times, most recently
from
October 7, 2026 18:17
ef48079 to
0412839
Compare
`v -check`, `v vet -W` and `v fmt -verify` are the three gates the rest of a change hangs on. The v-workflow skill documents them as the two that gate everything else, and none of them was reachable from the extension — a user had to find a terminal. Each works on the active file when one is open, and on the workspace otherwise, matching how Run and Test already behave. All three surface through the `vls` problem matcher, so a failure lands in the Problems panel at the right line rather than only in the task output. The flags were verified against the compiler rather than assumed: | command | clean | problem | |---|---|---| | `v -check file.v` | exit 0 | exit 1 | | `v vet -W file.v` | exit 0 | exit 1 on warnings | | `v fmt -verify file.v` | exit 0 | exit 1 when not formatted | `v vet -W` is the one to use in CI, since it treats warnings as errors. The task enum grows to six actions, and every enum entry now has a description — a bare word in a task picker gives a user no idea what it runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was no onboarding. Tasks, CodeLens, coverage and the agent commands were only discoverable from the README, so a user who did not read it had no way to learn that `V: Check` or the coverage status item existed. The walkthrough has three steps, each completing when the command it describes has been run: 1. install V 2. build, run and test 3. check, vet and format That means the walkthrough walks a new user through the extension's own commands rather than asking them to read documentation first, and it is also the natural home for the agent features when those land. The agents step is deliberately absent. It would describe `v mcp` and `v skills`, which are not on this branch, and a walkthrough step for a command that does not exist is worse than no step. It can be added when vlang#558 and vlang#559 merge. A test checks the walkthrough rather than trusting it: every step must have a title, a description and a media file that exists in the repository, and every completion event must name a declared command. I confirmed it catches something by pointing a step at a missing file and watching it fail, then reverting.
metif12
force-pushed
the
feat/check-vet-fmt-tasks
branch
from
October 9, 2026 18:52
0412839 to
a9c005a
Compare
Contributor
Author
|
Closing as superseded by #583, which is this branch's tree plus three files. Both are based on |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this adds
Two things from the same part of the roadmap: the three gates that were
unreachable, and the onboarding that did not exist.
Check, vet, and format
V: Checkrunsv -check, which type-checks without producing a binaryV: Vetrunsv vet -W, which reports suspicious constructs and treatswarnings as errors — the one to use in CI
V: Format Checkrunsv fmt -verify, which reports whether the formatterwould change anything
None of these was reachable from the extension. The
v-workflowskill documentsv -checkandv fmt -verifyas the two that gate everything else, so a userfollowing the skill's advice had to leave the editor to follow it.
Each works on the active file when one is open, and on the workspace otherwise,
matching how Run and Test already behave. All three surface through the
vlsproblem matcher, so a failure lands in the Problems panel at the right line rather
than only in the task output.
The flags were verified against the compiler before writing the args:
v -check file.vv vet -W file.vv fmt -verify file.vWelcome walkthrough
There was no onboarding. Tasks, CodeLens, coverage and the agent commands were
only discoverable from the README, so a user who did not read it had no way to
learn that
V: Checkor the coverage status item existed.The walkthrough has three steps, each completing when the command it describes has
been run: install V, build/run/test, and check/vet/format. That walks a new user
through the extension's own commands rather than asking them to read
documentation first.
The agents step is deliberately absent. It would describe
v mcpandv skills, which are not on this branch, and a walkthrough step for a command thatdoes not exist is worse than no step. It can be added when #558 and #559 merge.
Verification
npm run lint,npm run lint:md,npm run test:grammar,npm run buildandnpm run packageall pass.npm testreports 24 tests, 21 pass, 3 fail. The three failures are thepre-existing Windows path-separator tests on
master, fixed in#561 and not touched here.
This branch is based on
masterrather than #556, so it carries none of thosefixes; the three failures are the same three, unchanged.
Proof the new tests catch something, each reverted:
v.modprobe instandaloneTaskScopewithif (false)→uses the nearest V project root for standalone saves and coverageredv.vls.openOutputentry fromcontributes.commands→declares every registered commandred, naming the idmarkdownDeprecationMessagefromvls.args→declares every legacy settingred, naming the keyships a walkthrough whose steps point at files that existred, naming the stepMy first attempt at (3) used a regex that silently matched nothing and the test
stayed green. I redid it through the parsed object, which is the version reported
above — a sabotage that does not apply proves nothing about the test.
Relation to other PRs
Independent of #556, #557, #558, #559 and #560. It touches
taskSpec.ts,vTasks.ts,package.json,README.md,CHANGELOG.mdandwalkthrough/, noneof which the other PRs modify in a conflicting way.