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


TypeScript ExtHostDocumentSaveParticipant.onWillSaveTextDocumentEvent方法代碼示例

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


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

示例1: test

	test('event delivery, overall timeout', () => {
		const participant = new ExtHostDocumentSaveParticipant(documents, workspace, { timeout: 20, errors: 5 });

		let callCount = 0;
		let sub1 = participant.onWillSaveTextDocumentEvent(function (event) {
			callCount += 1;
			event.waitUntil(TPromise.timeout(17));
		});

		let sub2 = participant.onWillSaveTextDocumentEvent(function (event) {
			callCount += 1;
			event.waitUntil(TPromise.timeout(17));
		});

		let sub3 = participant.onWillSaveTextDocumentEvent(function (event) {
			callCount += 1;
		});

		return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(values => {
			sub1.dispose();
			sub2.dispose();
			sub3.dispose();

			assert.equal(callCount, 2);
			assert.equal(values.length, 2);
			const [first, second] = values;
			assert.equal(first, true);
			assert.equal(second, true);
		});
	});
開發者ID:asotog,項目名稱:vscode,代碼行數:30,代碼來源:extHostDocumentSaveParticipant.test.ts

示例2: test

	test('event delivery, two listeners -> two document states', () => {

		const participant = new ExtHostDocumentSaveParticipant(documents, new class extends mock<MainThreadEditorsShape>() {
			$tryApplyWorkspaceEdit(_edits: IWorkspaceResourceEdit[]) {

				for (const { resource, edits } of _edits) {
					for (const { newText, range } of edits) {
						documents.$acceptModelChanged(resource.toString(), {
							changes: [{
								range,
								rangeLength: undefined,
								text: newText
							}],
							eol: undefined,
							versionId: documents.getDocumentData(resource).version + 1
						}, true);
					}
				}

				return TPromise.as(true);
			}
		});

		const document = documents.getDocumentData(resource).document;

		let sub1 = participant.onWillSaveTextDocumentEvent(function (e) {
			// the document state we started with
			assert.equal(document.version, 1);
			assert.equal(document.getText(), 'foo');

			e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')]));
		});

		let sub2 = participant.onWillSaveTextDocumentEvent(function (e) {
			// the document state AFTER the first listener kicked in
			assert.equal(document.version, 2);
			assert.equal(document.getText(), 'barfoo');

			e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')]));
		});

		return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(values => {
			sub1.dispose();
			sub2.dispose();

			// the document state AFTER eventing is done
			assert.equal(document.version, 3);
			assert.equal(document.getText(), 'barbarfoo');
		});

	});
開發者ID:SeanKilleen,項目名稱:vscode,代碼行數:51,代碼來源:extHostDocumentSaveParticipant.test.ts


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