提交 62beb903 编写于 作者: M Matt Bierner

Export CodeActionSet interface instead of implementation

上级 f8c8531e
......@@ -15,9 +15,14 @@ import { CodeAction, CodeActionContext, CodeActionProviderRegistry, CodeActionTr
import { IModelService } from 'vs/editor/common/services/modelService';
import { CodeActionFilter, CodeActionKind, CodeActionTrigger, filtersAction, mayIncludeActionsOfKind } from './codeActionTrigger';
import { TextModelCancellationTokenSource } from 'vs/editor/browser/core/editorState';
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { Disposable, DisposableStore, IDisposable } from 'vs/base/common/lifecycle';
export class CodeActionSet extends Disposable {
export interface CodeActionSet extends IDisposable {
readonly actions: readonly CodeAction[];
readonly hasAutoFix: boolean;
}
class ManagedCodeActionSet extends Disposable implements CodeActionSet {
private static codeActionsComparator(a: CodeAction, b: CodeAction): number {
if (isNonEmptyArray(a.diagnostics)) {
......@@ -38,7 +43,7 @@ export class CodeActionSet extends Disposable {
public constructor(actions: readonly CodeAction[], disposables: DisposableStore) {
super();
this._register(disposables);
this.actions = mergeSort([...actions], CodeActionSet.codeActionsComparator);
this.actions = mergeSort(Array.from(actions), ManagedCodeActionSet.codeActionsComparator);
}
public get hasAutoFix() {
......@@ -89,7 +94,7 @@ export function getCodeActions(
return Promise.all(promises)
.then(flatten)
.then(actions => new CodeActionSet(actions, disposables))
.then(actions => new ManagedCodeActionSet(actions, disposables))
.finally(() => {
listener.dispose();
cts.dispose();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册