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


TypeScript modelLine.MarkersTracker類代碼示例

本文整理匯總了TypeScript中vs/editor/common/model/modelLine.MarkersTracker的典型用法代碼示例。如果您正苦於以下問題:TypeScript MarkersTracker類的具體用法?TypeScript MarkersTracker怎麽用?TypeScript MarkersTracker使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


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

示例1: testLineEditMarkers

	function testLineEditMarkers(initialText: string, initialMarkers: LineMarker[], edits: ILineEdit[], expectedText: string, expectedChangedMarkers: number[], _expectedMarkers: LineMarker[]): void {
		let line = new ModelLine(1, initialText, NO_TAB_SIZE);
		line.addMarkers(initialMarkers);

		let changedMarkers = new MarkersTracker();
		line.applyEdits(changedMarkers, edits, NO_TAB_SIZE);

		assert.equal(line.text, expectedText, 'text');

		let actualMarkers = line.getMarkers().map(toLightWeightMarker);
		let expectedMarkers = _expectedMarkers.map(toLightWeightMarker);
		assert.deepEqual(actualMarkers, expectedMarkers, 'markers');

		let actualChangedMarkers = changedMarkers.getDecorationIds();
		actualChangedMarkers.sort();
		assert.deepEqual(actualChangedMarkers, expectedChangedMarkers, 'changed markers');
	}
開發者ID:diarmaidm,項目名稱:vscode,代碼行數:17,代碼來源:model.line.test.ts

示例2: testLinePrependMarkers

	function testLinePrependMarkers(aText: string, aMarkers: LineMarker[], bText: string, bMarkers: LineMarker[], expectedText: string, expectedChangedMarkers: number[], _expectedMarkers: LineMarker[]): void {
		let a = new ModelLine(1, aText, NO_TAB_SIZE);
		a.addMarkers(aMarkers);

		let b = new ModelLine(2, bText, NO_TAB_SIZE);
		b.addMarkers(bMarkers);

		let changedMarkers = new MarkersTracker();
		a.append(changedMarkers, b, NO_TAB_SIZE);

		assert.equal(a.text, expectedText, 'text');

		let actualMarkers = a.getMarkers().map(toLightWeightMarker);
		let expectedMarkers = _expectedMarkers.map(toLightWeightMarker);
		assert.deepEqual(actualMarkers, expectedMarkers, 'markers');

		let actualChangedMarkers = changedMarkers.getDecorationIds();
		actualChangedMarkers.sort();
		assert.deepEqual(actualChangedMarkers, expectedChangedMarkers, 'changed markers');
	}
開發者ID:diarmaidm,項目名稱:vscode,代碼行數:20,代碼來源:model.line.test.ts

示例3: testLineSplitMarkers

	function testLineSplitMarkers(initialText: string, initialMarkers: LineMarker[], splitColumn: number, forceMoveMarkers: boolean, expectedText1: string, expectedText2: string, expectedChangedMarkers: number[], _expectedMarkers1: LineMarker[], _expectedMarkers2: LineMarker[]): void {
		let line = new ModelLine(1, initialText, NO_TAB_SIZE);
		line.addMarkers(initialMarkers);

		let changedMarkers = new MarkersTracker();
		let otherLine = line.split(changedMarkers, splitColumn, forceMoveMarkers, NO_TAB_SIZE);

		assert.equal(line.text, expectedText1, 'text');
		assert.equal(otherLine.text, expectedText2, 'text');

		let actualMarkers1 = line.getMarkers().map(toLightWeightMarker);
		let expectedMarkers1 = _expectedMarkers1.map(toLightWeightMarker);
		assert.deepEqual(actualMarkers1, expectedMarkers1, 'markers');

		let actualMarkers2 = otherLine.getMarkers().map(toLightWeightMarker);
		let expectedMarkers2 = _expectedMarkers2.map(toLightWeightMarker);
		assert.deepEqual(actualMarkers2, expectedMarkers2, 'markers');

		let actualChangedMarkers = changedMarkers.getDecorationIds();
		actualChangedMarkers.sort();
		assert.deepEqual(actualChangedMarkers, expectedChangedMarkers, 'changed markers');
	}
開發者ID:diarmaidm,項目名稱:vscode,代碼行數:22,代碼來源:model.line.test.ts

示例4: _handleTrackedMarkers

	/**
	 * Handle changed markers (i.e. update decorations ranges and return the changed decorations, unique and sorted by id)
	 */
	private _handleTrackedMarkers(markersTracker: MarkersTracker): void {
		let changedInternalDecorationIds = markersTracker.getDecorationIds();
		if (changedInternalDecorationIds.length === 0) {
			return;
		}

		changedInternalDecorationIds.sort();

		let uniqueChangedDecorations: string[] = [], uniqueChangedDecorationsLen = 0;
		let previousInternalDecorationId: number = 0;
		for (let i = 0, len = changedInternalDecorationIds.length; i < len; i++) {
			let internalDecorationId = changedInternalDecorationIds[i];
			if (internalDecorationId === previousInternalDecorationId) {
				continue;
			}
			previousInternalDecorationId = internalDecorationId;

			let decoration = this._internalDecorations[internalDecorationId];
			if (!decoration) {
				// perhaps the decoration was removed in the meantime
				continue;
			}

			let startMarker = decoration.startMarker.position;
			let endMarker = decoration.endMarker.position;
			let range = TextModelWithDecorations._createRangeFromMarkers(startMarker, endMarker);
			decoration.setRange(this._multiLineDecorationsMap, range);

			uniqueChangedDecorations[uniqueChangedDecorationsLen++] = decoration.id;
		}

		if (uniqueChangedDecorations.length > 0) {
			let e: editorCommon.IModelDecorationsChangedEvent = {
				addedDecorations: [],
				changedDecorations: uniqueChangedDecorations,
				removedDecorations: []
			};
			this.emitModelDecorationsChangedEvent(e);
		}
	}
開發者ID:StateFarmIns,項目名稱:vscode,代碼行數:43,代碼來源:textModelWithDecorations.ts


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