本文整理汇总了TypeScript中vs/editor/common/core/range.Range.containsPosition方法的典型用法代码示例。如果您正苦于以下问题:TypeScript Range.containsPosition方法的具体用法?TypeScript Range.containsPosition怎么用?TypeScript Range.containsPosition使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vs/editor/common/core/range.Range
的用法示例。
在下文中一共展示了Range.containsPosition方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: findMarker
private findMarker(pos: IPosition, findOnSameLine: boolean): IMarker {
if (this.lastMarker && Range.containsPosition(this.lastMarker, pos)) {
return this.lastMarker;
}
var markers = this.getMarkers(); // makers sorted by line start number
var result: IMarker = null;
var bestDistance: number = 0;
var lineNumber = pos.lineNumber;
// find first marker with a line number greater equal the current position
var idx = arrays.findFirst(markers, m => m.startLineNumber >= lineNumber);
while (idx < markers.length && markers[idx].startLineNumber === lineNumber) {
var marker = markers[idx];
if (marker.startColumn <= pos.column && marker.endColumn >= pos.column) {
return marker;
}
if (findOnSameLine) {
var dist = pos.column < marker.startColumn ? marker.startColumn - pos.column : pos.column - marker.endColumn;
if (!result || dist < bestDistance) {
result = marker;
bestDistance = dist;
}
}
idx++;
}
return result;
}
示例2: RunOnceScheduler
this.updateScheduler = new RunOnceScheduler(() => {
var marker = this.lastMarker;
var pos = this.editor.getPosition();
if (marker && Range.containsPosition(marker, pos)) {
// still on the same marker
if (this.lightBulpPosition) {
this.setDecoration(pos);
}
return;
}
this.lastMarker = marker = this.findMarker(pos, false);
if (!marker) {
// remove lightbulp
this.setDecoration(null);
return;
}
var $tRequest = timer.start(timer.Topic.EDITOR, 'quickfix/lighbulp');
var computeFixesPromise = this.computeFixes(marker);
computeFixesPromise.done((fixes) => {
this.setDecoration(!arrays.isFalsyOrEmpty(fixes) ? pos : null);
this.triggerAutoSuggest(marker);
$tRequest.stop();
}, (error) => {
onUnexpectedError(error);
this.setDecoration(null);
$tRequest.stop();
});
}, 250);
示例3: triggerDialog
public triggerDialog(auto:boolean, pos: IPosition):void {
// Cancel previous requests, change state & update UI
this.cancelDialog(false);
var range: IMarker | IRange;
if (auto) {
range = this.findMarker(pos, true);
if (!range) {
return;
}
} else {
range = this.findMarker(pos, true);
if (!range) {
// no error on the same line: get code action for the current selection
range = this.editor.getSelection();
}
if (!Range.containsPosition(range, pos)) {
// move cursor
this.editor.setPosition({ lineNumber: range.startLineNumber, column: range.startColumn });
}
}
var $tTrigger = timer.start(timer.Topic.EDITOR, 'quickfix/triggerdialog');
this.state = auto ? QuickFixSuggestState.AUTO_TRIGGER : QuickFixSuggestState.MANUAL_TRIGGER;
this.updateDecoration();
this.emit('loading', { auto: this.isAutoSuggest() });
this.computeFixes(range).done((fixes) => {
if (fixes && fixes.length > 0) {
fixes.sort((f1, f2) => f2.score - f1.score);
this.emit('suggest', {
fixes: fixes,
range: range,
auto: this.isAutoSuggest()
});
} else {
this.emit('empty', { auto: this.isAutoSuggest() });
}
$tTrigger.stop();
}, (error) => {
onUnexpectedError(error);
this.emit('empty', { auto: this.isAutoSuggest() });
$tTrigger.stop();
});
}