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


TypeScript TextDocument.create方法代碼示例

本文整理匯總了TypeScript中vscode-languageserver-types.TextDocument.create方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript TextDocument.create方法的具體用法?TypeScript TextDocument.create怎麽用?TypeScript TextDocument.create使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在vscode-languageserver-types.TextDocument的用法示例。


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

示例1: getEmbeddedDocumentByType

function getEmbeddedDocumentByType(
  document: TextDocument,
  contents: EmbeddedRegion[],
  type: EmbeddedType
): TextDocument {
  const oldContent = document.getText();
  let result = '';
  for (const c of contents) {
    if (c.type === type) {
      result = oldContent.substring(0, c.start).replace(/./g, ' ');
      result += oldContent.substring(c.start, c.end);
      return TextDocument.create(document.uri, c.languageId, document.version, result);
    }
  }
  return TextDocument.create(document.uri, defaultType[type], document.version, result);
}
開發者ID:cryptobuks,項目名稱:tandem,代碼行數:16,代碼來源:embeddedSupport.ts

示例2: assertFormat

	function assertFormat(value: string, expected: string, options?: any): void {
		var languageModes = getLanguageModes({ css: true, javascript: true });
		if (options) {
			languageModes.getAllModes().forEach(m => m.configure(options));
		}

		let rangeStartOffset = value.indexOf('|');
		let rangeEndOffset;
		if (rangeStartOffset !== -1) {
			value = value.substr(0, rangeStartOffset) + value.substr(rangeStartOffset + 1);

			rangeEndOffset = value.indexOf('|');
			value = value.substr(0, rangeEndOffset) + value.substr(rangeEndOffset + 1);
		} else {
			rangeStartOffset = 0;
			rangeEndOffset = value.length;
		}
		let document = TextDocument.create('test://test/test.html', 'html', 0, value);
		let range = Range.create(document.positionAt(rangeStartOffset), document.positionAt(rangeEndOffset));
		let formatOptions = FormattingOptions.create(2, true);

		let ranges = languageModes.getModesInRange(document, range);
		let result: TextEdit[] = [];
		ranges.forEach(r => {
			let mode = r.mode;
			if (mode && mode.format) {
				let edits = mode.format(document, r, formatOptions);
				pushAll(result, edits);
			}
		});
		let actual = applyEdits(document, result);
		assert.equal(actual, expected);
	}
開發者ID:StateFarmIns,項目名稱:vscode,代碼行數:33,代碼來源:formatting.test.ts

示例3: assertCompletions

	function assertCompletions(value: string, expected: { count?: number, items?: ItemDescription[] }, uri = testUri, workspaceFolders?: Proposed.WorkspaceFolder[]): void {
		let offset = value.indexOf('|');
		value = value.substr(0, offset) + value.substr(offset + 1);

		let document = TextDocument.create(uri, 'html', 0, value);
		let position = document.positionAt(offset);

		var languageModes = getLanguageModes({ css: true, javascript: true });
		var mode = languageModes.getModeAtPosition(document, position);

		if (!workspaceFolders) {
			workspaceFolders = [{ name: 'x', uri: path.dirname(uri) }];
		}

		let participantResult = CompletionList.create([]);
		if (mode.setCompletionParticipants) {
			mode.setCompletionParticipants([getPathCompletionParticipant(document, workspaceFolders, participantResult)]);
		}

		let list = mode.doComplete!(document, position);
		list.items = list.items.concat(participantResult.items);

		if (expected.count) {
			assert.equal(list.items, expected.count);
		}
		if (expected.items) {
			for (let item of expected.items) {
				assertCompletion(list, item, document, offset);
			}
		}
	}
開發者ID:sameer-coder,項目名稱:vscode,代碼行數:31,代碼來源:completions.test.ts

示例4: testCompletionFor

