Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
cd052465
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,体验更适合开发者的 AI 搜索 >>
提交
cd052465
编写于
3月 07, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix encoding detection for utf8 and utf8bom
上级
bc942c72
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
235 addition
and
240 deletion
+235
-240
src/vs/base/common/encoding.ts
src/vs/base/common/encoding.ts
+0
-229
src/vs/platform/files/common/files.ts
src/vs/platform/files/common/files.ts
+227
-1
src/vs/workbench/browser/parts/editor/editorStatus.ts
src/vs/workbench/browser/parts/editor/editorStatus.ts
+7
-8
src/vs/workbench/parts/files/browser/files.contribution.ts
src/vs/workbench/parts/files/browser/files.contribution.ts
+1
-2
未找到文件。
src/vs/base/common/encoding.ts
已删除
100644 → 0
浏览文件 @
bc942c72
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'
use strict
'
;
export
const
SUPPORTED_ENCODINGS
:{[
encoding
:
string
]:{
labelLong
:
string
;
labelShort
:
string
;
order
:
number
;
encodeOnly
?:
boolean
;
}}
=
{
utf8
:
{
labelLong
:
'
UTF-8
'
,
labelShort
:
'
UTF-8
'
,
order
:
1
},
utf8bom
:
{
labelLong
:
'
UTF-8 with BOM
'
,
labelShort
:
'
UTF-8 with BOM
'
,
encodeOnly
:
true
,
order
:
2
},
utf16le
:
{
labelLong
:
'
UTF-16 LE
'
,
labelShort
:
'
UTF-16 LE
'
,
order
:
3
},
utf16be
:
{
labelLong
:
'
UTF-16 BE
'
,
labelShort
:
'
UTF-16 BE
'
,
order
:
4
},
windows1252
:
{
labelLong
:
'
Western (Windows 1252)
'
,
labelShort
:
'
Windows 1252
'
,
order
:
5
},
iso88591
:
{
labelLong
:
'
Western (ISO 8859-1)
'
,
labelShort
:
'
ISO 8859-1
'
,
order
:
6
},
iso88593
:
{
labelLong
:
'
Western (ISO 8859-3)
'
,
labelShort
:
'
ISO 8859-3
'
,
order
:
7
},
iso885915
:
{
labelLong
:
'
Western (ISO 8859-15)
'
,
labelShort
:
'
ISO 8859-15
'
,
order
:
8
},
macroman
:
{
labelLong
:
'
Western (Mac Roman)
'
,
labelShort
:
'
Mac Roman
'
,
order
:
9
},
cp437
:
{
labelLong
:
'
DOS (CP 437)
'
,
labelShort
:
'
CP437
'
,
order
:
10
},
windows1256
:
{
labelLong
:
'
Arabic (Windows 1256)
'
,
labelShort
:
'
Windows 1256
'
,
order
:
11
},
iso88596
:
{
labelLong
:
'
Arabic (ISO 8859-6)
'
,
labelShort
:
'
ISO 8859-6
'
,
order
:
12
},
windows1257
:
{
labelLong
:
'
Baltic (Windows 1257)
'
,
labelShort
:
'
Windows 1257
'
,
order
:
13
},
iso88594
:
{
labelLong
:
'
Baltic (ISO 8859-4)
'
,
labelShort
:
'
ISO 8859-4
'
,
order
:
14
},
iso885914
:
{
labelLong
:
'
Celtic (ISO 8859-14)
'
,
labelShort
:
'
ISO 8859-14
'
,
order
:
15
},
windows1250
:
{
labelLong
:
'
Central European (Windows 1250)
'
,
labelShort
:
'
Windows 1250
'
,
order
:
16
},
iso88592
:
{
labelLong
:
'
Central European (ISO 8859-2)
'
,
labelShort
:
'
ISO 8859-2
'
,
order
:
17
},
windows1251
:
{
labelLong
:
'
Cyrillic (Windows 1251)
'
,
labelShort
:
'
Windows 1251
'
,
order
:
18
},
cp866
:
{
labelLong
:
'
Cyrillic (CP 866)
'
,
labelShort
:
'
CP 866
'
,
order
:
19
},
iso88595
:
{
labelLong
:
'
Cyrillic (ISO 8859-5)
'
,
labelShort
:
'
ISO 8859-5
'
,
order
:
20
},
koi8r
:
{
labelLong
:
'
Cyrillic (KOI8-R)
'
,
labelShort
:
'
KOI8-R
'
,
order
:
21
},
koi8u
:
{
labelLong
:
'
Cyrillic (KOI8-U)
'
,
labelShort
:
'
KOI8-U
'
,
order
:
22
},
iso885913
:
{
labelLong
:
'
Estonian (ISO 8859-13)
'
,
labelShort
:
'
ISO 8859-13
'
,
order
:
23
},
windows1253
:
{
labelLong
:
'
Greek (Windows 1253)
'
,
labelShort
:
'
Windows 1253
'
,
order
:
24
},
iso88597
:
{
labelLong
:
'
Greek (ISO 8859-7)
'
,
labelShort
:
'
ISO 8859-7
'
,
order
:
25
},
windows1255
:
{
labelLong
:
'
Hebrew (Windows 1255)
'
,
labelShort
:
'
Windows 1255
'
,
order
:
26
},
iso88598
:
{
labelLong
:
'
Hebrew (ISO 8859-8)
'
,
labelShort
:
'
ISO 8859-8
'
,
order
:
27
},
iso885910
:
{
labelLong
:
'
Nordic (ISO 8859-10)
'
,
labelShort
:
'
ISO 8859-10
'
,
order
:
28
},
iso885916
:
{
labelLong
:
'
Romanian (ISO 8859-16)
'
,
labelShort
:
'
ISO 8859-16
'
,
order
:
29
},
windows1254
:
{
labelLong
:
'
Turkish (Windows 1254)
'
,
labelShort
:
'
Windows 1254
'
,
order
:
30
},
iso88599
:
{
labelLong
:
'
Turkish (ISO 8859-9)
'
,
labelShort
:
'
ISO 8859-9
'
,
order
:
31
},
windows1258
:
{
labelLong
:
'
Vietnamese (Windows 1258)
'
,
labelShort
:
'
Windows 1258
'
,
order
:
32
},
gbk
:
{
labelLong
:
'
Chinese (GBK)
'
,
labelShort
:
'
GBK
'
,
order
:
33
},
gb18030
:
{
labelLong
:
'
Chinese (GB18030)
'
,
labelShort
:
'
GB18030
'
,
order
:
34
},
cp950
:
{
labelLong
:
'
Traditional Chinese (Big5)
'
,
labelShort
:
'
Big5
'
,
order
:
35
},
big5hkscs
:
{
labelLong
:
'
Traditional Chinese (Big5-HKSCS)
'
,
labelShort
:
'
Big5-HKSCS
'
,
order
:
36
},
shiftjis
:
{
labelLong
:
'
Japanese (Shift JIS)
'
,
labelShort
:
'
Shift JIS
'
,
order
:
37
},
eucjp
:
{
labelLong
:
'
Japanese (EUC-JP)
'
,
labelShort
:
'
EUC-JP
'
,
order
:
38
},
euckr
:
{
labelLong
:
'
Korean (EUC-KR)
'
,
labelShort
:
'
EUC-KR
'
,
order
:
39
},
windows874
:
{
labelLong
:
'
Thai (Windows 874)
'
,
labelShort
:
'
Windows 874
'
,
order
:
40
}
,
iso885911
:
{
labelLong
:
'
Latin/Thai (ISO 8859-11)
'
,
labelShort
:
'
ISO 8859-11
'
,
order
:
41
},
'
koi8-ru
'
:
{
labelLong
:
'
Cyrillic (KOI8-RU)
'
,
labelShort
:
'
KOI8-RU
'
,
order
:
42
},
'
koi8-t
'
:
{
labelLong
:
'
Tajik (KOI8-T)
'
,
labelShort
:
'
KOI8-T
'
,
order
:
43
},
GB2312
:
{
labelLong
:
'
Simplified Chinese (GB 2312)
'
,
labelShort
:
'
GB 2312
'
,
order
:
44
}
};
src/vs/platform/files/common/files.ts
浏览文件 @
cd052465
...
...
@@ -433,4 +433,230 @@ export interface IFilesConfiguration {
autoSaveDelay
:
number
;
eol
:
string
;
};
}
\ No newline at end of file
}
export
const
SUPPORTED_ENCODINGS
:
{
[
encoding
:
string
]:
{
labelLong
:
string
;
labelShort
:
string
;
order
:
number
;
encodeOnly
?:
boolean
;
alias
?:
string
}
}
=
{
utf8
:
{
labelLong
:
'
UTF-8
'
,
labelShort
:
'
UTF-8
'
,
order
:
1
,
alias
:
'
utf8bom
'
},
utf8bom
:
{
labelLong
:
'
UTF-8 with BOM
'
,
labelShort
:
'
UTF-8 with BOM
'
,
encodeOnly
:
true
,
order
:
2
,
alias
:
'
utf8
'
},
utf16le
:
{
labelLong
:
'
UTF-16 LE
'
,
labelShort
:
'
UTF-16 LE
'
,
order
:
3
},
utf16be
:
{
labelLong
:
'
UTF-16 BE
'
,
labelShort
:
'
UTF-16 BE
'
,
order
:
4
},
windows1252
:
{
labelLong
:
'
Western (Windows 1252)
'
,
labelShort
:
'
Windows 1252
'
,
order
:
5
},
iso88591
:
{
labelLong
:
'
Western (ISO 8859-1)
'
,
labelShort
:
'
ISO 8859-1
'
,
order
:
6
},
iso88593
:
{
labelLong
:
'
Western (ISO 8859-3)
'
,
labelShort
:
'
ISO 8859-3
'
,
order
:
7
},
iso885915
:
{
labelLong
:
'
Western (ISO 8859-15)
'
,
labelShort
:
'
ISO 8859-15
'
,
order
:
8
},
macroman
:
{
labelLong
:
'
Western (Mac Roman)
'
,
labelShort
:
'
Mac Roman
'
,
order
:
9
},
cp437
:
{
labelLong
:
'
DOS (CP 437)
'
,
labelShort
:
'
CP437
'
,
order
:
10
},
windows1256
:
{
labelLong
:
'
Arabic (Windows 1256)
'
,
labelShort
:
'
Windows 1256
'
,
order
:
11
},
iso88596
:
{
labelLong
:
'
Arabic (ISO 8859-6)
'
,
labelShort
:
'
ISO 8859-6
'
,
order
:
12
},
windows1257
:
{
labelLong
:
'
Baltic (Windows 1257)
'
,
labelShort
:
'
Windows 1257
'
,
order
:
13
},
iso88594
:
{
labelLong
:
'
Baltic (ISO 8859-4)
'
,
labelShort
:
'
ISO 8859-4
'
,
order
:
14
},
iso885914
:
{
labelLong
:
'
Celtic (ISO 8859-14)
'
,
labelShort
:
'
ISO 8859-14
'
,
order
:
15
},
windows1250
:
{
labelLong
:
'
Central European (Windows 1250)
'
,
labelShort
:
'
Windows 1250
'
,
order
:
16
},
iso88592
:
{
labelLong
:
'
Central European (ISO 8859-2)
'
,
labelShort
:
'
ISO 8859-2
'
,
order
:
17
},
windows1251
:
{
labelLong
:
'
Cyrillic (Windows 1251)
'
,
labelShort
:
'
Windows 1251
'
,
order
:
18
},
cp866
:
{
labelLong
:
'
Cyrillic (CP 866)
'
,
labelShort
:
'
CP 866
'
,
order
:
19
},
iso88595
:
{
labelLong
:
'
Cyrillic (ISO 8859-5)
'
,
labelShort
:
'
ISO 8859-5
'
,
order
:
20
},
koi8r
:
{
labelLong
:
'
Cyrillic (KOI8-R)
'
,
labelShort
:
'
KOI8-R
'
,
order
:
21
},
koi8u
:
{
labelLong
:
'
Cyrillic (KOI8-U)
'
,
labelShort
:
'
KOI8-U
'
,
order
:
22
},
iso885913
:
{
labelLong
:
'
Estonian (ISO 8859-13)
'
,
labelShort
:
'
ISO 8859-13
'
,
order
:
23
},
windows1253
:
{
labelLong
:
'
Greek (Windows 1253)
'
,
labelShort
:
'
Windows 1253
'
,
order
:
24
},
iso88597
:
{
labelLong
:
'
Greek (ISO 8859-7)
'
,
labelShort
:
'
ISO 8859-7
'
,
order
:
25
},
windows1255
:
{
labelLong
:
'
Hebrew (Windows 1255)
'
,
labelShort
:
'
Windows 1255
'
,
order
:
26
},
iso88598
:
{
labelLong
:
'
Hebrew (ISO 8859-8)
'
,
labelShort
:
'
ISO 8859-8
'
,
order
:
27
},
iso885910
:
{
labelLong
:
'
Nordic (ISO 8859-10)
'
,
labelShort
:
'
ISO 8859-10
'
,
order
:
28
},
iso885916
:
{
labelLong
:
'
Romanian (ISO 8859-16)
'
,
labelShort
:
'
ISO 8859-16
'
,
order
:
29
},
windows1254
:
{
labelLong
:
'
Turkish (Windows 1254)
'
,
labelShort
:
'
Windows 1254
'
,
order
:
30
},
iso88599
:
{
labelLong
:
'
Turkish (ISO 8859-9)
'
,
labelShort
:
'
ISO 8859-9
'
,
order
:
31
},
windows1258
:
{
labelLong
:
'
Vietnamese (Windows 1258)
'
,
labelShort
:
'
Windows 1258
'
,
order
:
32
},
gbk
:
{
labelLong
:
'
Chinese (GBK)
'
,
labelShort
:
'
GBK
'
,
order
:
33
},
gb18030
:
{
labelLong
:
'
Chinese (GB18030)
'
,
labelShort
:
'
GB18030
'
,
order
:
34
},
cp950
:
{
labelLong
:
'
Traditional Chinese (Big5)
'
,
labelShort
:
'
Big5
'
,
order
:
35
},
big5hkscs
:
{
labelLong
:
'
Traditional Chinese (Big5-HKSCS)
'
,
labelShort
:
'
Big5-HKSCS
'
,
order
:
36
},
shiftjis
:
{
labelLong
:
'
Japanese (Shift JIS)
'
,
labelShort
:
'
Shift JIS
'
,
order
:
37
},
eucjp
:
{
labelLong
:
'
Japanese (EUC-JP)
'
,
labelShort
:
'
EUC-JP
'
,
order
:
38
},
euckr
:
{
labelLong
:
'
Korean (EUC-KR)
'
,
labelShort
:
'
EUC-KR
'
,
order
:
39
},
windows874
:
{
labelLong
:
'
Thai (Windows 874)
'
,
labelShort
:
'
Windows 874
'
,
order
:
40
}
,
iso885911
:
{
labelLong
:
'
Latin/Thai (ISO 8859-11)
'
,
labelShort
:
'
ISO 8859-11
'
,
order
:
41
},
'
koi8-ru
'
:
{
labelLong
:
'
Cyrillic (KOI8-RU)
'
,
labelShort
:
'
KOI8-RU
'
,
order
:
42
},
'
koi8-t
'
:
{
labelLong
:
'
Tajik (KOI8-T)
'
,
labelShort
:
'
KOI8-T
'
,
order
:
43
},
GB2312
:
{
labelLong
:
'
Simplified Chinese (GB 2312)
'
,
labelShort
:
'
GB 2312
'
,
order
:
44
}
};
\ No newline at end of file
src/vs/workbench/browser/parts/editor/editorStatus.ts
浏览文件 @
cd052465
...
...
@@ -9,7 +9,6 @@ import 'vs/css!./media/editorstatus';
import
nls
=
require
(
'
vs/nls
'
);
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
emmet
as
$
,
append
}
from
'
vs/base/browser/dom
'
;
import
encoding
=
require
(
'
vs/base/common/encoding
'
);
import
strings
=
require
(
'
vs/base/common/strings
'
);
import
types
=
require
(
'
vs/base/common/types
'
);
import
uri
from
'
vs/base/common/uri
'
;
...
...
@@ -31,7 +30,7 @@ import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/edit
import
{
IQuickOpenService
,
IPickOpenEntry
}
from
'
vs/workbench/services/quickopen/common/quickOpenService
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
IEventService
}
from
'
vs/platform/event/common/event
'
;
import
{
IFilesConfiguration
}
from
'
vs/platform/files/common/files
'
;
import
{
IFilesConfiguration
,
SUPPORTED_ENCODINGS
}
from
'
vs/platform/files/common/files
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IModeService
}
from
'
vs/editor/common/services/modeService
'
;
import
{
StyleMutator
}
from
'
vs/base/browser/styleMutator
'
;
...
...
@@ -550,7 +549,7 @@ export class EditorStatus implements IStatusbarItem {
let
encodingSupport
:
IEncodingSupport
=
<
any
>
asFileOrUntitledEditorInput
(
e
.
input
);
if
(
encodingSupport
&&
types
.
isFunction
(
encodingSupport
.
getEncoding
))
{
let
rawEncoding
=
encodingSupport
.
getEncoding
();
let
encodingInfo
=
encoding
.
SUPPORTED_ENCODINGS
[
rawEncoding
];
let
encodingInfo
=
SUPPORTED_ENCODINGS
[
rawEncoding
];
if
(
encodingInfo
)
{
info
.
encoding
=
encodingInfo
.
labelShort
;
// if we have a label, take it from there
}
else
{
...
...
@@ -843,7 +842,7 @@ export class ChangeEncodingAction extends Action {
let
selectedIndex
:
number
;
// All encodings are valid picks
let
picks
:
IPickOpenEntry
[]
=
Object
.
keys
(
encoding
.
SUPPORTED_ENCODINGS
)
let
picks
:
IPickOpenEntry
[]
=
Object
.
keys
(
SUPPORTED_ENCODINGS
)
.
sort
((
k1
,
k2
)
=>
{
if
(
k1
===
defaultEncoding
)
{
return
-
1
;
...
...
@@ -851,17 +850,17 @@ export class ChangeEncodingAction extends Action {
return
1
;
}
return
encoding
.
SUPPORTED_ENCODINGS
[
k1
].
order
-
encoding
.
SUPPORTED_ENCODINGS
[
k2
].
order
;
return
SUPPORTED_ENCODINGS
[
k1
].
order
-
SUPPORTED_ENCODINGS
[
k2
].
order
;
})
.
filter
(
k
=>
{
return
!
isReopenWithEncoding
||
!
encoding
.
SUPPORTED_ENCODINGS
[
k
].
encodeOnly
;
// hide those that can only be used for encoding if we are about to decode
return
!
isReopenWithEncoding
||
!
SUPPORTED_ENCODINGS
[
k
].
encodeOnly
;
// hide those that can only be used for encoding if we are about to decode
})
.
map
((
key
,
index
)
=>
{
if
(
key
===
encodingSupport
.
getEncoding
())
{
if
(
key
===
encodingSupport
.
getEncoding
()
||
SUPPORTED_ENCODINGS
[
key
].
alias
===
encodingSupport
.
getEncoding
()
)
{
selectedIndex
=
index
;
}
return
{
id
:
key
,
label
:
encoding
.
SUPPORTED_ENCODINGS
[
key
].
labelLong
,
description
:
key
===
defaultEncoding
?
nls
.
localize
(
'
defaultEncoding
'
,
"
Default Encoding
"
)
:
void
0
};
return
{
id
:
key
,
label
:
SUPPORTED_ENCODINGS
[
key
].
labelLong
,
description
:
key
===
defaultEncoding
?
nls
.
localize
(
'
defaultEncoding
'
,
"
Default Encoding
"
)
:
void
0
};
});
return
this
.
quickOpenService
.
pick
(
picks
,
{
...
...
src/vs/workbench/parts/files/browser/files.contribution.ts
浏览文件 @
cd052465
...
...
@@ -8,7 +8,6 @@
import
'
vs/css!./media/files.contribution
'
;
import
URI
from
'
vs/base/common/uri
'
;
import
{
SUPPORTED_ENCODINGS
}
from
'
vs/base/common/encoding
'
;
import
{
ViewletRegistry
,
Extensions
as
ViewletExtensions
,
ViewletDescriptor
,
ToggleViewletAction
}
from
'
vs/workbench/browser/viewlet
'
;
import
nls
=
require
(
'
vs/nls
'
);
import
{
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
...
...
@@ -22,7 +21,7 @@ import {IEditorRegistry, Extensions as EditorExtensions, IEditorInputFactory} fr
import
{
EditorInput
,
IFileEditorInput
}
from
'
vs/workbench/common/editor
'
;
import
{
QuickOpenHandlerDescriptor
,
IQuickOpenRegistry
,
Extensions
as
QuickOpenExtensions
}
from
'
vs/workbench/browser/quickopen
'
;
import
{
FileEditorDescriptor
}
from
'
vs/workbench/parts/files/browser/files
'
;
import
{
AutoSaveConfiguration
}
from
'
vs/platform/files/common/files
'
;
import
{
AutoSaveConfiguration
,
SUPPORTED_ENCODINGS
}
from
'
vs/platform/files/common/files
'
;
import
{
FILE_EDITOR_INPUT_ID
,
VIEWLET_ID
}
from
'
vs/workbench/parts/files/common/files
'
;
import
{
FileTracker
}
from
'
vs/workbench/parts/files/browser/fileTracker
'
;
import
{
SaveParticipant
}
from
'
vs/workbench/parts/files/common/editors/saveParticipant
'
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录