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


TypeScript Range.containsPosition方法代碼示例

本文整理匯總了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;
	}
開發者ID:13572293130,項目名稱:vscode,代碼行數:29,代碼來源:quickFixModel.ts

示例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);
開發者ID:13572293130,項目名稱:vscode,代碼行數:30,代碼來源:quickFixModel.ts

示例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();
		});
	}
開發者ID:13572293130,項目名稱:vscode,代碼行數:46,代碼來源:quickFixModel.ts


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