提交 1de8f1d6 编写于 作者: J Johannes Rieken

#723 mark untitled documents as dirty when opened

上级 9b845976
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
'use strict'; 'use strict';
import * as assert from 'assert'; import * as assert from 'assert';
import {workspace, TextDocument, window, Position} from 'vscode'; import {workspace, TextDocument, window, Position, Uri} from 'vscode';
import {createRandomFile, deleteFile, cleanUp} from './utils'; import {createRandomFile, deleteFile, cleanUp} from './utils';
import {join} from 'path'; import {join} from 'path';
import * as fs from 'fs'; import * as fs from 'fs';
...@@ -41,6 +41,37 @@ suite('workspace-namespace', () => { ...@@ -41,6 +41,37 @@ suite('workspace-namespace', () => {
}); });
}); });
test('openTextDocument, untitled is dirty', function(done) {
workspace.openTextDocument(Uri.parse('untitled://' + join(workspace.rootPath, './newfile.txt'))).then(doc => {
assert.equal(doc.uri.scheme, 'untitled');
assert.ok(doc.isDirty);
done();
});
});
// test('openTextDocument, untitled closes on save', function(done) {
// workspace.openTextDocument(Uri.parse('untitled://' + join(workspace.rootPath, './newfile2.txt'))).then(doc => {
// assert.equal(doc.uri.scheme, 'untitled');
// assert.ok(doc.isDirty);
// let closed: TextDocument, opened: TextDocument;
// let d0 = workspace.onDidCloseTextDocument(e => closed = e);
// let d1 = workspace.onDidOpenTextDocument(e => opened = e);
// function donedone() {
// assert.ok(closed === doc);
// assert.equal(opened.uri.scheme, 'file');
// assert.equal(opened.uri.toString(), 'file:///' + join(workspace.rootPath, './newfile2.txt'))
// d0.dispose();
// d1.dispose();
// deleteFile(opened.uri).then(done, done);
// }
// doc.save().then(donedone, done);
// });
// })
test('events: onDidOpenTextDocument, onDidChangeTextDocument, onDidSaveTextDocument', () => { test('events: onDidOpenTextDocument, onDidChangeTextDocument, onDidSaveTextDocument', () => {
return createRandomFile().then(file => { return createRandomFile().then(file => {
let disposables = []; let disposables = [];
......
...@@ -630,7 +630,7 @@ export class MainThreadDocuments { ...@@ -630,7 +630,7 @@ export class MainThreadDocuments {
// --- from plugin host process // --- from plugin host process
_trySaveDocument(uri:URI): TPromise<boolean> { _trySaveDocument(uri: URI): TPromise<boolean> {
return this._textFileService.save(uri); return this._textFileService.save(uri);
} }
...@@ -679,6 +679,8 @@ export class MainThreadDocuments { ...@@ -679,6 +679,8 @@ export class MainThreadDocuments {
if (input.getResource().toString() !== uri.toString()) { if (input.getResource().toString() !== uri.toString()) {
throw new Error(`expected URI ${uri.toString() } BUT GOT ${input.getResource().toString() }`); throw new Error(`expected URI ${uri.toString() } BUT GOT ${input.getResource().toString() }`);
} }
return this._proxy._acceptModelDirty(uri); // mark as dirty
}).then(() => {
return true; return true;
}); });
}); });
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册