Repository navigation
Prepare 0.3.0: tool management and current VLS compatibility - #554
Conversation
Seti and other icon themes without a V icon fall back to the language icon, so .v, .vsh, .vh, .vv and v.mod files now get the official V logo (examples/assets/v.svg from vlang/v). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v version prints a seven-character hash, which GitHub cannot resolve across the vlang/v fork network, so every V built from a clone was reported as unverifiable. Expand it with git in the compiler's clone. v.tools.updateChannel lets V track its latest release instead of master. VLS has no regular releases and keeps tracking master. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The server being replaced also receives the disabled settings, so the test could pick its pid after the restart had already ended it, and process.kill failed with ESRCH. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1280180 to
d3a6295
Compare
- Store managed V/VLS selections in globalState instead of settings, so Settings Sync never shares machine-specific paths; the default settings use the managed build before PATH. Accepting an installation resets an explicit path setting to its default. - Delete the managed build an update replaces. One that cannot be moved yet, such as a running executable on Windows, stays marked and is retried on the next activation or installation; builds interrupted more than a day ago are removed. Other windows whose VLS still uses a replaced build ask to reload. - Check that V accepts -new-compiler before downloading VLS, and resolve Windows GNU make before building V. - Always ask for missing V when the user accepts installing VLS, and explain when a manual request waits for an unanswered prompt or a running installation. - Offer a version-only VLS update on manual checks when upstream declares a newer vls_version. - Show a single startup notification for an unsupported VLS, with a clearer message for servers older than 0.0.3. - Inspect managed VLS in startup order: stamped metadata, reported version, then commit ancestry. - Retry unavailable update checks, remember declined missing-tool prompts, bound stored check state, and report unreachable VLS ancestry checks as unavailable rather than unsupported. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
9d38b14 to
0243361
Compare
VLS 0.0.3 (vlang/vls#537) reports its version through `vls --version`, so support no longer needs commit ancestry. External and managed servers are both accepted when they report 0.0.3 or newer, which also works offline. Building VLS verifies the new binary the same way instead of fetching full history to check for 4f668aa. Remove the ancestry checks through Git and the GitHub compare API, the managed baseline stamp and the revision-only identity formats. Managed metadata now only records the built commit and executable hash for update checks. Also wait for the old server's shutdown, rather than a fixed delay, in the integration test that rejects an external VLS 0.0.2. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Noticed the overlap with two of my PRs and would rather ask than pile on. I opened #556 and #556 — const userBinPath = path.join(os.homedir(), ".local", "bin")
// ...
if (fs.existsSync(installDir)) {
fs.rmSync(installDir, { recursive: true, force: true })
}That is the same defect as the #555 you list, and this PR fixes it structurally #557 — activation raised two information messages on every window open, Two smaller things from #557 that may be worth folding in here, if they are still
Nothing here depends on #554 or #557:
The question, then: shall I close #556 and #557 in favour of this one? I am happy One note on the queued runs: both jobs have been queued for about twelve hours |
|
Conflicts to resolve, after recent merges. |
|
Solved @JalonSolov |
A contributor opening a pull request today has no way to tell which problems are already known, which are being worked on, and which are deliberately out of scope. That shows up as duplicated effort, and it is avoidable. The list is ordered by cost rather than by importance, so a fix that lands today is never waiting on a bigger one. `golang.go` is the reference point, not the target: it is about ten times this extension's source and has had years of dedicated work, so the goal is to stop spending developer time on things the editor can already answer. Where vlang#554 already implements something, the item says so rather than repeating it. Items marked as defects are defects on master today, including three tests that fail on Windows while CI runs only on ubuntu-latest. markdownlint now covers ROADMAP.md as well, so the two documents stay under the same gate.
A contributor opening a pull request today has no way to tell which problems are already known, which are being worked on, and which are deliberately out of scope. That shows up as duplicated effort, and it is avoidable. The list is ordered by cost rather than by importance, so a fix that lands today is never waiting on a bigger one. `golang.go` is the reference point, not the target: it is about ten times this extension's source and has had years of dedicated work, so the goal is to stop spending developer time on things the editor can already answer. Where vlang#554 already implements something, the item says so rather than repeating it. Items marked as defects are defects on master today, including three tests that fail on Windows while CI runs only on ubuntu-latest. markdownlint now covers ROADMAP.md as well, so the two documents stay under the same gate.
Use the current upstream implementation, including the tool management refactor merged in vlang#554, while preserving the previous fork commits as merge ancestry.
A contributor opening a pull request today has no way to tell which problems are already known, which are being worked on, and which are deliberately out of scope. That shows up as duplicated effort, and it is avoidable. The list is ordered by cost rather than by importance, so a fix that lands today is never waiting on a bigger one. `golang.go` is the reference point, not the target: it is about ten times this extension's source and has had years of dedicated work, so the goal is to stop spending developer time on things the editor can already answer. Where vlang#554 already implements something, the item says so rather than repeating it. Items marked as defects are defects on master today, including three tests that fail on Windows while CI runs only on ubuntu-latest. markdownlint now covers ROADMAP.md as well, so the two documents stay under the same gate.
* docs: add a roadmap of known gaps A contributor opening a pull request today has no way to tell which problems are already known, which are being worked on, and which are deliberately out of scope. That shows up as duplicated effort, and it is avoidable. The list is ordered by cost rather than by importance, so a fix that lands today is never waiting on a bigger one. `golang.go` is the reference point, not the target: it is about ten times this extension's source and has had years of dedicated work, so the goal is to stop spending developer time on things the editor can already answer. Where #554 already implements something, the item says so rather than repeating it. Items marked as defects are defects on master today, including three tests that fail on Windows while CI runs only on ubuntu-latest. markdownlint now covers ROADMAP.md as well, so the two documents stay under the same gate. * docs: close the roadmap gaps, list what is next Every gap this file named is now closed (twelve PRs plus the pre-existing TaskProvider, verified rather than duplicated). Restructure around that: a short open list ordered cheapest first (toggle test file, snippet repair, fill-struct action, playground share, docs index) and a done record with PR references. Points at the new extension comparison. --------- Co-authored-by: office <office@local>
Prepare 0.3.0 with managed V/VLS installation and updates, current VLS compatibility, reliable language-server recovery, and formatting and syntax fixes. Requires VS Code 1.140.0 or newer.
Changes
vls --version, for external and managed servers alike. Older or unidentified servers offerV: Install or Update VLS.v.tools.updateChannel); VLS tracks master.Upstream integration
Incorporates the dependency update merged in #568, including
engines.vscode: ^1.140.0and@types/vscode: 1.140.0, while retaining extension version 0.3.0 and the migration to Oxc. The resolved manifest uses Oxlint 1.87.0, Oxfmt 0.72.0, TypeScript 7.0.2, and the latest Node 24 API types (24.19.1). Shared runtime/build dependencies remain at the current stable versions: languageclient 10.1.2, vsce 4.0.0, esbuild 0.28.2, and markdownlint-cli 0.49.1.Dependency
Requires vlang/vls#537, which adds
vls --version(VLS 0.0.3). Until it is merged, CI builds VLS from commite61d428.Issue scope
constant.numeric.float.v,.exponential.v) #553: numeric highlighting avoids exponential backtracking.main.imports,structs,enumsandfns. #403: imports, structs, enums and functions fold with upstream VLS. Grouped constants still require a server change and are not claimed solved.Validation
The current integration was verified locally on macOS arm64 with Node 26.6.0, VS Code 1.140.0, V
01eb669, and VLSe61d428:npm test(111 logic/adapter tests, TypeScript, Oxlint, and Oxfmt checks), all 14 grammar fixtures, README lint, Actionlint, and VSIX packaging pass.