Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
af91521c
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
af91521c
编写于
3月 03, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
charset => encoding
上级
3022d0a2
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
48 addition
and
48 deletion
+48
-48
src/vs/languages/typescript.workbench/test/common/projectResolver.test.ts
.../typescript.workbench/test/common/projectResolver.test.ts
+2
-2
src/vs/platform/files/common/files.ts
src/vs/platform/files/common/files.ts
+6
-6
src/vs/workbench/parts/files/common/editors/textFileEditorModel.ts
...rkbench/parts/files/common/editors/textFileEditorModel.ts
+3
-3
src/vs/workbench/parts/files/electron-browser/textFileServices.ts
...orkbench/parts/files/electron-browser/textFileServices.ts
+1
-1
src/vs/workbench/services/files/node/fileService.ts
src/vs/workbench/services/files/node/fileService.ts
+2
-2
src/vs/workbench/services/files/test/node/fileService.test.ts
...vs/workbench/services/files/test/node/fileService.test.ts
+30
-30
src/vs/workbench/test/browser/services.test.ts
src/vs/workbench/test/browser/services.test.ts
+2
-2
src/vs/workbench/test/browser/servicesTestUtils.ts
src/vs/workbench/test/browser/servicesTestUtils.ts
+2
-2
未找到文件。
src/vs/languages/typescript.workbench/test/common/projectResolver.test.ts
浏览文件 @
af91521c
...
...
@@ -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
,
...
...
src/vs/platform/files/common/files.ts
浏览文件 @
af91521c
...
...
@@ -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
;
...
...
src/vs/workbench/parts/files/common/editors/textFileEditorModel.ts
浏览文件 @
af91521c
...
...
@@ -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
());
...
...
src/vs/workbench/parts/files/electron-browser/textFileServices.ts
浏览文件 @
af91521c
...
...
@@ -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
...
...
src/vs/workbench/services/files/node/fileService.ts
浏览文件 @
af91521c
...
...
@@ -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
;
...
...
src/vs/workbench/services/files/test/node/fileService.test.ts
浏览文件 @
af91521c
...
...
@@ -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
encoding
Lib
=
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
(
encoding
Lib
.
detectEncodingByBOM
,
c
.
resource
.
fsPath
).
then
((
enc
)
=>
{
assert
.
equal
(
enc
,
encoding
Lib
.
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
(
encoding
Lib
.
detectEncodingByBOM
,
c
.
resource
.
fsPath
).
then
((
enc
)
=>
{
assert
.
equal
(
enc
,
encoding
Lib
.
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
(
encoding
Lib
.
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
(
encoding
Lib
.
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
(
encoding
Lib
.
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
(
encoding
Lib
.
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
(
encoding
Lib
.
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
(
encoding
Lib
.
detectEncodingByBOMFromBuffer
(
data
,
512
),
null
);
_service
.
dispose
();
done
();
...
...
src/vs/workbench/test/browser/services.test.ts
浏览文件 @
af91521c
...
...
@@ -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
)
};
...
...
src/vs/workbench/test/browser/servicesTestUtils.ts
浏览文件 @
af91521c
...
...
@@ -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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录