Skip to content

chore: tune VS Code workspace config and scope editor type-checking#405

Merged
TylerVigario merged 2 commits into
mainfrom
chore/vscode-dx
Jun 17, 2026
Merged

chore: tune VS Code workspace config and scope editor type-checking#405
TylerVigario merged 2 commits into
mainfrom
chore/vscode-dx

Conversation

@TylerVigario

Copy link
Copy Markdown
Collaborator

What

Quality-of-life pass on the shared .vscode/ workspace config and editor type-checking, from a review of the folder. All editor/DX — no runtime or published-artifact changes.

Changes

  • Fix stale commentsettings.json called the linter "neostandard style"; neostandard was dropped for ESLint 10. Corrected.
  • Drop the inline markdownlint mirrorsettings.json hand-duplicated MD013: false. The extension auto-discovers .markdownlint.mjs / .markdownlint-cli2.mjs (which already set it), so the inline copy was redundant and could drift. Single source of truth now.
  • Search hygiene — exclude generated **/*.d.ts (80 files land in src/ after a build) from editor search.
  • Pin workspace TypeScripttypescript.tsdk + the use-workspace-version prompt, so in-editor checks use the project's tsc (matches CI), not VS Code's bundled one.
  • Per-file AVA debug — new Debug Current Test File (AVA) launch config; the existing one runs the whole suite + a type build.
  • .gitignore cleanup — removed two allow-list entries (tasks.json, debug-converter.js) that pointed at nonexistent files.
  • Scope editor type-checking to match CI — new src/tsconfig.json gives src/ strict checkJs in the editor (the set CI actually type-checks via tsconfig.build.json), while the root config keeps checkJs off for test//scripts//bench/. A naive checkJs: true on the root would have flooded the editor with 132 phantom errors in those dirs — errors CI never gates — so this scopes it cleanly to zero phantoms.

Verification

  • tsc -p src/tsconfig.json --noEmit → 0 errors (src clean under checkJs)
  • tsc -p tsconfig.json --noEmit → 0 errors (test/scripts/bench, checkJs off)
  • npm test → 453 passing (CI type-check path via tsconfig.build.json unaffected)
  • Language discovery (getLanguageCodes) filters to .js, so src/tsconfig.json is ignored by the build/tests
  • All four JSONC files validated

🤖 Generated with Claude Code

- fix stale "neostandard" comment in settings.json (dropped for ESLint 10)
- drop the inline markdownlint mirror; the extension auto-discovers
  .markdownlint.mjs / .markdownlint-cli2.mjs, so the duplicate could drift
- exclude generated **/*.d.ts from editor search
- pin the editor to the workspace TypeScript (typescript.tsdk) so in-editor
  checks use the same tsc version as CI
- add a "Debug Current Test File (AVA)" launch config for per-file debugging
- remove dead .gitignore allow-list entries (tasks.json, debug-converter.js)
  that referenced nonexistent files
- add src/tsconfig.json so the editor type-checks src/ with checkJs (matching
  CI) without flagging test/scripts/bench, which CI does not type-check

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 17, 2026 02:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refines the repository’s VS Code workspace configuration and editor-only type-checking setup, aiming to align in-editor feedback with what CI actually enforces while reducing editor noise.

Changes:

  • Scoped editor type-checking by removing src/ from the root tsconfig.json include list and introducing src/tsconfig.json with checkJs: true.
  • Updated .vscode/settings.json to pin the workspace TypeScript, remove redundant inline markdownlint settings, and exclude generated *.d.ts from editor search.
  • Added an AVA “debug current test file” launch configuration and cleaned up .gitignore allow-list entries for nonexistent VS Code files.

Reviewed changes

Copilot reviewed 3 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tsconfig.json Stops the root editor config from including src/, keeping checkJs off for non-CI-gated directories.
src/tsconfig.json New editor-only config enabling checkJs for src/ to better match CI’s strictness.
.vscode/settings.json Pins workspace TS SDK, removes redundant markdownlint mirror config, and improves search exclusions.
.vscode/launch.json Adds a per-file AVA debug configuration for faster focused debugging.
.gitignore Removes allow-list exceptions for VS Code files that do not exist in the repo.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/tsconfig.json
"compilerOptions": {
"checkJs": true
},
"include": ["**/*.js"]

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch on the scope mismatch — but we resolved it in the opposite direction (the intent is that all of src/ stays checkJs-clean, not just CI's current subset).

Rather than narrowing this editor config down to CI's set, I broadened CI up to match the editor: tsconfig.build.json now includes src/**/*.js (423803c). Both are recursive now, so any new file or subdirectory under src/ is type-checked in the editor and gated by CI — enforced, not phantom drift. Behavior-neutral today: src/*.js + src/utils/*.js and src/**/*.js resolve to the same 80 files (72 top-level + 8 in utils/).

tsconfig.build.json only included src/*.js and src/utils/*.js, so a future
file under a new src/ subdirectory would silently escape the checkJs gate.
Broaden the include to src/**/*.js so all of src/ is enforced checkJs-clean,
matching the editor's src/tsconfig.json (**/*.js). Behavior-neutral today —
the two patterns resolve to the same 80 files (72 top-level + 8 in utils/).

Resolves the PR #405 review note about editor/CI scope drift by aligning CI
up to the editor's recursive scope, rather than narrowing the editor down:
the intent is that all of src/ stays checkJs-compatible, so both should gate it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@TylerVigario TylerVigario merged commit 8af3a28 into main Jun 17, 2026
7 checks passed
@TylerVigario TylerVigario deleted the chore/vscode-dx branch June 17, 2026 03:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants