Skip to content

Commit

Permalink
lightspeed: remove the client attribute from the LightSpeedManager class
Browse files Browse the repository at this point in the history
Since ab17f51 we don't delegate our requests to the LSP server.
We don't need to keep track of the client object anymore.
  • Loading branch information
goneri committed Jan 30, 2025
1 parent afcd80d commit bb52ca6
Show file tree
Hide file tree
Showing 6 changed files with 2 additions and 46 deletions.
8 changes: 1 addition & 7 deletions src/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,6 @@ export async function activate(context: ExtensionContext): Promise<void> {
// handle python status bar
const pythonInterpreterManager = new PythonInterpreterManager(
context,
client,
telemetry,
extSettings,
);
Expand All @@ -160,12 +159,7 @@ export async function activate(context: ExtensionContext): Promise<void> {
/**
* Handle "Ansible Lightspeed" in the extension
*/
lightSpeedManager = new LightSpeedManager(
context,
client,
extSettings,
telemetry,
);
lightSpeedManager = new LightSpeedManager(context, extSettings, telemetry);

vscode.commands.executeCommand("setContext", "lightspeedConnectReady", true);

Expand Down
6 changes: 0 additions & 6 deletions src/features/lightspeed/base.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as vscode from "vscode";
import { LanguageClient } from "vscode-languageclient/node";
import { LightSpeedAPI } from "./api";
import { TelemetryManager } from "../../utils/telemetryUtils";
import { SettingsManager } from "../../settings";
Expand All @@ -25,7 +24,6 @@ import { LightspeedExplorerWebviewViewProvider } from "./explorerWebviewViewProv

export class LightSpeedManager {
private context;
public client;
public settingsManager: SettingsManager;
public telemetry: TelemetryManager;
public apiInstance: LightSpeedAPI;
Expand All @@ -43,12 +41,10 @@ export class LightSpeedManager {

constructor(
context: vscode.ExtensionContext,
client: LanguageClient,
settingsManager: SettingsManager,
telemetry: TelemetryManager,
) {
this.context = context;
this.client = client;
this.settingsManager = settingsManager;
this.telemetry = telemetry;
this.lightSpeedActivityTracker = {};
Expand Down Expand Up @@ -78,7 +74,6 @@ export class LightSpeedManager {
);
this.contentMatchesProvider = new ContentMatchesWebview(
this.context,
this.client,
this.settingsManager,
this.apiInstance,
this.lightspeedAuthenticatedUser,
Expand All @@ -89,7 +84,6 @@ export class LightSpeedManager {
this.apiInstance,
this.lightspeedAuthenticatedUser,
context,
client,
settingsManager,
);

Expand Down
17 changes: 1 addition & 16 deletions src/features/lightspeed/contentMatchesWebview.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as vscode from "vscode";
import { LanguageClient } from "vscode-languageclient/node";
import { LightSpeedAPI } from "./api";
import { SettingsManager } from "../../settings";
import {
Expand All @@ -10,7 +9,6 @@ import {
IContentMatchParams,
ISuggestionDetails,
} from "../../interfaces/lightspeed";
import { getCurrentUTCDateTime } from "../utils/dateTime";
import * as yaml from "yaml";
import { LightspeedUser } from "./lightspeedUser";
import { parsePlays } from "./utils/parsePlays";
Expand All @@ -22,20 +20,17 @@ export class ContentMatchesWebview implements vscode.WebviewViewProvider {
private _extensionUri: vscode.Uri;
private context;
private lightspeedAuthenticatedUser: LightspeedUser;
public client;
public settingsManager: SettingsManager;
public apiInstance: LightSpeedAPI;
public suggestionDetails: ISuggestionDetails[] = [];

constructor(
context: vscode.ExtensionContext,
client: LanguageClient,
settingsManager: SettingsManager,
apiInstance: LightSpeedAPI,
lightspeedAuthenticatedUser: LightspeedUser,
) {
this.context = context;
this.client = client;
this.settingsManager = settingsManager;
this.apiInstance = apiInstance;
this._extensionUri = context.extensionUri;
Expand Down Expand Up @@ -83,19 +78,9 @@ export class ContentMatchesWebview implements vscode.WebviewViewProvider {
contentMatchesRequestData.model = model;
}

this.client.outputChannel?.appendLine(
`${getCurrentUTCDateTime().toISOString()}: request content matches from Ansible Lightspeed:\n${JSON.stringify(
contentMatchesRequestData,
)}`,
);

const outputData: ContentMatchesResponseParams | IError =
await this.apiInstance.contentMatchesRequest(contentMatchesRequestData);
this.client.outputChannel?.appendLine(
`${getCurrentUTCDateTime().toISOString()}: response data from Ansible lightspeed:\n${JSON.stringify(
outputData,
)}`,
);

return outputData;
}

Expand Down
7 changes: 0 additions & 7 deletions src/features/lightspeed/statusBar.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import * as vscode from "vscode";
import { LanguageClient } from "vscode-languageclient/node";
import { LightSpeedAPI } from "./api";
import { SettingsManager } from "../../settings";
import {
Expand All @@ -15,21 +14,18 @@ export class LightspeedStatusBar {
private apiInstance: LightSpeedAPI;
private lightspeedAuthenticatedUser: LightspeedUser;
private context;
public client;
public settingsManager: SettingsManager;
public statusBar: vscode.StatusBarItem;

constructor(
apiInstance: LightSpeedAPI,
lightspeedAuthenticatedUser: LightspeedUser,
context: vscode.ExtensionContext,
client: LanguageClient,
settingsManager: SettingsManager,
) {
this.apiInstance = apiInstance;
this.lightspeedAuthenticatedUser = lightspeedAuthenticatedUser;
this.context = context;
this.client = client;
this.settingsManager = settingsManager;
// create a new project lightspeed status bar item that we can manage
this.statusBar = this.initialiseStatusBar();
Expand Down Expand Up @@ -73,9 +69,6 @@ export class LightspeedStatusBar {
}

private handleStatusBar() {
if (!this.client.isRunning()) {
return;
}
try {
this.getLightSpeedStatusBarText().then((text) => {
this.statusBar.text = text;
Expand Down
7 changes: 0 additions & 7 deletions src/features/pythonMetadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,23 @@ import {
ThemeColor,
workspace,
} from "vscode";
import { LanguageClient } from "vscode-languageclient/node";
import { TelemetryManager } from "../utils/telemetryUtils";
import { SettingsManager } from "../settings";
import { AnsibleCommands } from "../definitions/constants";
import { execSync } from "child_process";

export class PythonInterpreterManager {
private context;
private client;
private pythonInterpreterStatusBarItem: StatusBarItem;
private telemetry: TelemetryManager;
private extensionSettings: SettingsManager;

constructor(
context: ExtensionContext,
client: LanguageClient,
telemetry: TelemetryManager,
extensionSettings: SettingsManager,
) {
this.context = context;
this.client = client;
this.telemetry = telemetry;
this.extensionSettings = extensionSettings;

Expand Down Expand Up @@ -62,9 +58,6 @@ export class PythonInterpreterManager {
* and receives notification from the server with ansible meta data associated with the opened file as param
*/
public async updatePythonInfo(): Promise<void> {
if (!this.client.isRunning()) {
return;
}
this.pythonInterpreterStatusBarItem.tooltip = new MarkdownString(
` Change environment `,
true,
Expand Down
3 changes: 0 additions & 3 deletions test/units/lightspeed/contentmatches.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ require("assert");

import { ContentMatchesWebview } from "../../../src/features/lightspeed/contentMatchesWebview";
import { SettingsManager } from "../../../src/settings";
import { LanguageClient } from "vscode-languageclient/node";
import sinon from "sinon";
import assert from "assert";

Expand Down Expand Up @@ -49,15 +48,13 @@ function createMatchErrorResponse(detail: unknown): IError {

function createContentMatchesWebview(): ContentMatchesWebview {
const m_context: Partial<ExtensionContext> = {};
const m_client: Partial<LanguageClient> = {};
const m_settings: Partial<SettingsManager> = {};
m_settings.settings = {} as ExtensionSettings;
m_settings.settings.lightSpeedService = {} as LightSpeedServiceSettings;
const m_api_instance: Partial<LightSpeedAPI> = {};
const m_l_user: Partial<LightspeedUser> = {};
const cmw = new ContentMatchesWebview(
m_context as ExtensionContext,
m_client as LanguageClient,
m_settings as SettingsManager,
m_api_instance as LightSpeedAPI,
m_l_user as LightspeedUser,
Expand Down

0 comments on commit bb52ca6

Please sign in to comment.