export function testCompletionFor(value: string, expected: { count?: number, items?: ItemDescription[] }, uri = testUri, workspaceFolders?: WorkspaceFolder[]): void {
	let offset = value.indexOf('|');
	value = value.substr(0, offset) + value.substr(offset + 1);

	let workspace = {
		settings: {},
		folders: workspaceFolders || [{ name: 'x', uri: uri.substr(0, uri.lastIndexOf('/')) }]
	};

	let document = TextDocument.create(uri, 'html', 0, value);
	let position = document.positionAt(offset);

	var languageModes = getLanguageModes({ css: true, javascript: true }, workspace);
	var mode = languageModes.getModeAtPosition(document, position)!;

	let list = mode.doComplete!(document, position);

	if (expected.count) {
		assert.equal(list.items, expected.count);
	}
	if (expected.items) {
		for (let item of expected.items) {
			assertCompletion(list, item, document, offset);
		}
	}
}
開發者ID:AllureFer,項目名稱:vscode,代碼行數:26,代碼來源:completions.test.ts

示例5: assertFontFace

function assertFontFace(input: string, ...rules: Rule[]): void {
	let p = new SCSSParser();
	let document = TextDocument.create('test://test/test.scss', 'scss', 0, input);
	let node = p.internalParse(input, p._parseFontFace);

	assertEntries(node, document, rules);
}
開發者ID:Microsoft,項目名稱:vscode-css-languageservice,代碼行數:7,代碼來源:lint.test.ts

示例6: assertEmbeddedLanguageContent

	function assertEmbeddedLanguageContent(value: string, languageId: string, expectedContent: string): void {
		let document = TextDocument.create('test://test/test.html', 'html', 0, value);

		let docRegions = embeddedSupport.getDocumentRegions(htmlLanguageService, document);
		let content = docRegions.getEmbeddedDocument(languageId);
		assert.equal(content.getText(), expectedContent);
	}
開發者ID:AllureFer,項目名稱:vscode,代碼行數:7,代碼來源:embedded.test.ts

示例7: assertCompletions

	function assertCompletions(value: string, expected: { count?: number, items?: ItemDescription[] }, testUri: string, workspaceFolders?: WorkspaceFolder[], lang: string = 'css'): void {
		const offset = value.indexOf('|');
		value = value.substr(0, offset) + value.substr(offset + 1);

		const document = TextDocument.create(testUri, lang, 0, value);
		const position = document.positionAt(offset);

		if (!workspaceFolders) {
			workspaceFolders = [{ name: 'x', uri: testUri.substr(0, testUri.lastIndexOf('/')) }];
		}

		let participantResult = CompletionList.create([]);
		cssLanguageService.setCompletionParticipants([getPathCompletionParticipant(document, workspaceFolders, participantResult)]);

		const stylesheet = cssLanguageService.parseStylesheet(document);
		let list = cssLanguageService.doComplete(document, position, stylesheet)!;
		list.items = list.items.concat(participantResult.items);

		if (expected.count) {
			assert.equal(list.items.length, expected.count);
		}
		if (expected.items) {
			for (let item of expected.items) {
				assertCompletion(list, item, document, offset);
			}
		}
	}
開發者ID:developers23,項目名稱:vscode,代碼行數:27,代碼來源:completion.test.ts

示例8: assertCompletions

	function assertCompletions(syntax: string, value: string, expectedProposal: string | null, expectedProposalDoc: string | null): void {
		const offset = value.indexOf('|');
		value = value.substr(0, offset) + value.substr(offset + 1);

		const workspace = {
			settings: {},
			folders: [{ name: 'test', uri: 'test://test' }]
		};

		const document = TextDocument.create('test://test/test.' + syntax, syntax, 0, value);
		const position = document.positionAt(offset);
		const documentRegions = getLanguageModelCache<embeddedSupport.HTMLDocumentRegions>(10, 60, document => embeddedSupport.getDocumentRegions(htmlLanguageService, document));
		const mode = syntax === 'html' ? getHTMLMode(htmlLanguageService, workspace) : getCSSMode(documentRegions, workspace);

		const emmetCompletionList = CompletionList.create([], false);
		const emmetParticipant = getEmmetCompletionParticipants(document, position, document.languageId, {}, emmetCompletionList);

		const list = mode.doComplete!(document, position, {}, [emmetParticipant]);
		assert.ok(list);
		assert.ok(emmetCompletionList);

		let actualLabels = emmetCompletionList.items.map(c => c.label).sort();
		let actualDocs = emmetCompletionList.items.map(c => c.documentation).sort();
		if (expectedProposal && expectedProposalDoc) {
			assert.ok(actualLabels.indexOf(expectedProposal) !== -1, value + ': Not found:' + expectedProposal + ' is ' + actualLabels.join(', '));
			assert.ok(actualDocs.indexOf(expectedProposalDoc) !== -1, value + ': Not found:' + expectedProposalDoc + ' is ' + actualDocs.join(', '));
		} else {
			assert.ok(!emmetCompletionList.items.length && !emmetCompletionList.isIncomplete, value + ': No proposals expected, but was ' + actualLabels.join(', '));
		}

	}
