當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript CodeActionProviderRegistry.onDidChange方法代碼示例

本文整理匯總了TypeScript中vs/editor/common/modes.CodeActionProviderRegistry.onDidChange方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript CodeActionProviderRegistry.onDidChange方法的具體用法?TypeScript CodeActionProviderRegistry.onDidChange怎麽用?TypeScript CodeActionProviderRegistry.onDidChange使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在vs/editor/common/modes.CodeActionProviderRegistry的用法示例。


在下文中一共展示了CodeActionProviderRegistry.onDidChange方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: constructor

    constructor(editor: ICodeEditor, markerService: IMarkerService, onAccept: (fix: IQuickFix2, marker:IMarker) => void) {
        super(/*[
            'cancel',
            'loading',
            'empty',
            'suggest',
            'destroy'
        ]*/);
        this.editor = editor;
        this.markerService = markerService;
        this.onAccept = onAccept;

        this.quickFixRequestPromise = null;
        this.lightBulpDecoration = [];
        this.toDispose = [];
        this.toLocalDispose = [];

        this.lightBulp = new LightBulpWidget(editor, (pos) => { this.onLightBulpClicked(pos); });

        this.enableAutoQuckFix = false; // turn off for now
        this.autoSuggestDelay = this.editor.getConfiguration().contribInfo.quickSuggestionsDelay;
        if (isNaN(this.autoSuggestDelay) || (!this.autoSuggestDelay && this.autoSuggestDelay !== 0) || this.autoSuggestDelay > 2000 || this.autoSuggestDelay < 0) {
            this.autoSuggestDelay = 300;
        }

        this.toDispose.push(this.editor.onDidChangeModel(() => this.onModelChanged()));
        this.toDispose.push(this.editor.onDidChangeModelMode(() => this.onModelChanged()));
        this.toDispose.push(CodeActionProviderRegistry.onDidChange(this.onModelChanged, this));
    }
開發者ID:1Hgm,項目名稱:vscode,代碼行數:29,代碼來源:quickFixModel.ts

示例2: getCodeActions

export function getCodeActions(
    model: ITextModel,
    rangeOrSelection: Range | Selection,
    trigger: CodeActionTrigger,
    token: CancellationToken
): Promise<CodeActionSet> {
    const filter = trigger.filter || {};

    const codeActionContext: CodeActionContext = {
        only: filter.kind ? filter.kind.value : undefined,
        trigger: trigger.type === 'manual' ? CodeActionTriggerKind.Manual : CodeActionTriggerKind.Automatic
    };

    const cts = new TextModelCancellationTokenSource(model, token);
    const providers = getCodeActionProviders(model, filter);

    const disposables = new DisposableStore();
    const promises = providers.map(provider => {
        return Promise.resolve(provider.provideCodeActions(model, rangeOrSelection, codeActionContext, cts.token)).then(providedCodeActions => {
            if (cts.token.isCancellationRequested || !providedCodeActions) {
                return [];
            }
            disposables.add(providedCodeActions);
            return providedCodeActions.actions.filter(action => action && filtersAction(filter, action));
        }, (err): CodeAction[] => {
            if (isPromiseCanceledError(err)) {
                throw err;
            }

            onUnexpectedExternalError(err);
            return [];
        });
    });

    const listener = CodeActionProviderRegistry.onDidChange(() => {
        const newProviders = CodeActionProviderRegistry.all(model);
        if (!equals(newProviders, providers)) {
            cts.cancel();
        }
    });

    return Promise.all(promises)
        .then(flatten)
        .then(actions => new ManagedCodeActionSet(actions, disposables))
        .finally(() => {
            listener.dispose();
            cts.dispose();
        });
}
開發者ID:PKRoma,項目名稱:vscode,代碼行數:49,代碼來源:codeAction.ts

示例3: constructor

    constructor(
        editor: ICommonCodeEditor,
        contextKeyService: IContextKeyService
    ) {
        super();
        this._editor = editor;

        this._langId = EditorContextKeys.languageId.bindTo(contextKeyService);
        this._hasCompletionItemProvider = EditorContextKeys.hasCompletionItemProvider.bindTo(contextKeyService);
        this._hasCodeActionsProvider = EditorContextKeys.hasCodeActionsProvider.bindTo(contextKeyService);
        this._hasCodeLensProvider = EditorContextKeys.hasCodeLensProvider.bindTo(contextKeyService);
        this._hasDefinitionProvider = EditorContextKeys.hasDefinitionProvider.bindTo(contextKeyService);
        this._hasImplementationProvider = EditorContextKeys.hasImplementationProvider.bindTo(contextKeyService);
        this._hasTypeDefinitionProvider = EditorContextKeys.hasTypeDefinitionProvider.bindTo(contextKeyService);
        this._hasHoverProvider = EditorContextKeys.hasHoverProvider.bindTo(contextKeyService);
        this._hasDocumentHighlightProvider = EditorContextKeys.hasDocumentHighlightProvider.bindTo(contextKeyService);
        this._hasDocumentSymbolProvider = EditorContextKeys.hasDocumentSymbolProvider.bindTo(contextKeyService);
        this._hasReferenceProvider = EditorContextKeys.hasReferenceProvider.bindTo(contextKeyService);
        this._hasRenameProvider = EditorContextKeys.hasRenameProvider.bindTo(contextKeyService);
        this._hasDocumentFormattingProvider = EditorContextKeys.hasDocumentFormattingProvider.bindTo(contextKeyService);
        this._hasDocumentSelectionFormattingProvider = EditorContextKeys.hasDocumentSelectionFormattingProvider.bindTo(contextKeyService);
        this._hasSignatureHelpProvider = EditorContextKeys.hasSignatureHelpProvider.bindTo(contextKeyService);
        this._isInWalkThrough = EditorContextKeys.isInEmbeddedEditor.bindTo(contextKeyService);

        const update = () => this._update();

        // update when model/mode changes
        this._register(editor.onDidChangeModel(update));
        this._register(editor.onDidChangeModelLanguage(update));

        // update when registries change
        this._register(modes.SuggestRegistry.onDidChange(update));
        this._register(modes.CodeActionProviderRegistry.onDidChange(update));
        this._register(modes.CodeLensProviderRegistry.onDidChange(update));
        this._register(modes.DefinitionProviderRegistry.onDidChange(update));
        this._register(modes.ImplementationProviderRegistry.onDidChange(update));
        this._register(modes.TypeDefinitionProviderRegistry.onDidChange(update));
        this._register(modes.HoverProviderRegistry.onDidChange(update));
        this._register(modes.DocumentHighlightProviderRegistry.onDidChange(update));
        this._register(modes.DocumentSymbolProviderRegistry.onDidChange(update));
        this._register(modes.ReferenceProviderRegistry.onDidChange(update));
        this._register(modes.RenameProviderRegistry.onDidChange(update));
        this._register(modes.DocumentFormattingEditProviderRegistry.onDidChange(update));
        this._register(modes.DocumentRangeFormattingEditProviderRegistry.onDidChange(update));
        this._register(modes.SignatureHelpProviderRegistry.onDidChange(update));

        update();
    }
開發者ID:Chan-PH,項目名稱:vscode,代碼行數:48,代碼來源:editorModeContext.ts


注:本文中的vs/editor/common/modes.CodeActionProviderRegistry.onDidChange方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。