Skip to content

Commit

Permalink
refactor(providerRegister): optimize provider registration process
Browse files Browse the repository at this point in the history
Optimized the provider registration process in ProviderRegister.ts by replacing forEach loops with map functions. This change allows for cleaner and more efficient code, as it directly creates an array of disposables that can be pushed into the extensionContext subscriptions.
  • Loading branch information
phodal committed May 27, 2024
1 parent fc07535 commit 89fa377
Showing 1 changed file with 27 additions and 23 deletions.
50 changes: 27 additions & 23 deletions src/action/ProviderRegister.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import vscode from "vscode";
import vscode, { Disposable } from "vscode";

import { AutoDevExtension } from "../AutoDevExtension";
import { SUPPORTED_LANGUAGES } from "../editor/language/SupportedLanguage";
Expand All @@ -10,57 +10,61 @@ import { AutoDevRenameProvider } from "./refactor/rename/AutoDevRenameProvider";
import { SettingService } from "../settings/SettingService";

export function registerCodeLensProviders(context: AutoDevExtension) {
const filter = SUPPORTED_LANGUAGES.map(it => ({ language: it } as vscode.DocumentFilter));
const codelensProviderSub = vscode.languages.registerCodeLensProvider(
filter,
new AutoDevCodeLensProvider(context),
);
let disposables: Disposable[] = SUPPORTED_LANGUAGES.map((language) => {
return vscode.languages.registerCodeLensProvider({ language },
new AutoDevCodeLensProvider(context),
);
});

context.extensionContext.subscriptions.push(codelensProviderSub);
context.extensionContext.subscriptions.push(...disposables);
}

export function registerAutoDevProviders(context: AutoDevExtension) {
SUPPORTED_LANGUAGES.forEach((language) => {
vscode.languages.registerCodeActionsProvider({ language },
let disposables = SUPPORTED_LANGUAGES.map((language) => {
return vscode.languages.registerCodeActionsProvider({ language },
new AutoDevCodeActionProvider(context),
{
providedCodeActionKinds:
AutoDevCodeActionProvider.providedCodeActionKinds,
}
);
});

context.extensionContext.subscriptions.push(...disposables);
}

export function registerQuickFixProvider(context: AutoDevExtension) {
SUPPORTED_LANGUAGES.forEach((language) => {
vscode.languages.registerCodeActionsProvider({ language },
let disposables = SUPPORTED_LANGUAGES.map((language) => {
return vscode.languages.registerCodeActionsProvider({ language },
new AutoDevQuickFixProvider(),
{
providedCodeActionKinds: AutoDevQuickFixProvider.providedCodeActionKinds,
}
);
});

context.extensionContext.subscriptions.push(...disposables);
}

export function registerWebViewProvider(extension: AutoDevExtension) {
extension.extensionContext.subscriptions.push(vscode.window.registerWebviewViewProvider("autodev.autodevGUIView",
extension.sidebar, { webviewOptions: { retainContextWhenHidden: true }, }
)
let disposable = vscode.window.registerWebviewViewProvider("autodev.autodevGUIView",
extension.sidebar, { webviewOptions: { retainContextWhenHidden: true }, }
);
}

export function registerRenameAction(extension: AutoDevExtension) {
extension.extensionContext.subscriptions.push(vscode.languages.registerRenameProvider(SUPPORTED_LANGUAGES,
new AutoDevRenameProvider()
)
);
extension.extensionContext.subscriptions.push(disposable);
}

export function registerCodeSuggestionProvider(extension: AutoDevExtension) {
extension.extensionContext.subscriptions.push(vscode.languages.registerInlineCompletionItemProvider(SUPPORTED_LANGUAGES,
new AutoDevCodeSuggestionProvider()
)
let disposable = vscode.languages.registerInlineCompletionItemProvider(SUPPORTED_LANGUAGES,
new AutoDevCodeSuggestionProvider()
);

extension.extensionContext.subscriptions.push(disposable);
}

export function registerRenameAction(extension: AutoDevExtension) {
let disposable = vscode.languages.registerRenameProvider(SUPPORTED_LANGUAGES, new AutoDevRenameProvider());
extension.extensionContext.subscriptions.push(disposable);
}

export function registerRefactoringRename(extension: AutoDevExtension) {
Expand Down

0 comments on commit 89fa377

Please sign in to comment.