diff --git a/package-lock.json b/package-lock.json index bff0a8b8d..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": "8.2.0-next.3", + "vscode-languageclient": "^10.1.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.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": "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.1.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-10.1.0.tgz", + "integrity": "sha512-XXRx6lqVitQy/oOLr9MfNYRG+MbQkhXkDaxbQMiKxEm8zZNfheRFUKNb8UYNh2stn9btl2wQM5wZFJjJvoc+jA==", "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.2", + "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.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": "8.2.1-next.1", - "vscode-languageserver-types": "3.17.6-next.1" + "vscode-jsonrpc": "9.0.1", + "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..88371e8be 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.1.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/extension.ts b/src/extension.ts index 8679e85e9..0639ee5b4 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 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/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 { 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",