開發者ID:costincaraivan,項目名稱:vscode,代碼行數:31,代碼來源:emmet.test.ts

示例9: test

	test('inserts', function (): any {
		let input = TextDocument.create('foo://bar/f', 'html', 0, '012345678901234567890123456789');
		assert.equal(applyEdits(input, [TextEdit.insert(Position.create(0, 0), 'Hello')]), 'Hello012345678901234567890123456789');
		assert.equal(applyEdits(input, [TextEdit.insert(Position.create(0, 1), 'Hello')]), '0Hello12345678901234567890123456789');
		assert.equal(applyEdits(input, [TextEdit.insert(Position.create(0, 1), 'Hello'), TextEdit.insert(Position.create(0, 1), 'World')]), '0HelloWorld12345678901234567890123456789');
		assert.equal(applyEdits(input, [TextEdit.insert(Position.create(0, 2), 'One'), TextEdit.insert(Position.create(0, 1), 'Hello'), TextEdit.insert(Position.create(0, 1), 'World'), TextEdit.insert(Position.create(0, 2), 'Two'), TextEdit.insert(Position.create(0, 2), 'Three')]), '0HelloWorld1OneTwoThree2345678901234567890123456789');
	});
開發者ID:sameer-coder,項目名稱:vscode,代碼行數:7,代碼來源:utils.test.ts

示例10: assertCompletions

	function assertCompletions(syntax: string, value: string, expectedProposal: string, expectedProposalDoc: string): void {
		const offset = value.indexOf('|');
		value = value.substr(0, offset) + value.substr(offset + 1);

		const document = TextDocument.create('test://test/test.' + syntax, syntax, 0, value);
		const position = document.positionAt(offset);
		const documentRegions = getLanguageModelCache<embeddedSupport.HTMLDocumentRegions>(10, 60, document => embeddedSupport.getDocumentRegions(htmlLanguageService, document));
		const mode = syntax == 'html' ? getHTMLMode(htmlLanguageService) : getCSSMode(documentRegions);
		const emmetCompletionList: CompletionList = {
			isIncomplete: true,
			items: undefined
		}
		mode.setCompletionParticipants([getEmmetCompletionParticipants(document, position, document.languageId, {}, emmetCompletionList)])

		const list = mode.doComplete!(document, position);
		assert.ok(list);
		assert.ok(emmetCompletionList)


		if (expectedProposal && expectedProposalDoc) {
			let actualLabels = emmetCompletionList!.items.map(c => c.label).sort();
			let actualDocs = emmetCompletionList!.items.map(c => c.documentation).sort();
			assert.ok(actualLabels.indexOf(expectedProposal) !== -1, 'Not found:' + expectedProposal + ' is ' + actualLabels.join(', '));
			assert.ok(actualDocs.indexOf(expectedProposalDoc) !== -1, 'Not found:' + expectedProposalDoc + ' is ' + actualDocs.join(', '));
		} else {
			assert.ok(!emmetCompletionList || !emmetCompletionList.items);
		}

	}
開發者ID:sameer-coder,項目名稱:vscode,代碼行數:29,代碼來源:emmet.test.ts


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