diff --git a/CHANGELOG.md b/CHANGELOG.md index a9ed4850f..d988687f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to the "robotcode" extension will be documented in this file. +## v0.47.4 (2023-07-20) + +### Fix + +- don't update tests if editing `__init__.robot` files + ## v0.47.3 (2023-07-18) ### Fix diff --git a/package.json b/package.json index 244fe79b3..17b33bddb 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "description": "RobotFramework support for Visual Studio Code", "icon": "images/icon.png", "publisher": "d-biehl", - "version": "0.47.3", + "version": "0.47.4", "author": { "name": "Daniel Biehl", "url": "https://github.com/d-biehl/" diff --git a/packages/analyze/pyproject.toml b/packages/analyze/pyproject.toml index 43ba37621..90d075391 100644 --- a/packages/analyze/pyproject.toml +++ b/packages/analyze/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-plugin==0.47.3", - "robotcode-robot==0.47.3", + "robotcode-plugin==0.47.4", + "robotcode-robot==0.47.4", ] dynamic = ["version"] diff --git a/packages/analyze/src/robotcode/analyze/__version__.py b/packages/analyze/src/robotcode/analyze/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/analyze/src/robotcode/analyze/__version__.py +++ b/packages/analyze/src/robotcode/analyze/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/core/src/robotcode/core/__version__.py b/packages/core/src/robotcode/core/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/core/src/robotcode/core/__version__.py +++ b/packages/core/src/robotcode/core/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/debugger/pyproject.toml b/packages/debugger/pyproject.toml index af3b77676..5e3dd7285 100644 --- a/packages/debugger/pyproject.toml +++ b/packages/debugger/pyproject.toml @@ -28,8 +28,8 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==0.47.3", - "robotcode-runner==0.47.3", + "robotcode-jsonrpc2==0.47.4", + "robotcode-runner==0.47.4", ] [project.optional-dependencies] diff --git a/packages/debugger/src/robotcode/debugger/__version__.py b/packages/debugger/src/robotcode/debugger/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/debugger/src/robotcode/debugger/__version__.py +++ b/packages/debugger/src/robotcode/debugger/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/jsonrpc2/pyproject.toml b/packages/jsonrpc2/pyproject.toml index 296d862e2..d997fc4c6 100644 --- a/packages/jsonrpc2/pyproject.toml +++ b/packages/jsonrpc2/pyproject.toml @@ -25,7 +25,7 @@ classifiers = [ "Framework :: Robot Framework", "Framework :: Robot Framework :: Tool", ] -dependencies = ["robotcode-core==0.47.3"] +dependencies = ["robotcode-core==0.47.4"] dynamic = ["version"] [project.urls] diff --git a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py +++ b/packages/jsonrpc2/src/robotcode/jsonrpc2/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/language_server/pyproject.toml b/packages/language_server/pyproject.toml index 294d28943..18f083c82 100644 --- a/packages/language_server/pyproject.toml +++ b/packages/language_server/pyproject.toml @@ -27,8 +27,8 @@ classifiers = [ ] dependencies = [ "robotframework>=4.1.0", - "robotcode-jsonrpc2==0.47.3", - "robotcode==0.47.3", + "robotcode-jsonrpc2==0.47.4", + "robotcode==0.47.4", ] dynamic = ["version"] diff --git a/packages/language_server/src/robotcode/language_server/__version__.py b/packages/language_server/src/robotcode/language_server/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/language_server/src/robotcode/language_server/__version__.py +++ b/packages/language_server/src/robotcode/language_server/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/modifiers/src/robotcode/modifiers/__version__.py b/packages/modifiers/src/robotcode/modifiers/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/modifiers/src/robotcode/modifiers/__version__.py +++ b/packages/modifiers/src/robotcode/modifiers/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/plugin/src/robotcode/plugin/__version__.py b/packages/plugin/src/robotcode/plugin/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/plugin/src/robotcode/plugin/__version__.py +++ b/packages/plugin/src/robotcode/plugin/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/robot/pyproject.toml b/packages/robot/pyproject.toml index a0135a416..2a0157cc9 100644 --- a/packages/robot/pyproject.toml +++ b/packages/robot/pyproject.toml @@ -28,7 +28,7 @@ classifiers = [ dependencies = [ "robotframework>=4.1.0", "tomli>=1.1.0; python_version < '3.11'", - "robotcode-core==0.47.3", + "robotcode-core==0.47.4", ] dynamic = ["version"] diff --git a/packages/robot/src/robotcode/robot/__version__.py b/packages/robot/src/robotcode/robot/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/robot/src/robotcode/robot/__version__.py +++ b/packages/robot/src/robotcode/robot/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/packages/runner/pyproject.toml b/packages/runner/pyproject.toml index feb75834f..6d70afbab 100644 --- a/packages/runner/pyproject.toml +++ b/packages/runner/pyproject.toml @@ -28,9 +28,9 @@ classifiers = [ dynamic = ["version"] dependencies = [ "robotframework>=4.1.0", - "robotcode-robot==0.47.3", - "robotcode-modifiers==0.47.3", - "robotcode==0.47.3", + "robotcode-robot==0.47.4", + "robotcode-modifiers==0.47.4", + "robotcode==0.47.4", ] [project.entry-points.robotcode] diff --git a/packages/runner/src/robotcode/runner/__version__.py b/packages/runner/src/robotcode/runner/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/packages/runner/src/robotcode/runner/__version__.py +++ b/packages/runner/src/robotcode/runner/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/pyproject.toml b/pyproject.toml index 2d34b4b00..5345c0887 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,7 +49,7 @@ classifiers = [ "Framework :: Robot Framework :: Tool", ] requires-python = ">=3.8" -dependencies = ["robotcode-plugin==0.47.3"] +dependencies = ["robotcode-plugin==0.47.4"] dynamic = ["version"] @@ -66,20 +66,20 @@ robotcode = "robotcode.cli.__main__:main" [project.optional-dependencies] -debugger = ["robotcode-debugger==0.47.3"] -languageserver = ["robotcode-language-server==0.47.3"] -runner = ["robotcode-runner==0.47.3"] -analyze = ["robotcode-analyze==0.47.3"] +debugger = ["robotcode-debugger==0.47.4"] +languageserver = ["robotcode-language-server==0.47.4"] +runner = ["robotcode-runner==0.47.4"] +analyze = ["robotcode-analyze==0.47.4"] yaml = ["PyYAML>=5.4"] lint = ["robotframework-robocop>=2.0.0"] tidy = ["robotframework-tidy>=2.0.0"] rest = ["docutils"] colored = ["rich"] all = [ - "robotcode-debugger==0.47.3", - "robotcode-language-server==0.47.3", - "robotcode-runner==0.47.3", - "robotcode-analyze==0.47.3", + "robotcode-debugger==0.47.4", + "robotcode-language-server==0.47.4", + "robotcode-runner==0.47.4", + "robotcode-analyze==0.47.4", "PyYAML>=5.4", "robotframework-robocop>=2.0.0", "robotframework-tidy>=2.0.0", diff --git a/src/robotcode/cli/__version__.py b/src/robotcode/cli/__version__.py index 1eb5f6030..edd76c3d8 100644 --- a/src/robotcode/cli/__version__.py +++ b/src/robotcode/cli/__version__.py @@ -1 +1 @@ -__version__ = "0.47.3" +__version__ = "0.47.4" diff --git a/vscode-client/debugmanager.ts b/vscode-client/debugmanager.ts index a3aa0eb2d..661744a49 100644 --- a/vscode-client/debugmanager.ts +++ b/vscode-client/debugmanager.ts @@ -48,7 +48,7 @@ class RobotCodeDebugConfigurationProvider implements vscode.DebugConfigurationPr resolveDebugConfiguration( folder: vscode.WorkspaceFolder | undefined, debugConfiguration: vscode.DebugConfiguration, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): vscode.ProviderResult { return this._resolveDebugConfiguration(folder, debugConfiguration, token); } @@ -57,7 +57,7 @@ class RobotCodeDebugConfigurationProvider implements vscode.DebugConfigurationPr async _resolveDebugConfiguration( folder: vscode.WorkspaceFolder | undefined, debugConfiguration: vscode.DebugConfiguration, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { if (!debugConfiguration.type && !debugConfiguration.request && !debugConfiguration.name) { const editor = vscode.window.activeTextEditor; @@ -69,7 +69,7 @@ class RobotCodeDebugConfigurationProvider implements vscode.DebugConfigurationPr const result = await vscode.window.showQuickPick( DEBUG_CONFIGURATIONS.map((v) => v), { canPickMany: false }, - token + token, ); if (result !== undefined) { @@ -93,7 +93,7 @@ class RobotCodeDebugConfigurationProvider implements vscode.DebugConfigurationPr ?.find( (v) => v?.type === "robotcode" && - (v?.purpose === "default" || (Array.isArray(v?.purpose) && v?.purpose?.indexOf("default") > -1)) + (v?.purpose === "default" || (Array.isArray(v?.purpose) && v?.purpose?.indexOf("default") > -1)), ) ?? {}; debugConfiguration = { ...template, ...defaultLaunchConfig, ...debugConfiguration }; @@ -202,11 +202,14 @@ class RobotCodeDebugConfigurationProvider implements vscode.DebugConfigurationPr } class RobotCodeDebugAdapterDescriptorFactory implements vscode.DebugAdapterDescriptorFactory { - constructor(private readonly pythonManager: PythonManager, private readonly outputChannel: vscode.OutputChannel) {} + constructor( + private readonly pythonManager: PythonManager, + private readonly outputChannel: vscode.OutputChannel, + ) {} async createDebugAdapterDescriptor( session: vscode.DebugSession, - _executable: vscode.DebugAdapterExecutable | undefined + _executable: vscode.DebugAdapterExecutable | undefined, ): Promise { const config = vscode.workspace.getConfiguration(CONFIG_SECTION, session.workspaceFolder); @@ -250,7 +253,7 @@ class RobotCodeDebugAdapterDescriptorFactory implements vscode.DebugAdapterDescr const port = (await getAvailablePort( [host], - config.get("debugLauncher.tcpPort", DEBUG_ADAPTER_DEFAULT_TCP_PORT) ?? DEBUG_ADAPTER_DEFAULT_TCP_PORT + config.get("debugLauncher.tcpPort", DEBUG_ADAPTER_DEFAULT_TCP_PORT) ?? DEBUG_ADAPTER_DEFAULT_TCP_PORT, )) ?? DEBUG_ADAPTER_DEFAULT_TCP_PORT; this.spawnDebugLauncher(session, config, ["debug-launch", "--tcp", `${host}:${port}`, ...debugLauncherArgs]); @@ -301,7 +304,7 @@ class RobotCodeDebugAdapterDescriptorFactory implements vscode.DebugAdapterDescr private spawnDebugLauncher( session: vscode.DebugSession, config: vscode.WorkspaceConfiguration, - launchArgs: string[] + launchArgs: string[], ) { const pythonCommand = this.pythonManager.getPythonCommand(session.workspaceFolder); @@ -337,7 +340,7 @@ class RobotCodeDebugAdapterDescriptorFactory implements vscode.DebugAdapterDescr p.on("close", (code, signal) => { if (code !== 0) { this.outputChannel.appendLine( - `debug launcher exited with code ${code ?? "unknown"} and signal ${signal ?? "unknown"}` + `debug launcher exited with code ${code ?? "unknown"} and signal ${signal ?? "unknown"}`, ); } }); @@ -354,12 +357,12 @@ export class DebugManager { public readonly extensionContext: vscode.ExtensionContext, public readonly pythonManager: PythonManager, public readonly languageClientsManager: LanguageClientsManager, - public readonly outputChannel: vscode.OutputChannel + public readonly outputChannel: vscode.OutputChannel, ) { this._disposables = vscode.Disposable.from( vscode.debug.registerDebugConfigurationProvider( "robotcode", - new RobotCodeDebugConfigurationProvider(this.pythonManager) + new RobotCodeDebugConfigurationProvider(this.pythonManager), ), vscode.debug.registerDebugConfigurationProvider( @@ -367,17 +370,17 @@ export class DebugManager { { provideDebugConfigurations( _folder: vscode.WorkspaceFolder | undefined, - _token?: vscode.CancellationToken + _token?: vscode.CancellationToken, ): vscode.ProviderResult { return DEBUG_CONFIGURATIONS.map((v) => v.body); }, }, - vscode.DebugConfigurationProviderTriggerKind.Dynamic + vscode.DebugConfigurationProviderTriggerKind.Dynamic, ), vscode.debug.registerDebugAdapterDescriptorFactory( "robotcode", - new RobotCodeDebugAdapterDescriptorFactory(this.pythonManager, this.outputChannel) + new RobotCodeDebugAdapterDescriptorFactory(this.pythonManager, this.outputChannel), ), vscode.debug.onDidReceiveDebugSessionCustomEvent(async (event) => { @@ -387,7 +390,7 @@ export class DebugManager { await DebugManager.OnDebugpyStarted( event.session, event.event, - event.body as { port: number; addresses: undefined | string[] | null } + event.body as { port: number; addresses: undefined | string[] | null }, ); break; } @@ -406,7 +409,7 @@ export class DebugManager { event.session, body.outputFile as string, body.logFile as string, - body.reportFile as string + body.reportFile as string, ); break; } @@ -440,17 +443,17 @@ export class DebugManager { provideEvaluatableExpression( document: vscode.TextDocument, position: vscode.Position, - token: vscode.CancellationToken + token: vscode.CancellationToken, ): vscode.ProviderResult { return languageClientsManager.getEvaluatableExpression(document, position, token).then( (r) => { if (r) return new vscode.EvaluatableExpression(toVsCodeRange(r.range), r.expression); else return undefined; }, - (_) => undefined + (_) => undefined, ); }, - }) + }), ); } @@ -468,7 +471,7 @@ export class DebugManager { runId?: string, options?: vscode.DebugSessionOptions, dryRun?: boolean, - topLevelSuiteName?: string + topLevelSuiteName?: string, ): Promise { const config = vscode.workspace.getConfiguration(CONFIG_SECTION, folder); @@ -512,7 +515,7 @@ export class DebugManager { ?.find( (v) => v?.type === "robotcode" && - (v?.purpose === "test" || (Array.isArray(v?.purpose) && v?.purpose?.indexOf("test") > -1)) + (v?.purpose === "test" || (Array.isArray(v?.purpose) && v?.purpose?.indexOf("test") > -1)), ) ?? {}; if (!("target" in testLaunchConfig)) { @@ -541,14 +544,14 @@ export class DebugManager { dryRun, }, }, - options + options, ); } static async OnDebugpyStarted( session: vscode.DebugSession, _event: string, - options?: { port: number; addresses: undefined | string[] | null } + options?: { port: number; addresses: undefined | string[] | null }, ): Promise { if ( session.type === "robotcode" && @@ -598,7 +601,7 @@ export class DebugManager { session: vscode.DebugSession, _outputFile?: string, logFile?: string, - reportFile?: string + reportFile?: string, ): Promise { if (session.configuration?.openOutputAfterRun === "report" && reportFile) { await this.languageClientsManager.openUriInDocumentationView(vscode.Uri.file(reportFile)); diff --git a/vscode-client/extension.ts b/vscode-client/extension.ts index b0cfcd0db..a92a1260c 100644 --- a/vscode-client/extension.ts +++ b/vscode-client/extension.ts @@ -5,7 +5,12 @@ import { PythonManager } from "./pythonmanger"; import { TestControllerManager } from "./testcontrollermanager"; class TerminalLink extends vscode.TerminalLink { - constructor(public path: string, startIndex: number, length: number, tooltip?: string) { + constructor( + public path: string, + startIndex: number, + length: number, + tooltip?: string, + ) { super(startIndex, length, tooltip); } } @@ -66,7 +71,7 @@ export async function activateAsync(context: vscode.ExtensionContext): Promise this.restart(vscode.workspace.getWorkspaceFolder(uri)?.uri)); @@ -131,7 +131,7 @@ export class LanguageClientsManager { vscode.commands.registerCommand("robotcode.clearCacheRestartLanguageServers", async () => { await this.clearCaches(); await this.restart(); - }) + }), ); } @@ -159,14 +159,14 @@ export class LanguageClientsManager { (reason) => { this.outputChannel.appendLine(`can't stop client ${reason}`); return true; - } + }, ); } dispose(): void { this.stopAllClients().then( (_) => undefined, - (_) => undefined + (_) => undefined, ); this._disposables.dispose(); } @@ -206,7 +206,7 @@ export class LanguageClientsManager { } else if (item && item.id === "retry") { this.restart(folder.uri).then( (_) => undefined, - (_) => undefined + (_) => undefined, ); } }); @@ -226,7 +226,7 @@ export class LanguageClientsManager { this.showErrorWithSelectPythonInterpreter( `Can't find a valid python executable for workspace folder '${folder.name}'. ` + "Check if python and the python extension is installed.", - folder + folder, ); return undefined; @@ -238,7 +238,7 @@ export class LanguageClientsManager { this.showErrorWithSelectPythonInterpreter( `Invalid python version for workspace folder '${folder.name}'. Only python version >= 3.8 supported. ` + "Please update to a newer python version or select a valid python environment.", - folder + folder, ); return undefined; @@ -251,7 +251,7 @@ export class LanguageClientsManager { this.showErrorWithSelectPythonInterpreter( `Robot Framework package not found in workspace folder '${folder.name}'. ` + "Please install Robot Framework >= Version 4.0 to the current python environment or select a valid python environment.", - folder + folder, ); return undefined; @@ -263,7 +263,7 @@ export class LanguageClientsManager { this.showErrorWithSelectPythonInterpreter( `Robot Framework version in workspace folder '${folder.name}' not supported. Only Robot Framework version >= 4.0.0 supported. ` + "Please install or update Robot Framework >= Version 4.0 to the current python environment or select a valid python environment.", - folder + folder, ); return undefined; @@ -321,7 +321,7 @@ export class LanguageClientsManager { public async getLanguageClientForResource( resource: string | vscode.Uri, - create = true + create = true, ): Promise { return this.clientsMutex.dispatch(async () => { const uri = resource instanceof vscode.Uri ? resource : vscode.Uri.parse(resource); @@ -415,7 +415,7 @@ export class LanguageClientsManager { this: void, // NOSONAR codeLens: vscode.CodeLens, token: vscode.CancellationToken, - next: ResolveCodeLensSignature + next: ResolveCodeLensSignature, ): vscode.ProviderResult { const resolvedCodeLens = next(codeLens, token); @@ -433,8 +433,8 @@ export class LanguageClientsManager { position.range.start.line, position.range.start.character, position.range.end.line, - position.range.end.character - ) + position.range.end.character, + ), ); }), ]; @@ -464,16 +464,16 @@ export class LanguageClientsManager { result?.diagnostics?.clear(); this.outputChannel.appendLine( - `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} starting.` + `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} starting.`, ); } else if (e.newState == State.Running) { this.outputChannel.appendLine( - `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} running.` + `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} running.`, ); closeHandlerAction = CloseAction.Restart; } else if (e.newState == State.Stopped) { this.outputChannel.appendLine( - `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} stopped.` + `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} stopped.`, ); if (workspaceFolder && this.clients.get(workspaceFolder.uri.toString()) !== result) closeHandlerAction = CloseAction.DoNotRestart; @@ -493,16 +493,16 @@ export class LanguageClientsManager { const started = await result.start().then( (_) => { this.outputChannel.appendLine( - `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} started.` + `client for ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} started.`, ); return true; }, (reason) => { this.outputChannel.appendLine( - `client ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} error: ${reason}` + `client ${result?.clientOptions.workspaceFolder?.uri ?? "unknown"} error: ${reason}`, ); return false; - } + }, ); if (started) { @@ -565,7 +565,7 @@ export class LanguageClientsManager { const robotFiles = await vscode.workspace.findFiles( new vscode.RelativePattern(f, `**/*.{${this.fileExtensions.join(",")}}}`), undefined, - 1 + 1, ); if (robotFiles.length > 0) { folders.add(f); @@ -589,14 +589,14 @@ export class LanguageClientsManager { } else { vscode.env.openExternal(uri).then( () => undefined, - () => undefined + () => undefined, ); } } public async convertToDocumententationUri( uri: vscode.Uri, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { const client = await this.getLanguageClientForResource(uri); @@ -610,13 +610,13 @@ export class LanguageClientsManager { { uri: uri.toString(), }, - token - ) + token, + ), ) : vscode.Uri.parse( await client.sendRequest("robot/documentationServer/convertUri", { uri: uri.toString(), - }) + }), )) ?? undefined ); } @@ -624,7 +624,7 @@ export class LanguageClientsManager { public async getEvaluatableExpression( document: vscode.TextDocument, position: Position, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { const client = await this.getLanguageClientForResource(document.uri); @@ -638,7 +638,7 @@ export class LanguageClientsManager { textDocument: { uri: document.uri.toString() }, position, }, - token + token, ) : await client.sendRequest("robot/debugging/getEvaluatableExpression", { textDocument: { uri: document.uri.toString() }, @@ -651,7 +651,7 @@ export class LanguageClientsManager { document: vscode.TextDocument, viewPort: vscode.Range, context: vscode.InlineValueContext, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { const client = await this.getLanguageClientForResource(document.uri); @@ -669,7 +669,7 @@ export class LanguageClientsManager { stoppedLocation: { start: context.stoppedLocation.start, end: context.stoppedLocation.end }, }, }, - token + token, ) : await client.sendRequest("robot/debugging/getInlineValues", { textDocument: { uri: document.uri.toString() }, diff --git a/vscode-client/pythonmanger.ts b/vscode-client/pythonmanger.ts index 19faf8eb8..c1acc69fc 100644 --- a/vscode-client/pythonmanger.ts +++ b/vscode-client/pythonmanger.ts @@ -90,14 +90,14 @@ export class PythonManager { constructor( public readonly extensionContext: vscode.ExtensionContext, - public readonly outputChannel: vscode.OutputChannel + public readonly outputChannel: vscode.OutputChannel, ) { this._pythonLanguageServerMain = this.extensionContext.asAbsolutePath( - path.join("bundled", "tool", "language_server") + path.join("bundled", "tool", "language_server"), ); this._checkRobotVersionMain = this.extensionContext.asAbsolutePath( - path.join("bundled", "tool", "utils", "check_robot_version.py") + path.join("bundled", "tool", "utils", "check_robot_version.py"), ); this._robotCodeMain = this.extensionContext.asAbsolutePath(path.join("bundled", "tool", "robotcode")); @@ -115,14 +115,14 @@ export class PythonManager { this._pythonExtension.activate().then( (_) => undefined, - (_) => undefined + (_) => undefined, ); this.outputChannel.appendLine("Python Extension is active"); this._pythonExtension.exports.ready.then( (_) => undefined, - (_) => undefined + (_) => undefined, ); } catch (ex) { this.outputChannel.appendLine("can't activate python extension"); @@ -182,7 +182,7 @@ export class PythonManager { folder: vscode.WorkspaceFolder, args: string[], stdioData?: string, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { const config = vscode.workspace.getConfiguration(CONFIG_SECTION, folder); const robotCodeExtraArgs = config.get("extraArgs", []); diff --git a/vscode-client/testcontrollermanager.ts b/vscode-client/testcontrollermanager.ts index 8aeafe7eb..2d57eaa07 100644 --- a/vscode-client/testcontrollermanager.ts +++ b/vscode-client/testcontrollermanager.ts @@ -77,7 +77,7 @@ interface RobotExecutionAttributes { tags: string[] | undefined; } -type RobotEventType = "suite" | "test" | "keyword" | string; +type RobotEventType = "suite" | "test" | "keyword"; interface RobotExecutionEvent { type: RobotEventType; @@ -86,7 +86,7 @@ interface RobotExecutionEvent { failedKeywords: RobotExecutionAttributes[] | undefined; } -type RobotLogLevel = "FAIL" | "WARN" | "INFO" | "DEBUG" | "TRACE" | string; +type RobotLogLevel = "FAIL" | "WARN" | "INFO" | "DEBUG" | "TRACE"; interface RobotLogMessageEvent { itemId: string | undefined; @@ -124,7 +124,10 @@ class WorkspaceFolderEntry { this._valid = v; } - public constructor(valid: boolean, readonly items: RobotTestItem[] | undefined) { + public constructor( + valid: boolean, + readonly items: RobotTestItem[] | undefined, + ) { this._valid = valid; } } @@ -146,7 +149,7 @@ export class TestControllerManager { public readonly extensionContext: vscode.ExtensionContext, public readonly languageClientsManager: LanguageClientsManager, public readonly debugManager: DebugManager, - public readonly outputChannel: vscode.OutputChannel + public readonly outputChannel: vscode.OutputChannel, ) { this.testController = vscode.tests.createTestController("robotCode.RobotFramework", "RobotFramework"); @@ -162,13 +165,13 @@ export class TestControllerManager { "Run", vscode.TestRunProfileKind.Run, async (request, token) => this.runTests(request, token), - true + true, ); this.runProfile.configureHandler = () => { this.configureRunProfile().then( (_) => undefined, - (_) => undefined + (_) => undefined, ); }; @@ -176,20 +179,20 @@ export class TestControllerManager { "Dry Run", vscode.TestRunProfileKind.Run, async (request, token) => this.runTests(request, token, true), - false + false, ); this.debugProfile = this.testController.createRunProfile( "Debug", vscode.TestRunProfileKind.Debug, async (request, token) => this.runTests(request, token), - true + true, ); this.debugProfile.configureHandler = () => { this.configureRunProfile().then( (_) => undefined, - (_) => undefined + (_) => undefined, ); }; @@ -197,11 +200,11 @@ export class TestControllerManager { "Dry Debug", vscode.TestRunProfileKind.Debug, async (request, token) => this.runTests(request, token, true), - false + false, ); const fileWatcher = vscode.workspace.createFileSystemWatcher( - `**/*.{${this.languageClientsManager.fileExtensions.join(",")}}` + `**/*.{${this.languageClientsManager.fileExtensions.join(",")}}`, ); fileWatcher.onDidCreate((uri) => this.refreshUri(uri, "create")); fileWatcher.onDidDelete((uri) => this.refreshUri(uri, "delete")); @@ -293,13 +296,13 @@ export class TestControllerManager { }), vscode.commands.registerCommand("robotcode.selectExecutionProfiles", async () => { await this.configureRunProfile(); - }) + }), ); } public async getRobotCodeProfiles( folder: vscode.WorkspaceFolder, - profiles?: string[] + profiles?: string[], ): Promise { const config = vscode.workspace.getConfiguration(CONFIG_SECTION, folder); const paths = config.get("robot.paths", undefined); @@ -322,9 +325,9 @@ export class TestControllerManager { await vscode.workspace.findFiles( new vscode.RelativePattern(v, `**/*.{${this.languageClientsManager.fileExtensions.join(",")}}}`), null, - 1 + 1, ) - ).length > 0 + ).length > 0, ); if (folders.length === 0) { @@ -343,7 +346,7 @@ export class TestControllerManager { value: v, }; }), - { title: "Select Workspace Folder" } + { title: "Select Workspace Folder" }, ) )?.value : folders[0]; @@ -372,7 +375,7 @@ export class TestControllerManager { await config.update( "profiles", profiles.map((p) => p.label), - vscode.ConfigurationTarget.WorkspaceFolder + vscode.ConfigurationTarget.WorkspaceFolder, ); } catch (e) { await vscode.window.showErrorMessage("Error while getting profiles, is this a robot project?", { @@ -439,7 +442,8 @@ export class TestControllerManager { public refreshDocument(document: vscode.TextDocument): void { if (!SUPPORTED_LANGUAGES.includes(document.languageId)) return; - if (!SUPPORTED_SUITE_FILE_EXTENSIONS.some((ext) => document.uri.path.endsWith(ext))) return; + if (!SUPPORTED_SUITE_FILE_EXTENSIONS.some((ext) => document.uri.path.toLowerCase().endsWith(ext))) return; + if (document.uri.path.toLowerCase().endsWith("__init__.robot")) return; const uri_str = document.uri.toString(); if (this.didChangedTimer.has(uri_str)) { @@ -461,28 +465,28 @@ export class TestControllerManager { this.refreshWorkspace( vscode.workspace.getWorkspaceFolder(document.uri), undefined, - cancelationTokenSource.token + cancelationTokenSource.token, ).then( () => undefined, - () => undefined + () => undefined, ); } }, - () => undefined + () => undefined, ); else { this.refreshWorkspace( vscode.workspace.getWorkspaceFolder(document.uri), undefined, - cancelationTokenSource.token + cancelationTokenSource.token, ).then( () => undefined, - () => undefined + () => undefined, ); } }, 1000), - cancelationTokenSource - ) + cancelationTokenSource, + ), ); } @@ -514,7 +518,7 @@ export class TestControllerManager { discoverArgs: string[], extraArgs: string[], stdioData?: string, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { const config = vscode.workspace.getConfiguration(CONFIG_SECTION, folder); const profiles = config.get("profiles", []); @@ -548,7 +552,7 @@ export class TestControllerManager { ...extraArgs, ], stdioData, - token + token, )) as RobotCodeDiscoverResult; if (result?.diagnostics) { @@ -561,7 +565,7 @@ export class TestControllerManager { r.source = v.source; r.code = v.code; return r; - }) + }), ); } } @@ -571,14 +575,14 @@ export class TestControllerManager { public async getTestsFromWorkspace( folder: vscode.WorkspaceFolder, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { // TODO do not use hardcoded file extensions const robotFiles = await vscode.workspace.findFiles( new vscode.RelativePattern(folder, "**/*.robot"), undefined, 1, - token + token, ); if (robotFiles.length === 0) { @@ -608,7 +612,7 @@ export class TestControllerManager { ["discover", "--read-from-stdin", "all"], [], JSON.stringify(o), - token + token, ); return result?.items; @@ -631,7 +635,7 @@ export class TestControllerManager { public async getTestsFromDocument( document: vscode.TextDocument, testItem: RobotTestItem, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { const folder = vscode.workspace.getWorkspaceFolder(document.uri); @@ -666,7 +670,7 @@ export class TestControllerManager { testItem?.longname, ], JSON.stringify(o), - token + token, ); return result?.items; @@ -712,7 +716,7 @@ export class TestControllerManager { } robotItem.children = robotItem.children.sort( - (a, b) => (a.range?.start.line || -1) - (b.range?.start.line || -1) + (a, b) => (a.range?.start.line || -1) - (b.range?.start.line || -1), ); } } @@ -749,7 +753,7 @@ export class TestControllerManager { if (this.robotTestItems.get(folder) === undefined || !this.robotTestItems.get(folder)?.valid) { this.robotTestItems.set( folder, - new WorkspaceFolderEntry(true, await this.getTestsFromWorkspace(folder, token)) + new WorkspaceFolderEntry(true, await this.getTestsFromWorkspace(folder, token)), ); } @@ -781,7 +785,7 @@ export class TestControllerManager { testItem = this.testController.createTestItem( robotTestItem.id, robotTestItem.name, - robotTestItem.uri ? vscode.Uri.parse(robotTestItem.uri) : undefined + robotTestItem.uri ? vscode.Uri.parse(robotTestItem.uri) : undefined, ); this.testItems.set(robotTestItem.id, testItem); @@ -854,7 +858,7 @@ export class TestControllerManager { private async refreshWorkspace( workspace?: vscode.WorkspaceFolder, _reason?: string, - token?: vscode.CancellationToken + token?: vscode.CancellationToken, ): Promise { return this.refreshFromUriMutex.dispatch(async () => { if (workspace) { @@ -884,7 +888,7 @@ export class TestControllerManager { if (testItem) { this.refreshItem(testItem).then( (_) => undefined, - (_) => undefined + (_) => undefined, ); return; } @@ -905,10 +909,10 @@ export class TestControllerManager { setTimeout(() => { this.refreshWorkspace(workspace, reason, cancelationTokenSource.token).then( () => undefined, - () => undefined + () => undefined, ); }, 1000), - cancelationTokenSource + cancelationTokenSource, ); } else { if (this.fileChangeTimer) { @@ -918,7 +922,7 @@ export class TestControllerManager { this.refresh().then( (_) => undefined, - (_) => undefined + (_) => undefined, ); } } @@ -981,7 +985,7 @@ export class TestControllerManager { public async runTests( request: vscode.TestRunRequest, token: vscode.CancellationToken, - dryRun?: boolean + dryRun?: boolean, ): Promise { const includedItems: vscode.TestItem[] = []; @@ -1054,7 +1058,7 @@ export class TestControllerManager { [], runId, options, - dryRun + dryRun, ); run_started = run_started || started; } else { @@ -1122,7 +1126,7 @@ export class TestControllerManager { runId, options, dryRun, - suiteName + suiteName, ); run_started = run_started || started; @@ -1226,8 +1230,8 @@ export class TestControllerManager { vscode.Uri.file(keyword.source), new vscode.Range( new vscode.Position((keyword.lineno ?? 1) - 1, 0), - new vscode.Position(keyword.lineno ?? 1, 0) - ) + new vscode.Position(keyword.lineno ?? 1, 0), + ), ); } @@ -1245,8 +1249,8 @@ export class TestControllerManager { vscode.Uri.file(event.attributes.source), new vscode.Range( new vscode.Position((event.attributes.lineno ?? 1) - 1, 0), - new vscode.Position(event.attributes.lineno ?? 1, 0) - ) + new vscode.Position(event.attributes.lineno ?? 1, 0), + ), ); } messages.push(message); @@ -1277,8 +1281,8 @@ export class TestControllerManager { vscode.Uri.file(event.source), new vscode.Range( new vscode.Position((event.lineno ?? 1) - 1, event.column ?? 0), - new vscode.Position(event.lineno ?? 1, event.column ?? 0) - ) + new vscode.Position(event.lineno ?? 1, event.column ?? 0), + ), ) : undefined; @@ -1298,7 +1302,7 @@ export class TestControllerManager { run.appendOutput( `[ ${style(event.level)} ] ${event.message.replaceAll("\n", "\r\n")}` + "\r\n", location, - event.itemId !== undefined ? this.findTestItemById(event.itemId) : undefined + event.itemId !== undefined ? this.findTestItemById(event.itemId) : undefined, ); } } diff --git a/vscode-client/utils.ts b/vscode-client/utils.ts index cc282fd47..0d3614275 100644 --- a/vscode-client/utils.ts +++ b/vscode-client/utils.ts @@ -210,6 +210,6 @@ export async function waitForFile(file: string, timeout = 30000): Promise(arr: readonly T[], predicate: (value: T) => Promise): Promise { return await arr.reduce( async (memo: T[] | Promise, e: T) => ((await predicate(e)) ? [...(await memo), e] : memo), - [] + [], ); }