当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript characterClassifier.CharacterClassifier类代码示例

本文整理汇总了TypeScript中vs/editor/common/core/characterClassifier.CharacterClassifier的典型用法代码示例。如果您正苦于以下问题:TypeScript CharacterClassifier类的具体用法?TypeScript CharacterClassifier怎么用?TypeScript CharacterClassifier使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了CharacterClassifier类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: CharacterClassifier

const classifier = (function () {
	let result = new CharacterClassifier(CharacterClass.None);

	const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…';
	for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {
		result.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), CharacterClass.ForceTermination);
	}

	const CANNOT_END_WITH_CHARACTERS = '.,;';
	for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {
		result.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), CharacterClass.CannotEndIn);
	}

	return result;
})();
开发者ID:StateFarmIns,项目名称:vscode,代码行数:15,代码来源:linkComputer.ts

示例2: getClassifier

function getClassifier(): CharacterClassifier<CharacterClass> {
	if (_classifier === null) {
		_classifier = new CharacterClassifier<CharacterClass>(CharacterClass.None);

		const FORCE_TERMINATION_CHARACTERS = ' \t<>\'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…';
		for (let i = 0; i < FORCE_TERMINATION_CHARACTERS.length; i++) {
			_classifier.set(FORCE_TERMINATION_CHARACTERS.charCodeAt(i), CharacterClass.ForceTermination);
		}

		const CANNOT_END_WITH_CHARACTERS = '.,;';
		for (let i = 0; i < CANNOT_END_WITH_CHARACTERS.length; i++) {
			_classifier.set(CANNOT_END_WITH_CHARACTERS.charCodeAt(i), CharacterClass.CannotEndIn);
		}
	}
	return _classifier;
}
开发者ID:PKRoma,项目名称:vscode,代码行数:16,代码来源:linkComputer.ts

示例3: _createLink

	private static _createLink(classifier: CharacterClassifier<CharacterClass>, line: string, lineNumber: number, linkBeginIndex: number, linkEndIndex: number): ILink {
		// Do not allow to end link in certain characters...
		let lastIncludedCharIndex = linkEndIndex - 1;
		do {
			const chCode = line.charCodeAt(lastIncludedCharIndex);
			const chClass = classifier.get(chCode);
			if (chClass !== CharacterClass.CannotEndIn) {
				break;
			}
			lastIncludedCharIndex--;
		} while (lastIncludedCharIndex > linkBeginIndex);

		// Handle links enclosed in parens, square brackets and curlys.
		if (linkBeginIndex > 0) {
			const charCodeBeforeLink = line.charCodeAt(linkBeginIndex - 1);
			const lastCharCodeInLink = line.charCodeAt(lastIncludedCharIndex);

			if (
				(charCodeBeforeLink === CharCode.OpenParen && lastCharCodeInLink === CharCode.CloseParen)
				|| (charCodeBeforeLink === CharCode.OpenSquareBracket && lastCharCodeInLink === CharCode.CloseSquareBracket)
				|| (charCodeBeforeLink === CharCode.OpenCurlyBrace && lastCharCodeInLink === CharCode.CloseCurlyBrace)
			) {
				// Do not end in ) if ( is before the link start
				// Do not end in ] if [ is before the link start
				// Do not end in } if { is before the link start
				lastIncludedCharIndex--;
			}
		}

		return {
			range: {
				startLineNumber: lineNumber,
				startColumn: linkBeginIndex + 1,
				endLineNumber: lineNumber,
				endColumn: lastIncludedCharIndex + 2
			},
			url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1)
		};
	}
开发者ID:PKRoma,项目名称:vscode,代码行数:39,代码来源:linkComputer.ts

示例4: _createLink

	private static _createLink(classifier: CharacterClassifier<CharacterClass>, line: string, lineNumber: number, linkBeginIndex: number, linkEndIndex: number): ILink {
		// Do not allow to end link in certain characters...
		let lastIncludedCharIndex = linkEndIndex - 1;
		do {
			const chCode = line.charCodeAt(lastIncludedCharIndex);
			const chClass = classifier.get(chCode);
			if (chClass !== CharacterClass.CannotEndIn) {
				break;
			}
			lastIncludedCharIndex--;
		} while (lastIncludedCharIndex > linkBeginIndex);

		return {
			range: {
				startLineNumber: lineNumber,
				startColumn: linkBeginIndex + 1,
				endLineNumber: lineNumber,
				endColumn: lastIncludedCharIndex + 2
			},
			url: line.substring(linkBeginIndex, lastIncludedCharIndex + 1)
		};
	}
开发者ID:Chan-PH,项目名称:vscode,代码行数:22,代码来源:linkComputer.ts

示例5: test

	test('works', () => {
		let classifier = new CharacterClassifier(0);

		assert.equal(classifier.get(-1), 0);
		assert.equal(classifier.get(0), 0);
		assert.equal(classifier.get(CharCode.a), 0);
		assert.equal(classifier.get(CharCode.b), 0);
		assert.equal(classifier.get(CharCode.z), 0);
		assert.equal(classifier.get(255), 0);
		assert.equal(classifier.get(1000), 0);
		assert.equal(classifier.get(2000), 0);

		classifier.set(CharCode.a, 1);
		classifier.set(CharCode.z, 2);
		classifier.set(1000, 3);

		assert.equal(classifier.get(-1), 0);
		assert.equal(classifier.get(0), 0);
		assert.equal(classifier.get(CharCode.a), 1);
		assert.equal(classifier.get(CharCode.b), 0);
		assert.equal(classifier.get(CharCode.z), 2);
		assert.equal(classifier.get(255), 0);
		assert.equal(classifier.get(1000), 3);
		assert.equal(classifier.get(2000), 0);
	});
开发者ID:aminroosta,项目名称:vscode,代码行数:25,代码来源:characterClassifier.test.ts


注:本文中的vs/editor/common/core/characterClassifier.CharacterClassifier类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。