提交 af91521c 编写于 作者: B Benjamin Pasero

charset => encoding

上级 3022d0a2
......@@ -113,7 +113,7 @@ function createFileService(index: { [n: string]: string } = Object.create(null))
var result: Files.IContent = {
resource,
value: index[resource.path],
charset: undefined,
encoding: undefined,
etag: undefined,
mime: undefined,
mtime: undefined,
......@@ -129,7 +129,7 @@ function createFileService(index: { [n: string]: string } = Object.create(null))
result.push({
resource,
value: index[resource.path],
charset: undefined,
encoding: undefined,
etag: undefined,
mime: undefined,
mtime: undefined,
......
......@@ -304,7 +304,7 @@ export interface IFileStat extends IBaseStat {
/**
* The resource is a directory. Iff {{true}}
* {{mime}} and {{charset}} have no meaning.
* {{mime}} and {{encoding}} have no meaning.
*/
isDirectory: boolean;
......@@ -336,9 +336,9 @@ export interface IContent extends IBaseStat {
value: string;
/**
* The charset of the content if known.
* The encoding of the content if known.
*/
charset: string;
encoding: string;
}
export interface IResolveContentOptions {
......@@ -366,12 +366,12 @@ export interface IResolveContentOptions {
export interface IUpdateContentOptions {
/**
* The charset to use when updating a file.
* The encoding to use when updating a file.
*/
charset?: string;
encoding?: string;
/**
* If set to true, will enforce the selected charset and not perform any detection using BOMs.
* If set to true, will enforce the selected encoding and not perform any detection using BOMs.
*/
overwriteEncoding?: boolean;
......
......@@ -241,9 +241,9 @@ export class TextFileEditorModel extends BaseTextEditorModel implements IEncodin
};
this.updateVersionOnDiskStat(resolvedStat);
// Keep the original charset to not loose it when saving
// Keep the original encoding to not loose it when saving
let oldEncoding = this.contentEncoding;
this.contentEncoding = content.charset;
this.contentEncoding = content.encoding;
// Handle events if encoding changed
if (this.preferredEncoding) {
......@@ -469,7 +469,7 @@ export class TextFileEditorModel extends BaseTextEditorModel implements IEncodin
overwriteReadonly: overwriteReadonly,
overwriteEncoding: overwriteEncoding,
mtime: this.versionOnDiskStat.mtime,
charset: this.getEncoding(),
encoding: this.getEncoding(),
etag: this.versionOnDiskStat.etag
}).then((stat: IFileStat) => {
diag('doSave(' + versionId + ') - after updateContent()', this.resource, new Date());
......
......@@ -328,7 +328,7 @@ export class TextFileService extends AbstractTextFileService {
// We have a model: Use it (can be null e.g. if this file is binary and not a text file or was never opened before)
if (model) {
return this.fileService.updateContent(target, model.getValue(), { charset: model.getEncoding() });
return this.fileService.updateContent(target, model.getValue(), { encoding: model.getEncoding() });
}
// Otherwise we can only copy
......
......@@ -231,7 +231,7 @@ export class FileService implements files.IFileService {
// 2.) create parents as needed
return createParentsPromise.then(() => {
let encodingToWrite = this.getEncoding(resource, options.charset);
let encodingToWrite = this.getEncoding(resource, options.encoding);
let addBomPromise: TPromise<boolean> = TPromise.as(false);
// UTF_16 BE and LE as well as UTF_8 with BOM always have a BOM
......@@ -449,7 +449,7 @@ export class FileService implements files.IFileService {
reader.on('end', () => {
let content: files.IContent = <any>model;
content.value = chunks.join('');
content.charset = fileEncoding; // make sure to store the charset in the model to restore it later when writing
content.encoding = fileEncoding; // make sure to store the encoding in the model to restore it later when writing
if (!done) {
done = true;
......
......@@ -16,7 +16,7 @@ import {nfcall} from 'vs/base/common/async';
import uri from 'vs/base/common/uri';
import uuid = require('vs/base/common/uuid');
import extfs = require('vs/base/node/extfs');
import encoding = require('vs/base/node/encoding');
import encodingLib = require('vs/base/node/encoding');
import utils = require('vs/workbench/services/files/test/node/utils');
suite('FileService', () => {
......@@ -274,17 +274,17 @@ suite('FileService', () => {
test('updateContent - use encoding (UTF 16 BE)', function(done: () => void) {
let resource = uri.file(path.join(testDir, 'small.txt'));
let charset = 'utf16be';
let encoding = 'utf16be';
service.resolveContent(resource).done(c => {
c.charset = charset;
c.encoding = encoding;
return service.updateContent(c.resource, c.value, { charset: charset }).then(c => {
return nfcall(encoding.detectEncodingByBOM, c.resource.fsPath).then((enc) => {
assert.equal(enc, encoding.UTF16be);
return service.updateContent(c.resource, c.value, { encoding: encoding }).then(c => {
return nfcall(encodingLib.detectEncodingByBOM, c.resource.fsPath).then((enc) => {
assert.equal(enc, encodingLib.UTF16be);
return service.resolveContent(resource).then(c => {
assert.equal(c.charset, charset);
assert.equal(c.encoding, encoding);
done();
});
......@@ -294,20 +294,20 @@ suite('FileService', () => {
});
test('updateContent - encoding preserved (UTF 16 LE)', function(done: () => void) {
let charset = 'utf16le';
let encoding = 'utf16le';
let resource = uri.file(path.join(testDir, 'some_utf16le.css'));
service.resolveContent(resource).done(c => {
assert.equal(c.charset, charset);
assert.equal(c.encoding, encoding);
c.value = 'Some updates';
return service.updateContent(c.resource, c.value, { charset: charset }).then(c => {
return nfcall(encoding.detectEncodingByBOM, c.resource.fsPath).then((enc) => {
assert.equal(enc, encoding.UTF16le);
return service.updateContent(c.resource, c.value, { encoding: encoding }).then(c => {
return nfcall(encodingLib.detectEncodingByBOM, c.resource.fsPath).then((enc) => {
assert.equal(enc, encodingLib.UTF16le);
return service.resolveContent(resource).then(c => {
assert.equal(c.charset, charset);
assert.equal(c.encoding, encoding);
done();
});
......@@ -378,10 +378,10 @@ suite('FileService', () => {
test('resolveContent - encoding picked up', function(done: () => void) {
let resource = uri.file(path.join(testDir, 'index.html'));
let charset = 'windows1252';
let encoding = 'windows1252';
service.resolveContent(resource, { encoding: charset }).done(c => {
assert.equal(c.charset, charset);
service.resolveContent(resource, { encoding: encoding }).done(c => {
assert.equal(c.encoding, encoding);
done();
});
......@@ -391,7 +391,7 @@ suite('FileService', () => {
let resource = uri.file(path.join(testDir, 'some_utf16le.css'));
service.resolveContent(resource, { encoding: 'windows1252' }).done(c => {
assert.equal(c.charset, 'windows1252');
assert.equal(c.encoding, 'windows1252');
done();
});
......@@ -401,7 +401,7 @@ suite('FileService', () => {
let resource = uri.file(path.join(testDir, 'some_utf8_bom.txt'));
service.resolveContent(resource).done(c => {
assert.equal(encoding.detectEncodingByBOMFromBuffer(new Buffer(c.value), 512), null);
assert.equal(encodingLib.detectEncodingByBOMFromBuffer(new Buffer(c.value), 512), null);
done();
});
......@@ -411,7 +411,7 @@ suite('FileService', () => {
let resource = uri.file(path.join(testDir, 'index.html'));
service.resolveContent(resource, { encoding: 'superduper' }).done(c => {
assert.equal(c.charset, 'utf8');
assert.equal(c.encoding, 'utf8');
done();
});
......@@ -455,10 +455,10 @@ suite('FileService', () => {
});
_service.resolveContent(uri.file(path.join(testDir, 'index.html'))).done(c => {
assert.equal(c.charset, 'windows1252');
assert.equal(c.encoding, 'windows1252');
return _service.resolveContent(uri.file(path.join(testDir, 'deep', 'conway.js'))).done(c => {
assert.equal(c.charset, 'utf16le');
assert.equal(c.encoding, 'utf16le');
// teardown
_service.dispose();
......@@ -482,27 +482,27 @@ suite('FileService', () => {
extfs.copy(_sourceDir, _testDir, () => {
fs.readFile(resource.fsPath, (error, data) => {
assert.equal(encoding.detectEncodingByBOMFromBuffer(data, 512), null);
assert.equal(encodingLib.detectEncodingByBOMFromBuffer(data, 512), null);
// Update content: UTF_8 => UTF_8_BOM
_service.updateContent(resource, 'Hello Bom', { charset: encoding.UTF8_with_bom }).done(() => {
_service.updateContent(resource, 'Hello Bom', { encoding: encodingLib.UTF8_with_bom }).done(() => {
fs.readFile(resource.fsPath, (error, data) => {
assert.equal(encoding.detectEncodingByBOMFromBuffer(data, 512), encoding.UTF8);
assert.equal(encodingLib.detectEncodingByBOMFromBuffer(data, 512), encodingLib.UTF8);
// Update content: PRESERVE BOM when using UTF-8
_service.updateContent(resource, 'Please stay Bom', { charset: encoding.UTF8 }).done(() => {
_service.updateContent(resource, 'Please stay Bom', { encoding: encodingLib.UTF8 }).done(() => {
fs.readFile(resource.fsPath, (error, data) => {
assert.equal(encoding.detectEncodingByBOMFromBuffer(data, 512), encoding.UTF8);
assert.equal(encodingLib.detectEncodingByBOMFromBuffer(data, 512), encodingLib.UTF8);
// Update content: REMOVE BOM
_service.updateContent(resource, 'Go away Bom', { charset: encoding.UTF8, overwriteEncoding: true }).done(() => {
_service.updateContent(resource, 'Go away Bom', { encoding: encodingLib.UTF8, overwriteEncoding: true }).done(() => {
fs.readFile(resource.fsPath, (error, data) => {
assert.equal(encoding.detectEncodingByBOMFromBuffer(data, 512), null);
assert.equal(encodingLib.detectEncodingByBOMFromBuffer(data, 512), null);
// Update content: BOM comes not back
_service.updateContent(resource, 'Do not come back Bom', { charset: encoding.UTF8 }).done(() => {
_service.updateContent(resource, 'Do not come back Bom', { encoding: encodingLib.UTF8 }).done(() => {
fs.readFile(resource.fsPath, (error, data) => {
assert.equal(encoding.detectEncodingByBOMFromBuffer(data, 512), null);
assert.equal(encodingLib.detectEncodingByBOMFromBuffer(data, 512), null);
_service.dispose();
done();
......
......@@ -202,7 +202,7 @@ suite('Workbench UI Services', () => {
value: 'Hello Html',
etag: 'index.txt',
mime: 'text/plain',
charset: 'utf8',
encoding: 'utf8',
mtime: new Date().getTime(),
name: paths.basename(resource.fsPath)
});
......@@ -214,7 +214,7 @@ suite('Workbench UI Services', () => {
resource: res,
etag: 'index.txt',
mime: 'text/plain',
charset: 'utf8',
encoding: 'utf8',
mtime: new Date().getTime(),
name: paths.basename(res.fsPath)
};
......
......@@ -475,7 +475,7 @@ export const TestFileService = {
value: 'Hello Html',
etag: 'index.txt',
mime: 'text/plain',
charset: 'utf8',
encoding: 'utf8',
mtime: new Date().getTime(),
name: Paths.basename(resource.fsPath)
});
......@@ -487,7 +487,7 @@ export const TestFileService = {
resource: res,
etag: 'index.txt',
mime: 'text/plain',
charset: 'utf8',
encoding: 'utf8',
mtime: new Date().getTime(),
name: Paths.basename(res.fsPath)
};
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册