diff --git a/src/features/lightspeed/base.ts b/src/features/lightspeed/base.ts index 0d0fa44ae8..6c770f1cb9 100644 --- a/src/features/lightspeed/base.ts +++ b/src/features/lightspeed/base.ts @@ -89,6 +89,7 @@ export class LightSpeedManager { context, settingsManager, ); + this.statusBarProvider.updateLightSpeedStatusbar(); this.lightspeedExplorerProvider = new LightspeedExplorerWebviewViewProvider( context.extensionUri, diff --git a/src/features/lightspeed/feedbackWebviewProvider.ts b/src/features/lightspeed/feedbackWebviewProvider.ts index 7dd2d6e064..fc21f2c301 100644 --- a/src/features/lightspeed/feedbackWebviewProvider.ts +++ b/src/features/lightspeed/feedbackWebviewProvider.ts @@ -86,7 +86,7 @@ export class LightspeedFeedbackWebviewProvider { return getWebviewContent(webview, extensionUri); } - private async _setWebviewMessageListener(webview: Webview) { - await setWebviewMessageListener(webview, this._disposables); + private _setWebviewMessageListener(webview: Webview) { + setWebviewMessageListener(webview, this._disposables); } } diff --git a/src/features/lightspeed/statusBar.ts b/src/features/lightspeed/statusBar.ts index d3324ca0b6..656c501173 100644 --- a/src/features/lightspeed/statusBar.ts +++ b/src/features/lightspeed/statusBar.ts @@ -29,7 +29,6 @@ export class LightspeedStatusBar { this.settingsManager = settingsManager; // create a new project lightspeed status bar item that we can manage this.statusBar = this.initialiseStatusBar(); - this.updateLightSpeedStatusbar(); } private initialiseStatusBar(): vscode.StatusBarItem { diff --git a/src/features/lightspeed/utils/scanner.ts b/src/features/lightspeed/utils/scanner.ts index cf34188dc3..c49845219d 100644 --- a/src/features/lightspeed/utils/scanner.ts +++ b/src/features/lightspeed/utils/scanner.ts @@ -69,6 +69,22 @@ export class CollectionFinder { return j; } + private async readCollectionsFromNamespace( + namespaceDirectory: string, + ): Promise<(AnsibleCollection | null)[]> { + const collectionDirectories = await readdir(namespaceDirectory, { + withFileTypes: true, + }); + const collectionPromises = collectionDirectories + .filter((entry) => entry.isDirectory()) + .map((entry) => + this.readCollectionMetaInformation( + path.join(entry.parentPath, entry.name), + ), + ); + return Promise.all(collectionPromises); + } + async searchNestedCollections() { const collectionsPath = path.join( this.workspacePaths[0], @@ -79,22 +95,11 @@ export class CollectionFinder { return namespaceDirectories .filter((namespaceEntry) => namespaceEntry.isDirectory()) .map((namespaceEntry) => { - const namespaceName = namespaceEntry.name; const namespaceDirectory = path.join( namespaceEntry.parentPath, - namespaceName, - ); - return readdir(namespaceDirectory, { withFileTypes: true }).then( - (collectionDirectories: Dirent[]) => { - return collectionDirectories - .filter((entry) => entry.isDirectory()) - .map((entry) => - this.readCollectionMetaInformation( - path.join(entry.parentPath, entry.name), - ), - ); - }, + namespaceEntry.name, ); + return this.readCollectionsFromNamespace(namespaceDirectory); }); }) .catch((e) => { @@ -102,12 +107,13 @@ export class CollectionFinder { return []; }); const r: AnsibleCollection[] = []; - for (let i = 0; i < a.length; i++) { - (await Promise.all(await a[i])).forEach((entry) => { + for (const namespacePromise of a) { + const entries = await namespacePromise; + for (const entry of entries) { if (entry instanceof AnsibleCollection) { r.push(entry); } - }); + } } return r; } diff --git a/test/helper.ts b/test/helper.ts index dc5853bb9f..ba3d10c1a9 100644 --- a/test/helper.ts +++ b/test/helper.ts @@ -10,8 +10,8 @@ import { LIGHTSPEED_ME_AUTH_URL } from "../src/definitions/lightspeed"; import { getInlineSuggestionItems } from "../src/features/lightspeed/inlineSuggestions"; import { rmSync } from "fs"; -export let doc: vscode.TextDocument; -export let editor: vscode.TextEditor; +let doc: vscode.TextDocument; +let editor: vscode.TextEditor; export const FIXTURES_BASE_PATH = path.join("test", "testFixtures"); export const ANSIBLE_COLLECTIONS_FIXTURES_BASE_PATH = path.resolve(