modeTransition.ts 1.2 KB
Newer Older
A
Alex Dima 已提交
1 2 3 4 5 6 7 8 9 10
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/
'use strict';

import {IMode, IModeTransition} from 'vs/editor/common/modes';
import {Arrays} from 'vs/editor/common/core/arrays';

export class ModeTransition {
A
Alex Dima 已提交
11
	_modeTransitionBrand: void;
A
Alex Dima 已提交
12 13 14

	public startIndex:number;
	public mode:IMode;
A
Alex Dima 已提交
15
	public modeId: string;
A
Alex Dima 已提交
16 17 18 19

	constructor(startIndex:number, mode:IMode) {
		this.startIndex = startIndex|0;
		this.mode = mode;
A
Alex Dima 已提交
20
		this.modeId = mode.getId();
A
Alex Dima 已提交
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
	}

	public static findIndexInSegmentsArray(arr:ModeTransition[], desiredIndex: number): number {
		return Arrays.findIndexInSegmentsArray(arr, desiredIndex);
	}

	public static create(modeTransitions:IModeTransition[]): ModeTransition[] {
		let result:ModeTransition[] = [];
		for (let i = 0, len = modeTransitions.length; i < len; i++) {
			let modeTransition = modeTransitions[i];
			result.push(new ModeTransition(modeTransition.startIndex, modeTransition.mode));
		}
		return result;
	}
}