本文整理汇总了TypeScript中vs/editor/common/modes.QuickFixRegistry类的典型用法代码示例。如果您正苦于以下问题:TypeScript QuickFixRegistry类的具体用法?TypeScript QuickFixRegistry怎么用?TypeScript QuickFixRegistry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QuickFixRegistry类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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.addListener2(EventType.ModelChanged, () => this.onModelChanged()));
this.toDispose.push(this.editor.addListener2(EventType.ModelModeChanged, () => this.onModelChanged()));
this.toDispose.push(this.editor.addListener2(EventType.ModelModeSupportChanged, (e: IModeSupportChangedEvent) => {
if (e.quickFixSupport) {
this.onModelChanged();
}
}));
this.toDispose.push(QuickFixRegistry.onDidChange(this.onModelChanged, this));
}
示例2: onModelChanged
private onModelChanged(): void {
this.cancelDialog();
this.localDispose();
this.lastMarker = null;
this.lightBulpPosition = null;
this.markers = null;
this.updateScheduler = null;
if (!QuickFixRegistry.has(this.editor.getModel()) || this.editor.getConfiguration().readOnly) {
this.setDecoration(null);
return;
}
this.markerService.onMarkerChanged(this.onMarkerChanged, this, this.toLocalDispose);
this.toLocalDispose.push(this.editor.addListener2(EventType.CursorPositionChanged, (e: ICursorPositionChangedEvent) => {
this.onCursorPositionChanged();
}));
}
示例3: computeFixes
private computeFixes(range: IMarker | IRange): TPromise<IQuickFix2[]> {
let model = this.editor.getModel();
if (!QuickFixRegistry.has(model)) {
return TPromise.as(null);
}
if (this.quickFixRequestPromise && range === this.quickFixRequestPromiseRange) {
return this.quickFixRequestPromise;
}
if (this.quickFixRequestPromise) {
this.quickFixRequestPromise.cancel();
this.quickFixRequestPromise = null;
}
this.quickFixRequestPromiseRange = range;
this.quickFixRequestPromise = getQuickFixes(model, range);
return this.quickFixRequestPromise;
}
示例4: getQuickFixes
export function getQuickFixes(model: IModel, range: IRange): TPromise<IQuickFix2[]> {
const quickFixes: IQuickFix2[] = [];
let idPool = 0;
const promises = QuickFixRegistry.all(model).map(support => {
return support.getQuickFixes(model.getAssociatedResource(), range).then(result => {
if (!Array.isArray(result)) {
return;
}
for (let fix of result) {
quickFixes.push({
command: fix.command,
score: fix.score,
id: `quickfix_#${idPool++}`,
support
});
}
}, err => {
onUnexpectedError(err);
});
});
return TPromise.join(promises).then(() => quickFixes);
}