From b47c952a744fc58d7a202961102b17f430d8b641 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:21:41 +0000 Subject: [PATCH 1/7] Initial plan From e7bcac75f0326f2dbd7faea2d17ad143c63fe40f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:28:28 +0000 Subject: [PATCH 2/7] Add vitest.disableInlineConsoleLog setting to disable inline console logs Co-authored-by: sheremet-va <16173870+sheremet-va@users.noreply.github.com> --- .gitignore | 3 ++- package.json | 5 +++++ packages/extension/src/config.ts | 2 ++ packages/extension/src/runner.ts | 15 ++++++++++++++- 4 files changed, 23 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 59f1a905..d9855b00 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ test-results .yarn .pnp.* samples/**/coverage -tests-logs-* \ No newline at end of file +tests-logs-* +*.tsbuildinfo \ No newline at end of file diff --git a/package.json b/package.json index ac00fae7..e89fddaa 100644 --- a/package.json +++ b/package.json @@ -267,6 +267,11 @@ "description": "Show how long it took to import the module during the last test run. If multiple isolated tests imported the module, the times will be aggregated.", "type": "boolean", "default": true + }, + "vitest.disableInlineConsoleLog": { + "description": "Disable inline display of console.log messages in the editor. When enabled, console logs will still appear in the test output but not inline next to the code.", + "type": "boolean", + "default": false } } } diff --git a/packages/extension/src/config.ts b/packages/extension/src/config.ts index b04944dc..933785b2 100644 --- a/packages/extension/src/config.ts +++ b/packages/extension/src/config.ts @@ -72,6 +72,7 @@ export function getConfig(workspaceFolder?: WorkspaceFolder) { const debugOutFiles = get('debugOutFiles', []) const applyDiagnostic = get('applyDiagnostic', true) const ignoreWorkspace = get('ignoreWorkspace', false) ?? false + const disableInlineConsoleLog = get('disableInlineConsoleLog', false) ?? false return { env: get>('nodeEnv', null), @@ -98,6 +99,7 @@ export function getConfig(workspaceFolder?: WorkspaceFolder) { debuggerAddress: get('debuggerAddress', undefined) || undefined, logLevel, showImportsDuration: get('showImportsDuration', true) ?? true, + disableInlineConsoleLog, } } diff --git a/packages/extension/src/runner.ts b/packages/extension/src/runner.ts index 4b03cd8b..2b5fe1a8 100644 --- a/packages/extension/src/runner.ts +++ b/packages/extension/src/runner.ts @@ -11,6 +11,7 @@ import { getTasks } from '@vitest/runner/utils' import { basename, normalize, relative } from 'pathe' import { normalizeDriveLetter } from 'vitest-vscode-shared' import * as vscode from 'vscode' +import { getConfig } from './config' import { coverageContext, readCoverageReport } from './coverage' import { log } from './log' import { getTestData, TestCase, TestFile, TestFolder } from './testTreeData' @@ -30,6 +31,8 @@ export class TestRunner extends vscode.Disposable { private cancelled = false + private disableInlineConsoleLog = getConfig().disableInlineConsoleLog + constructor( private readonly controller: vscode.TestController, private readonly tree: TestTree, @@ -163,8 +166,9 @@ export class TestRunner extends vscode.Disposable { const testRun = this.testRun if (testRun) { // Create location from parsed console log for inline display + // Only set location if inline console logs are not disabled let location: vscode.Location | undefined - if (consoleLog.parsedLocation) { + if (consoleLog.parsedLocation && !this.disableInlineConsoleLog) { const uri = vscode.Uri.file(consoleLog.parsedLocation.file) const position = new vscode.Position( consoleLog.parsedLocation.line, @@ -183,6 +187,15 @@ export class TestRunner extends vscode.Disposable { log.info('[TEST]', consoleLog.content) } }) + + // Listen to configuration changes + this.disposables.push( + vscode.workspace.onDidChangeConfiguration((event) => { + if (event.affectsConfiguration('vitest.disableInlineConsoleLog')) { + this.disableInlineConsoleLog = getConfig().disableInlineConsoleLog + } + }), + ) } protected endTestRun() { From d3825de54326f11ef41be5d553fef02cb848c1c5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:31:08 +0000 Subject: [PATCH 3/7] Add scope to settings and use workspace-specific config in runner Co-authored-by: sheremet-va <16173870+sheremet-va@users.noreply.github.com> --- package.json | 9 ++++++--- packages/extension/src/runner.ts | 9 ++++++--- tsconfig.tsbuildinfo | 2 +- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e89fddaa..166b2293 100644 --- a/package.json +++ b/package.json @@ -261,17 +261,20 @@ "vitest.applyDiagnostic": { "description": "Show a squiggly line where the error was thrown. This also enables the error count in the File Tab.", "type": "boolean", - "default": true + "default": true, + "scope": "resource" }, "vitest.showImportsDuration": { "description": "Show how long it took to import the module during the last test run. If multiple isolated tests imported the module, the times will be aggregated.", "type": "boolean", - "default": true + "default": true, + "scope": "resource" }, "vitest.disableInlineConsoleLog": { "description": "Disable inline display of console.log messages in the editor. When enabled, console logs will still appear in the test output but not inline next to the code.", "type": "boolean", - "default": false + "default": false, + "scope": "resource" } } } diff --git a/packages/extension/src/runner.ts b/packages/extension/src/runner.ts index 2b5fe1a8..7c53d7dd 100644 --- a/packages/extension/src/runner.ts +++ b/packages/extension/src/runner.ts @@ -31,7 +31,7 @@ export class TestRunner extends vscode.Disposable { private cancelled = false - private disableInlineConsoleLog = getConfig().disableInlineConsoleLog + private disableInlineConsoleLog: boolean constructor( private readonly controller: vscode.TestController, @@ -52,6 +52,9 @@ export class TestRunner extends vscode.Disposable { this.disposables = [] }) + // Initialize with workspace-specific config + this.disableInlineConsoleLog = getConfig(api.workspaceFolder).disableInlineConsoleLog + api.onStdout((content) => { if (this.testRun) { this.testRun.appendOutput(formatTestOutput(content)) @@ -191,8 +194,8 @@ export class TestRunner extends vscode.Disposable { // Listen to configuration changes this.disposables.push( vscode.workspace.onDidChangeConfiguration((event) => { - if (event.affectsConfiguration('vitest.disableInlineConsoleLog')) { - this.disableInlineConsoleLog = getConfig().disableInlineConsoleLog + if (event.affectsConfiguration('vitest.disableInlineConsoleLog', api.workspaceFolder.uri)) { + this.disableInlineConsoleLog = getConfig(api.workspaceFolder).disableInlineConsoleLog } }), ) diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index ca451d25..592c06b4 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"root":["./debug-shims.d.ts","./packages/extension/src/api.ts","./packages/extension/src/config.ts","./packages/extension/src/constants.ts","./packages/extension/src/coverage.ts","./packages/extension/src/debug.ts","./packages/extension/src/diagnostic.ts","./packages/extension/src/extension.ts","./packages/extension/src/importsbreakdownprovider.ts","./packages/extension/src/log.ts","./packages/extension/src/polyfills.ts","./packages/extension/src/runner.ts","./packages/extension/src/schemaprovider.ts","./packages/extension/src/tagsmanager.ts","./packages/extension/src/testtree.ts","./packages/extension/src/testtreedata.ts","./packages/extension/src/utils.ts","./packages/extension/src/watcher.ts","./packages/extension/src/api/child_process.ts","./packages/extension/src/api/pkg.ts","./packages/extension/src/api/resolve.ts","./packages/extension/src/api/rpc.ts","./packages/extension/src/api/terminal.ts","./packages/extension/src/api/types.ts","./packages/extension/src/api/ws.ts","./packages/extension/src/worker/browsersetupfile.ts","./packages/extension/src/worker/index.ts","./packages/shared/src/emitter.ts","./packages/shared/src/index.ts","./packages/shared/src/rpc.ts","./packages/shared/src/utils.ts","./packages/worker/src/coverage.ts","./packages/worker/src/index.ts","./packages/worker/src/reporter.ts","./packages/worker/src/runner.ts","./packages/worker/src/watcher.ts","./packages/worker/src/worker.ts","./packages/worker-legacy/src/collect.ts","./packages/worker-legacy/src/coverage.ts","./packages/worker-legacy/src/index.ts","./packages/worker-legacy/src/reporter.ts","./packages/worker-legacy/src/setupfile.ts","./packages/worker-legacy/src/types.ts","./packages/worker-legacy/src/watcher.ts","./packages/worker-legacy/src/worker.ts"],"errors":true,"version":"5.9.3"} \ No newline at end of file +{"root":["./debug-shims.d.ts","./packages/extension/src/api.ts","./packages/extension/src/config.ts","./packages/extension/src/constants.ts","./packages/extension/src/coverage.ts","./packages/extension/src/debug.ts","./packages/extension/src/diagnostic.ts","./packages/extension/src/extension.ts","./packages/extension/src/importsBreakdownProvider.ts","./packages/extension/src/log.ts","./packages/extension/src/polyfills.ts","./packages/extension/src/runner.ts","./packages/extension/src/schemaProvider.ts","./packages/extension/src/tagsManager.ts","./packages/extension/src/testTree.ts","./packages/extension/src/testTreeData.ts","./packages/extension/src/utils.ts","./packages/extension/src/watcher.ts","./packages/extension/src/api/child_process.ts","./packages/extension/src/api/pkg.ts","./packages/extension/src/api/resolve.ts","./packages/extension/src/api/rpc.ts","./packages/extension/src/api/terminal.ts","./packages/extension/src/api/types.ts","./packages/extension/src/api/ws.ts","./packages/extension/src/worker/browserSetupFile.ts","./packages/extension/src/worker/index.ts","./packages/shared/src/emitter.ts","./packages/shared/src/index.ts","./packages/shared/src/rpc.ts","./packages/shared/src/utils.ts","./packages/worker/src/coverage.ts","./packages/worker/src/index.ts","./packages/worker/src/reporter.ts","./packages/worker/src/runner.ts","./packages/worker/src/watcher.ts","./packages/worker/src/worker.ts","./packages/worker-legacy/src/collect.ts","./packages/worker-legacy/src/coverage.ts","./packages/worker-legacy/src/index.ts","./packages/worker-legacy/src/reporter.ts","./packages/worker-legacy/src/setupFile.ts","./packages/worker-legacy/src/types.ts","./packages/worker-legacy/src/watcher.ts","./packages/worker-legacy/src/worker.ts"],"version":"5.9.3"} \ No newline at end of file From f299baa6b17c70f0ff5e59d3d25a8b9712ed170e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:31:26 +0000 Subject: [PATCH 4/7] Remove tsconfig.tsbuildinfo from tracking --- tsconfig.tsbuildinfo | 1 - 1 file changed, 1 deletion(-) delete mode 100644 tsconfig.tsbuildinfo diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo deleted file mode 100644 index 592c06b4..00000000 --- a/tsconfig.tsbuildinfo +++ /dev/null @@ -1 +0,0 @@ -{"root":["./debug-shims.d.ts","./packages/extension/src/api.ts","./packages/extension/src/config.ts","./packages/extension/src/constants.ts","./packages/extension/src/coverage.ts","./packages/extension/src/debug.ts","./packages/extension/src/diagnostic.ts","./packages/extension/src/extension.ts","./packages/extension/src/importsBreakdownProvider.ts","./packages/extension/src/log.ts","./packages/extension/src/polyfills.ts","./packages/extension/src/runner.ts","./packages/extension/src/schemaProvider.ts","./packages/extension/src/tagsManager.ts","./packages/extension/src/testTree.ts","./packages/extension/src/testTreeData.ts","./packages/extension/src/utils.ts","./packages/extension/src/watcher.ts","./packages/extension/src/api/child_process.ts","./packages/extension/src/api/pkg.ts","./packages/extension/src/api/resolve.ts","./packages/extension/src/api/rpc.ts","./packages/extension/src/api/terminal.ts","./packages/extension/src/api/types.ts","./packages/extension/src/api/ws.ts","./packages/extension/src/worker/browserSetupFile.ts","./packages/extension/src/worker/index.ts","./packages/shared/src/emitter.ts","./packages/shared/src/index.ts","./packages/shared/src/rpc.ts","./packages/shared/src/utils.ts","./packages/worker/src/coverage.ts","./packages/worker/src/index.ts","./packages/worker/src/reporter.ts","./packages/worker/src/runner.ts","./packages/worker/src/watcher.ts","./packages/worker/src/worker.ts","./packages/worker-legacy/src/collect.ts","./packages/worker-legacy/src/coverage.ts","./packages/worker-legacy/src/index.ts","./packages/worker-legacy/src/reporter.ts","./packages/worker-legacy/src/setupFile.ts","./packages/worker-legacy/src/types.ts","./packages/worker-legacy/src/watcher.ts","./packages/worker-legacy/src/worker.ts"],"version":"5.9.3"} \ No newline at end of file From b5a13447fbd94030274731deeb7589502a37787c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:32:59 +0000 Subject: [PATCH 5/7] Initialize disableInlineConsoleLog with default value Co-authored-by: sheremet-va <16173870+sheremet-va@users.noreply.github.com> --- packages/extension/src/runner.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/extension/src/runner.ts b/packages/extension/src/runner.ts index 7c53d7dd..eaa85f26 100644 --- a/packages/extension/src/runner.ts +++ b/packages/extension/src/runner.ts @@ -31,7 +31,7 @@ export class TestRunner extends vscode.Disposable { private cancelled = false - private disableInlineConsoleLog: boolean + private disableInlineConsoleLog = false constructor( private readonly controller: vscode.TestController, From b54e1f690b5630c2a01b21035af0db6a49a44fb1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 22 Dec 2025 13:39:49 +0000 Subject: [PATCH 6/7] Rename setting to showInlineConsoleLog with default true Co-authored-by: sheremet-va <16173870+sheremet-va@users.noreply.github.com> --- package.json | 6 +++--- packages/extension/src/config.ts | 4 ++-- packages/extension/src/runner.ts | 12 ++++++------ 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index 166b2293..946522c5 100644 --- a/package.json +++ b/package.json @@ -270,10 +270,10 @@ "default": true, "scope": "resource" }, - "vitest.disableInlineConsoleLog": { - "description": "Disable inline display of console.log messages in the editor. When enabled, console logs will still appear in the test output but not inline next to the code.", + "vitest.showInlineConsoleLog": { + "description": "Show inline console.log messages in the editor. When disabled, console logs will still appear in the test output but not inline next to the code.", "type": "boolean", - "default": false, + "default": true, "scope": "resource" } } diff --git a/packages/extension/src/config.ts b/packages/extension/src/config.ts index 933785b2..d9856b2f 100644 --- a/packages/extension/src/config.ts +++ b/packages/extension/src/config.ts @@ -72,7 +72,7 @@ export function getConfig(workspaceFolder?: WorkspaceFolder) { const debugOutFiles = get('debugOutFiles', []) const applyDiagnostic = get('applyDiagnostic', true) const ignoreWorkspace = get('ignoreWorkspace', false) ?? false - const disableInlineConsoleLog = get('disableInlineConsoleLog', false) ?? false + const showInlineConsoleLog = get('showInlineConsoleLog', true) ?? true return { env: get>('nodeEnv', null), @@ -99,7 +99,7 @@ export function getConfig(workspaceFolder?: WorkspaceFolder) { debuggerAddress: get('debuggerAddress', undefined) || undefined, logLevel, showImportsDuration: get('showImportsDuration', true) ?? true, - disableInlineConsoleLog, + showInlineConsoleLog, } } diff --git a/packages/extension/src/runner.ts b/packages/extension/src/runner.ts index eaa85f26..a2b8f350 100644 --- a/packages/extension/src/runner.ts +++ b/packages/extension/src/runner.ts @@ -31,7 +31,7 @@ export class TestRunner extends vscode.Disposable { private cancelled = false - private disableInlineConsoleLog = false + private showInlineConsoleLog = true constructor( private readonly controller: vscode.TestController, @@ -53,7 +53,7 @@ export class TestRunner extends vscode.Disposable { }) // Initialize with workspace-specific config - this.disableInlineConsoleLog = getConfig(api.workspaceFolder).disableInlineConsoleLog + this.showInlineConsoleLog = getConfig(api.workspaceFolder).showInlineConsoleLog api.onStdout((content) => { if (this.testRun) { @@ -169,9 +169,9 @@ export class TestRunner extends vscode.Disposable { const testRun = this.testRun if (testRun) { // Create location from parsed console log for inline display - // Only set location if inline console logs are not disabled + // Only set location if inline console logs are enabled let location: vscode.Location | undefined - if (consoleLog.parsedLocation && !this.disableInlineConsoleLog) { + if (consoleLog.parsedLocation && this.showInlineConsoleLog) { const uri = vscode.Uri.file(consoleLog.parsedLocation.file) const position = new vscode.Position( consoleLog.parsedLocation.line, @@ -194,8 +194,8 @@ export class TestRunner extends vscode.Disposable { // Listen to configuration changes this.disposables.push( vscode.workspace.onDidChangeConfiguration((event) => { - if (event.affectsConfiguration('vitest.disableInlineConsoleLog', api.workspaceFolder.uri)) { - this.disableInlineConsoleLog = getConfig(api.workspaceFolder).disableInlineConsoleLog + if (event.affectsConfiguration('vitest.showInlineConsoleLog', api.workspaceFolder.uri)) { + this.showInlineConsoleLog = getConfig(api.workspaceFolder).showInlineConsoleLog } }), ) From 9ece48c5361fef3116d6e5ff9e0fdeca54ceda7f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 23 Dec 2025 13:45:03 +0000 Subject: [PATCH 7/7] Add showInlineConsoleLog setting to README documentation Co-authored-by: sheremet-va <16173870+sheremet-va@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 9c93bbab..009b4062 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ These options are resolved relative to the [workspace file](https://code.visuals - `vitest.maximumConfigs`: The maximum amount of configs that Vitest extension can load. If exceeded, the extension will show a warning suggesting to use a workspace config file. Default: `5` - `vitest.logLevel`: How verbose should the logger be in the "Output" channel. Default: `info` - `vitest.applyDiagnostic`: Show a squiggly line where the error was thrown. This also enables the error count in the File Tab. Default: `true` +- `vitest.showInlineConsoleLog`: Show console.log messages inline in the editor next to the code that produced them. When disabled, console logs will still appear in the test output but not inline. Default: `true` - `vitest.experimentalStaticAstCollect`: uses AST parses to collect tests instead of running files and collecting them at runtime. Default: `true` ### Commands