From bb33bfdc8a8ee5d561f83e6de69887794f896123 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 29 Jul 2026 13:39:42 -0400 Subject: [PATCH 1/3] [WIP] Update language client to 10.0.0 I think this changes a bit more than I really need to in order to update the language client. Ideally, I'd like to use 10.1.0, but that version doesn't seem to work properly (need to get around to filling that as a bug). See https://github.com/eclipse-jdtls/eclipse.jdt.ls/pull/3855 Signed-off-by: David Thompson --- package-lock.json | 87 ++++++++++------------ package.json | 17 ++--- src/TracingLanguageClient.ts | 1 + src/extension.ts | 8 +- src/log.ts | 2 +- src/providerDispatcher.ts | 5 +- src/requirements.ts | 2 +- src/webview/globals.d.ts | 2 + test/lightweight-mode-suite/index.ts | 2 +- test/standard-mode-suite/extension.test.ts | 2 +- test/standard-mode-suite/index.ts | 2 +- tsconfig.base.json | 10 ++- tsconfig.webview.json | 1 + 13 files changed, 68 insertions(+), 73 deletions(-) create mode 100644 src/webview/globals.d.ts diff --git a/package-lock.json b/package-lock.json index bff0a8b8d..332e1f782 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "semver": "^7.5.2", - "vscode-languageclient": "8.2.0-next.3", + "vscode-languageclient": "^10.0.0", "vscode-variables": "^1.0.1", "winreg-utf8": "^0.1.1", "winston": "^3.2.1", @@ -55,7 +55,7 @@ "sinon": "^14.0.0", "tar": "^7.5.11", "ts-loader": "^9.4.2", - "typescript": "^4.6.4", + "typescript": "^6.0.3", "typescript-eslint": "^8.65.0", "webpack": "^5.105.0", "webpack-cli": "^7.2.1" @@ -1237,7 +1237,8 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, "node_modules/base64-js": { "version": "1.3.1", @@ -4371,9 +4372,9 @@ "license": "MIT" }, "node_modules/semver": { - "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -4978,9 +4979,9 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -4988,7 +4989,7 @@ "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/typescript-eslint": { @@ -5291,60 +5292,50 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/vscode-jsonrpc": { - "version": "8.2.1-next.1", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.1-next.1.tgz", - "integrity": "sha512-L+DYtdUtqUXGpyMgHqer6IBKvFFhl/1ToiMmCmG85LYHuuX0jllHMz77MYt0RicakoYY+Lq1yLK6Qj3YBqgzDQ==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.0.tgz", + "integrity": "sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg==", + "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/vscode-languageclient": { - "version": "8.2.0-next.3", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.2.0-next.3.tgz", - "integrity": "sha512-Ojo6L2cb7GSiyD864k8vGb9fHxBdZeciHQQOF595C3IDHWg0w4KQ7iN7qGWVdl4wDNwlGTX3wWZawGfPTxnrPQ==", - "dependencies": { - "minimatch": "^5.1.0", - "semver": "^7.3.7", - "vscode-languageserver-protocol": "3.17.4-next.3" - }, - "engines": { - "vscode": "^1.79.0" - } - }, - "node_modules/vscode-languageclient/node_modules/brace-expansion": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz", - "integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.0.0.tgz", + "integrity": "sha512-3yRHFkktZQCCg8ehHnD2Z4DZ4mZ17FNo8bxM4OFt8wtpxNBAOZGHmpbIflZSkicvCxi+ozuWntbdeWiY0gP77w==", "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/vscode-languageclient/node_modules/minimatch": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", - "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" + "minimatch": "^10.2.5", + "semver": "^7.8.1", + "vscode-languageserver-protocol": "3.18.0", + "vscode-languageserver-textdocument": "1.0.13" }, "engines": { - "node": ">=10" + "vscode": "^1.91.0" } }, "node_modules/vscode-languageserver-protocol": { - "version": "3.17.6-next.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.6-next.1.tgz", - "integrity": "sha512-2npXUc8oe/fb9Bjcwm2HTWYZXyCbW4NTo7jkOrEciGO+/LfWbSMgqZ6PwKWgqUkgCbkPxQHNjoMqr9ol/Ehjgg==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.0.tgz", + "integrity": "sha512-Zdz+kJ12Iz6tc11xfZyEo501bBATHXrCjmMfnaR3pMnf1CoqZBKIynba3P+/bi9VEdrMbNtAVKYpKhbODvqy+Q==", + "license": "MIT", "dependencies": { - "vscode-jsonrpc": "8.2.1-next.1", - "vscode-languageserver-types": "3.17.6-next.1" + "vscode-jsonrpc": "9.0.0", + "vscode-languageserver-types": "3.18.0" } }, + "node_modules/vscode-languageserver-textdocument": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.13.tgz", + "integrity": "sha512-nx0ZHwMGIsVkzFG3/VLeJYBLTaFBRuNdGDvevvjuoayU5EOS2fEYazOhtCM3PI9ClMMg5igc0uwXtAq4tJj+Dw==", + "license": "MIT" + }, "node_modules/vscode-languageserver-types": { - "version": "3.17.6-next.1", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.6-next.1.tgz", - "integrity": "sha512-7xVc/xLtNhKuCKX0mINT6mFUrUuRz0EinhwPGT8Gtsv2hlo+xJb5NKbiGailcWa1/T5e4dr5Pb2MfGchHreHAA==" + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.18.0.tgz", + "integrity": "sha512-8TsGPNMIMiiBdkORgRSvLjuiEIiAFtO+KssmYWxQ+uSVvlf7RjK8YKCOjPzZ+YA04jXEV7+7LvkSmHkhpNS99g==", + "license": "MIT" }, "node_modules/vscode-variables": { "version": "1.0.1", diff --git a/package.json b/package.json index e36dc28da..42ac814b9 100644 --- a/package.json +++ b/package.json @@ -1326,11 +1326,11 @@ "default": false, "scope": "window" }, - "java.codeGeneration.generateCommentsInMarkdown": { - "type": "boolean", - "description": "Generate Javadoc comments in Markdown style (requires source compliance >= 23).", - "default": false - }, + "java.codeGeneration.generateCommentsInMarkdown": { + "type": "boolean", + "description": "Generate Javadoc comments in Markdown style (requires source compliance >= 23).", + "default": false + }, "java.codeGeneration.toString.template": { "type": "string", "description": "The template for generating the toString method.", @@ -2166,7 +2166,7 @@ "sinon": "^14.0.0", "tar": "^7.5.11", "ts-loader": "^9.4.2", - "typescript": "^4.6.4", + "typescript": "^6.0.3", "typescript-eslint": "^8.65.0", "webpack": "^5.105.0", "webpack-cli": "^7.2.1" @@ -2185,15 +2185,12 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "semver": "^7.5.2", - "vscode-languageclient": "8.2.0-next.3", + "vscode-languageclient": "^10.0.0", "vscode-variables": "^1.0.1", "winreg-utf8": "^0.1.1", "winston": "^3.2.1", "winston-daily-rotate-file": "^4.7.1" }, - "overrides": { - "vscode-languageserver-protocol": "3.17.6-next.1" - }, "segmentWriteKey": "Y7Y5Xk8dKEhVZHTmAkFZkqgdN4d7c4lt", "segmentWriteKeyDebug": "BflPll7uuKOCm3y0g7JpfXLVBVFBivDE" } diff --git a/src/TracingLanguageClient.ts b/src/TracingLanguageClient.ts index 667b52977..33ced720a 100644 --- a/src/TracingLanguageClient.ts +++ b/src/TracingLanguageClient.ts @@ -14,6 +14,7 @@ export class TracingLanguageClient extends LanguageClient { constructor(id: string, name: string, serverOptions: ServerOptions, clientOptions: LanguageClientOptions, forceDebug?: boolean) { super(id, name, serverOptions, clientOptions, forceDebug); + this.registerProposedFeatures(); this.isSyntaxServer = name?.includes("Syntax Server"); } diff --git a/src/extension.ts b/src/extension.ts index 8679e85e9..a3b37480a 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -285,9 +285,9 @@ export async function activate(context: ExtensionContext): Promise }, resolveCompletionItem: async (item, token, next): Promise => { const completionItem = await next(item, token); - if (completionItem?.documentation instanceof MarkdownString) { - completionItem.documentation = fixJdtLinksInDocumentation(completionItem.documentation); - } + // if (completionItem?.documentation instanceof MarkdownString) { + // completionItem.documentation = fixJdtLinksInDocumentation(completionItem.documentation); + // } return completionItem; }, // https://github.com/redhat-developer/vscode-java/issues/2130 @@ -424,7 +424,7 @@ export async function activate(context: ExtensionContext): Promise return true; } }, - outputChannel: requireStandardServer ? new OutputInfoCollector(extensionName) : undefined, + outputChannel: requireStandardServer ? window.createOutputChannel(extensionName, { log: true }) : undefined, outputChannelName: extensionName }; diff --git a/src/log.ts b/src/log.ts index ce340c3d9..30ffea336 100644 --- a/src/log.ts +++ b/src/log.ts @@ -1,5 +1,5 @@ import { createLogger, format, transports } from 'winston'; -import * as DailyRotateFile from 'winston-daily-rotate-file'; +import DailyRotateFile from 'winston-daily-rotate-file'; export function initializeLogFile(filename: string) { logger.add(new DailyRotateFile({ diff --git a/src/providerDispatcher.ts b/src/providerDispatcher.ts index abacbe141..869a107b0 100644 --- a/src/providerDispatcher.ts +++ b/src/providerDispatcher.ts @@ -25,16 +25,13 @@ export function registerClientProviders(context: ExtensionContext, options: Prov const symbolProvider = createDocumentSymbolProvider(); context.subscriptions.push(languages.registerDocumentSymbolProvider('java', symbolProvider)); - const jdtProvider = createJDTContentProvider(options); - context.subscriptions.push(workspace.registerTextDocumentContentProvider('jdt', jdtProvider)); - const classProvider = createClassContentProvider(options); context.subscriptions.push(workspace.registerTextDocumentContentProvider('class', classProvider)); overwriteWorkspaceSymbolProvider(context); return { - handles: [hoverProvider, symbolProvider, jdtProvider, classProvider] + handles: [hoverProvider, symbolProvider, classProvider] }; } diff --git a/src/requirements.ts b/src/requirements.ts index cedb881ba..11c6015f7 100644 --- a/src/requirements.ts +++ b/src/requirements.ts @@ -1,6 +1,6 @@ 'use strict'; -import * as expandHomeDir from 'expand-home-dir'; +import expandHomeDir from 'expand-home-dir'; import * as fse from 'fs-extra'; import { getRuntime, getSources, JAVAC_FILENAME, JAVA_FILENAME } from 'jdk-utils'; import * as path from 'path'; diff --git a/src/webview/globals.d.ts b/src/webview/globals.d.ts new file mode 100644 index 000000000..1f1c47329 --- /dev/null +++ b/src/webview/globals.d.ts @@ -0,0 +1,2 @@ +/* silence warnings from typescript about not being able to analyse sideeffects of css imports */ +declare module "*.css" {} \ No newline at end of file diff --git a/test/lightweight-mode-suite/index.ts b/test/lightweight-mode-suite/index.ts index a32edaa0c..d2c47a239 100644 --- a/test/lightweight-mode-suite/index.ts +++ b/test/lightweight-mode-suite/index.ts @@ -11,7 +11,7 @@ // a possible error to the callback or null if none. import * as path from 'path'; -import * as Mocha from 'mocha'; +import Mocha from 'mocha'; import { glob } from 'glob'; export async function run(testsRoot: string): Promise { diff --git a/test/standard-mode-suite/extension.test.ts b/test/standard-mode-suite/extension.test.ts index aee1a1d02..9b5371122 100644 --- a/test/standard-mode-suite/extension.test.ts +++ b/test/standard-mode-suite/extension.test.ts @@ -1,4 +1,4 @@ -import * as assert from 'assert'; +import assert from 'assert'; import * as fs from 'fs'; import * as path from 'path'; import { env } from 'process'; diff --git a/test/standard-mode-suite/index.ts b/test/standard-mode-suite/index.ts index 479c5eedf..dd0c0cc2c 100644 --- a/test/standard-mode-suite/index.ts +++ b/test/standard-mode-suite/index.ts @@ -11,7 +11,7 @@ // a possible error to the callback or null if none. import * as path from 'path'; -import * as Mocha from 'mocha'; +import Mocha from 'mocha'; import { glob } from 'glob'; export async function run(testsRoot: string): Promise { diff --git a/tsconfig.base.json b/tsconfig.base.json index 17c7bc77a..49b721ae3 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -1,14 +1,20 @@ { "compilerOptions": { - "target": "es6", - "moduleResolution": "node", + "target": "es2020", + "module": "nodenext", "outDir": "out", "sourceMap": true, "skipLibCheck": true, + "strictFunctionTypes": false, + "strictNullChecks": false, + "noImplicitAny": false, + "noImplicitThis": false, + "useUnknownInCatchVariables": false, "plugins": [ { "name": "eslint" } ], + "types": ["node", "vscode", "mocha"] } } diff --git a/tsconfig.webview.json b/tsconfig.webview.json index 0c78cb638..b8a2bd5ea 100644 --- a/tsconfig.webview.json +++ b/tsconfig.webview.json @@ -9,6 +9,7 @@ "jsx": "react-jsx", "esModuleInterop": true, "allowSyntheticDefaultImports": true, + "rootDir": "./src" }, "include": [ "src/webview", From 14589a95df8312f9914d50106b09afb6f0e5de90 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 29 Jul 2026 15:51:34 -0400 Subject: [PATCH 2/3] [WIP] switch to 10.1.0 Got it working, don't know why it wasn't before Signed-off-by: David Thompson --- package-lock.json | 24 ++++++++++++------------ package.json | 2 +- src/TracingLanguageClient.ts | 1 - 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 332e1f782..fc35b314f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "semver": "^7.5.2", - "vscode-languageclient": "^10.0.0", + "vscode-languageclient": "^10.1.0", "vscode-variables": "^1.0.1", "winreg-utf8": "^0.1.1", "winston": "^3.2.1", @@ -5292,23 +5292,23 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/vscode-jsonrpc": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.0.tgz", - "integrity": "sha512-+VvMmQPJhtvJ+8O+zu2JKIRiLxXF8NW7krWgyMGeOHrp4Cn23T5hc0v2LknNeopDOB70wghHAds7mKtcZ0I4Sg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-9.0.1.tgz", + "integrity": "sha512-rfuA6T75H6m5EkbhtEPzre9pT0HPcDI2MMy4+nPFIBks5J8JBAUHD4tRYSgaBOijIEC7SRkC1kKyXTLqbmh9jw==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/vscode-languageclient": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.0.0.tgz", - "integrity": "sha512-3yRHFkktZQCCg8ehHnD2Z4DZ4mZ17FNo8bxM4OFt8wtpxNBAOZGHmpbIflZSkicvCxi+ozuWntbdeWiY0gP77w==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.1.0.tgz", + "integrity": "sha512-XXRx6lqVitQy/oOLr9MfNYRG+MbQkhXkDaxbQMiKxEm8zZNfheRFUKNb8UYNh2stn9btl2wQM5wZFJjJvoc+jA==", "license": "MIT", "dependencies": { "minimatch": "^10.2.5", "semver": "^7.8.1", - "vscode-languageserver-protocol": "3.18.0", + "vscode-languageserver-protocol": "3.18.2", "vscode-languageserver-textdocument": "1.0.13" }, "engines": { @@ -5316,12 +5316,12 @@ } }, "node_modules/vscode-languageserver-protocol": { - "version": "3.18.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.0.tgz", - "integrity": "sha512-Zdz+kJ12Iz6tc11xfZyEo501bBATHXrCjmMfnaR3pMnf1CoqZBKIynba3P+/bi9VEdrMbNtAVKYpKhbODvqy+Q==", + "version": "3.18.2", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.18.2.tgz", + "integrity": "sha512-XRyDbT0Pp3sSNti3JmxVEUMySWCSi1hhM+/KUlCy1hV1zmrqpM1OwO12EAki8blhmLuIMpaJrYbo0OzGVfK2Qg==", "license": "MIT", "dependencies": { - "vscode-jsonrpc": "9.0.0", + "vscode-jsonrpc": "9.0.1", "vscode-languageserver-types": "3.18.0" } }, diff --git a/package.json b/package.json index 42ac814b9..88371e8be 100644 --- a/package.json +++ b/package.json @@ -2185,7 +2185,7 @@ "react": "^17.0.2", "react-dom": "^17.0.2", "semver": "^7.5.2", - "vscode-languageclient": "^10.0.0", + "vscode-languageclient": "^10.1.0", "vscode-variables": "^1.0.1", "winreg-utf8": "^0.1.1", "winston": "^3.2.1", diff --git a/src/TracingLanguageClient.ts b/src/TracingLanguageClient.ts index 33ced720a..667b52977 100644 --- a/src/TracingLanguageClient.ts +++ b/src/TracingLanguageClient.ts @@ -14,7 +14,6 @@ export class TracingLanguageClient extends LanguageClient { constructor(id: string, name: string, serverOptions: ServerOptions, clientOptions: LanguageClientOptions, forceDebug?: boolean) { super(id, name, serverOptions, clientOptions, forceDebug); - this.registerProposedFeatures(); this.isSyntaxServer = name?.includes("Syntax Server"); } From 8debda8a1474e23ad9658365df344c2359f9c952 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Wed, 29 Jul 2026 16:11:17 -0400 Subject: [PATCH 3/3] [WIP] fix up the logging a bit It's still pretty messed up though. Seems like VS Code wants us to use its built-in log filtering tool instead of our setting. Signed-off-by: David Thompson --- src/extension.ts | 2 +- src/outputInfoCollector.ts | 25 +++++++++++++++++++++---- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index a3b37480a..0639ee5b4 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -424,7 +424,7 @@ export async function activate(context: ExtensionContext): Promise return true; } }, - outputChannel: requireStandardServer ? window.createOutputChannel(extensionName, { log: true }) : undefined, + outputChannel: requireStandardServer ? new OutputInfoCollector(extensionName) : undefined, outputChannelName: extensionName }; diff --git a/src/outputInfoCollector.ts b/src/outputInfoCollector.ts index c166e450c..fd93bb00b 100644 --- a/src/outputInfoCollector.ts +++ b/src/outputInfoCollector.ts @@ -1,11 +1,28 @@ -import { OutputChannel, window, ViewColumn } from "vscode"; +import { Event, LogLevel, LogOutputChannel, ViewColumn, window } from "vscode"; import { logger } from "./log"; -export class OutputInfoCollector implements OutputChannel { - private channel: OutputChannel = null; +export class OutputInfoCollector implements LogOutputChannel { + private channel: LogOutputChannel = null; constructor(public name: string) { - this.channel = window.createOutputChannel(this.name); + this.channel = window.createOutputChannel(this.name, { log:true }); + } + get logLevel(): LogLevel { return this.channel.logLevel; } + get onDidChangeLogLevel(): Event { return this.channel.onDidChangeLogLevel; }; + trace(message: string, ...args: any[]): void { + this.channel.trace(message, args); + } + debug(message: string, ...args: any[]): void { + this.channel.debug(message, args); + } + info(message: string, ...args: any[]): void { + this.channel.info(message, args); + } + warn(message: string, ...args: any[]): void { + this.channel.warn(message, args); + } + error(error: string | Error, ...args: any[]): void { + this.channel.error(error, args); } append(value: string): void {