本文整理汇总了TypeScript中vs/workbench/api/node/extHostDocuments.ExtHostDocuments类的典型用法代码示例。如果您正苦于以下问题:TypeScript ExtHostDocuments类的具体用法?TypeScript ExtHostDocuments怎么用?TypeScript ExtHostDocuments使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ExtHostDocuments类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: setup
setup(() => {
documents = new ExtHostDocuments(OneGetThreadService(null));
documents.$acceptModelAdd({
isDirty: false,
modeId: 'foo',
url: resource,
versionId: 1,
value: {
EOL: '\n',
lines: ['foo'],
BOM: '',
length: -1,
options: {
tabSize: 4,
insertSpaces: true,
trimAutoWhitespace: true,
defaultEOL: EditorCommon.DefaultEndOfLine.LF
}
}
});
});
示例2: suite
suite('ExtHostDocumentSaveParticipant', () => {
let resource = URI.parse('foo:bar');
let workspace = new class extends MainThreadWorkspaceShape { };
let documents: ExtHostDocuments;
setup(() => {
documents = new ExtHostDocuments(OneGetThreadService(null));
documents.$acceptModelAdd({
isDirty: false,
modeId: 'foo',
url: resource,
versionId: 1,
value: {
EOL: '\n',
lines: ['foo'],
BOM: '',
length: -1,
options: {
tabSize: 4,
insertSpaces: true,
trimAutoWhitespace: true,
defaultEOL: EditorCommon.DefaultEndOfLine.LF
}
}
});
});
test('no listeners, no problem', () => {
const participant = new ExtHostDocumentSaveParticipant(documents, workspace);
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => assert.ok(true));
});
test('event delivery', () => {
const participant = new ExtHostDocumentSaveParticipant(documents, workspace);
let event: vscode.TextDocumentWillSaveEvent;
let sub = participant.onWillSaveTextDocumentEvent(function (e) {
event = e;
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => {
sub.dispose();
assert.ok(event);
assert.equal(event.reason, TextDocumentSaveReason.Manual);
assert.equal(typeof event.waitUntil, 'function');
});
});
test('event delivery, immutable', () => {
const participant = new ExtHostDocumentSaveParticipant(documents, workspace);
let event: vscode.TextDocumentWillSaveEvent;
let sub = participant.onWillSaveTextDocumentEvent(function (e) {
event = e;
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => {
sub.dispose();
assert.ok(event);
assert.throws(() => event.document = null);
});
});
test('event delivery, bad listener', () => {
const participant = new ExtHostDocumentSaveParticipant(documents, workspace);
let sub = participant.onWillSaveTextDocumentEvent(function (e) {
throw new Error('💀');
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(values => {
sub.dispose();
const [first] = values;
assert.equal(first, false);
});
});
test('event delivery, bad listener doesn\'t prevent more events', () => {
const participant = new ExtHostDocumentSaveParticipant(documents, workspace);
let sub1 = participant.onWillSaveTextDocumentEvent(function (e) {
throw new Error('💀');
});
let event: vscode.TextDocumentWillSaveEvent;
let sub2 = participant.onWillSaveTextDocumentEvent(function (e) {
event = e;
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => {
sub1.dispose();
sub2.dispose();
assert.ok(event);
});
});
//.........这里部分代码省略.........
示例3: suite
suite('ExtHostDocumentSaveParticipant', () => {
let resource = URI.parse('foo:bar');
let mainThreadEditors = new class extends mock<MainThreadEditorsShape>() { };
let documents: ExtHostDocuments;
let nullLogService = new NullLogService();
let nullExtensionDescription: IExtensionDescription = {
id: 'nullExtensionDescription',
name: 'Null Extension Description',
publisher: 'vscode',
enableProposedApi: false,
engines: undefined,
extensionFolderPath: undefined,
isBuiltin: false,
version: undefined
};
setup(() => {
const documentsAndEditors = new ExtHostDocumentsAndEditors(SingleProxyRPCProtocol(null));
documentsAndEditors.$acceptDocumentsAndEditorsDelta({
addedDocuments: [{
isDirty: false,
modeId: 'foo',
uri: resource,
versionId: 1,
lines: ['foo'],
EOL: '\n',
}]
});
documents = new ExtHostDocuments(SingleProxyRPCProtocol(null), documentsAndEditors);
});
test('no listeners, no problem', () => {
const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, mainThreadEditors);
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => assert.ok(true));
});
test('event delivery', () => {
const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, mainThreadEditors);
let event: vscode.TextDocumentWillSaveEvent;
let sub = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) {
event = e;
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => {
sub.dispose();
assert.ok(event);
assert.equal(event.reason, TextDocumentSaveReason.Manual);
assert.equal(typeof event.waitUntil, 'function');
});
});
test('event delivery, immutable', () => {
const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, mainThreadEditors);
let event: vscode.TextDocumentWillSaveEvent;
let sub = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) {
event = e;
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => {
sub.dispose();
assert.ok(event);
assert.throws(() => event.document = null);
});
});
test('event delivery, bad listener', () => {
const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, mainThreadEditors);
let sub = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) {
throw new Error('💀');
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(values => {
sub.dispose();
const [first] = values;
assert.equal(first, false);
});
});
test('event delivery, bad listener doesn\'t prevent more events', () => {
const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, mainThreadEditors);
let sub1 = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) {
throw new Error('💀');
});
let event: vscode.TextDocumentWillSaveEvent;
let sub2 = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) {
event = e;
});
return participant.$participateInSave(resource, SaveReason.EXPLICIT).then(() => {
sub1.dispose();
sub2.dispose();
//.........这里部分代码省略.........
示例4:
$applyWorkspaceEdit(_edits: IResourceEdit[]) {
for (const {resource, newText, range} of _edits) {
documents.$acceptModelChanged(resource.toString(), [{
range,
text: newText,
versionId: documents.getDocumentData(resource).version + 1,
rangeLength: undefined, eol: undefined, isRedoing: undefined, isUndoing: undefined,
}]);
}
return TPromise.as(true);
}
示例5:
$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);
}
示例6: Position
let sub = participant.onWillSaveTextDocumentEvent(function (e) {
// concurrent change from somewhere
documents.$acceptModelChanged(resource.toString(), [{
versionId: 2,
range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 },
text: 'bar',
rangeLength: undefined, eol: undefined, isRedoing: undefined, isUndoing: undefined,
}]);
e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')]));
});
示例7: ExtHostDocumentSaveParticipant
test('event delivery, two listeners -> two document states', () => {
const participant = new ExtHostDocumentSaveParticipant(nullLogService, documents, new class extends mock<MainThreadEditorsShape>() {
$tryApplyWorkspaceEdit(_edits: IWorkspaceResourceEdit[]) {
for (const { resource, edits } of _edits) {
const uri = URI.revive(resource);
for (const { newText, range } of edits) {
documents.$acceptModelChanged(uri.toString(), {
changes: [{
range,
rangeLength: undefined,
text: newText
}],
eol: undefined,
versionId: documents.getDocumentData(uri).version + 1
}, true);
}
}
return TPromise.as(true);
}
});
const document = documents.getDocumentData(resource).document;
let sub1 = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(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.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(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');
});
});
示例8: Position
let sub = participant.getOnWillSaveTextDocumentEvent(nullExtensionDescription)(function (e) {
// concurrent change from somewhere
documents.$acceptModelChanged(resource.toString(), {
changes: [{
range: { startLineNumber: 1, startColumn: 1, endLineNumber: 1, endColumn: 1 },
rangeLength: undefined,
text: 'bar'
}],
eol: undefined,
versionId: 2
}, true);
e.waitUntil(TPromise.as([TextEdit.insert(new Position(0, 0), 'bar')]));
});
示例9: ExtHostDocumentSaveParticipant
test('event delivery, two listeners -> two document states', () => {
const participant = new ExtHostDocumentSaveParticipant(documents, new class extends MainThreadWorkspaceShape {
$applyWorkspaceEdit(_edits: IResourceEdit[]) {
for (const {resource, newText, range} of _edits) {
documents.$acceptModelChanged(resource.toString(), [{
range,
text: newText,
versionId: documents.getDocumentData(resource).version + 1,
rangeLength: undefined, eol: undefined, isRedoing: undefined, isUndoing: undefined,
}]);
}
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');
});
});
示例10:
return this._proxy.$changeLanguage(uri, languageId).then(() => {
return this._documents.getDocumentData(uri).document;
});