当前位置: 首页>>代码示例>>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;未经允许,请勿转载。