Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
8f34b9e2
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,发现更多精彩内容 >>
提交
8f34b9e2
编写于
4月 02, 2019
作者:
M
Martin Aeschlimann
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
themes: move tokenColors normalization to tokenColors getter
上级
add35181
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
38 deletion
+35
-38
src/vs/workbench/services/themes/browser/colorThemeData.ts
src/vs/workbench/services/themes/browser/colorThemeData.ts
+35
-38
未找到文件。
src/vs/workbench/services/themes/browser/colorThemeData.ts
浏览文件 @
8f34b9e2
...
@@ -58,12 +58,39 @@ export class ColorThemeData implements IColorTheme {
...
@@ -58,12 +58,39 @@ export class ColorThemeData implements IColorTheme {
}
}
get
tokenColors
():
ITokenColorizationRule
[]
{
get
tokenColors
():
ITokenColorizationRule
[]
{
const
result
:
ITokenColorizationRule
[]
=
[];
// the default rule (scope empty) is always the first rule. Ignore all other default rules.
const
foreground
=
this
.
getColor
(
editorForeground
)
||
this
.
getDefault
(
editorForeground
)
!
;
const
background
=
this
.
getColor
(
editorBackground
)
||
this
.
getDefault
(
editorBackground
)
!
;
result
.
push
({
settings
:
{
foreground
:
Color
.
Format
.
CSS
.
formatHexA
(
foreground
),
background
:
Color
.
Format
.
CSS
.
formatHexA
(
background
)
}
});
let
hasDefaultTokens
=
false
;
function
addRule
(
rule
:
ITokenColorizationRule
)
{
if
(
rule
.
scope
&&
rule
.
settings
)
{
if
(
rule
.
scope
===
'
token.info-token
'
)
{
hasDefaultTokens
=
true
;
}
result
.
push
(
rule
);
}
}
this
.
themeTokenColors
.
forEach
(
addRule
);
// Add the custom colors after the theme colors
// Add the custom colors after the theme colors
// so that they will override them
// so that they will override them
return
this
.
themeTokenColors
.
concat
(
this
.
customTokenColors
);
this
.
customTokenColors
.
forEach
(
addRule
);
}
if
(
!
hasDefaultTokens
)
{
defaultThemeColors
[
this
.
type
].
forEach
(
addRule
);
}
return
result
;
}
public
getColor
(
colorId
:
ColorIdentifier
,
useDefault
?:
boolean
):
Color
|
undefined
{
public
getColor
(
colorId
:
ColorIdentifier
,
useDefault
?:
boolean
):
Color
|
undefined
{
let
color
:
Color
|
undefined
=
this
.
customColorMap
[
colorId
];
let
color
:
Color
|
undefined
=
this
.
customColorMap
[
colorId
];
...
@@ -93,9 +120,6 @@ export class ColorThemeData implements IColorTheme {
...
@@ -93,9 +120,6 @@ export class ColorThemeData implements IColorTheme {
if
(
types
.
isObject
(
themeSpecificColors
))
{
if
(
types
.
isObject
(
themeSpecificColors
))
{
this
.
overwriteCustomColors
(
themeSpecificColors
);
this
.
overwriteCustomColors
(
themeSpecificColors
);
}
}
if
(
this
.
themeTokenColors
&&
this
.
themeTokenColors
.
length
)
{
updateDefaultRuleSettings
(
this
.
themeTokenColors
[
0
],
this
);
}
}
}
private
overwriteCustomColors
(
colors
:
IColorCustomizations
)
{
private
overwriteCustomColors
(
colors
:
IColorCustomizations
)
{
...
@@ -155,32 +179,13 @@ export class ColorThemeData implements IColorTheme {
...
@@ -155,32 +179,13 @@ export class ColorThemeData implements IColorTheme {
if
(
!
this
.
location
)
{
if
(
!
this
.
location
)
{
return
Promise
.
resolve
(
undefined
);
return
Promise
.
resolve
(
undefined
);
}
}
this
.
themeTokenColors
=
[];
this
.
colorMap
=
{};
return
_loadColorTheme
(
fileService
,
this
.
location
,
this
.
themeTokenColors
,
this
.
colorMap
).
then
(
_
=>
{
return
_loadColorTheme
(
fileService
,
this
.
location
,
this
.
themeTokenColors
,
this
.
colorMap
).
then
(
_
=>
{
this
.
isLoaded
=
true
;
this
.
isLoaded
=
true
;
this
.
sanitizeTokenColors
();
});
});
}
}
/**
* Place the default settings first and add the token-info rules
*/
private
sanitizeTokenColors
()
{
let
hasDefaultTokens
=
false
;
let
updatedTokenColors
:
ITokenColorizationRule
[]
=
[
updateDefaultRuleSettings
({
settings
:
{}
},
this
)];
this
.
themeTokenColors
.
forEach
(
rule
=>
{
if
(
rule
.
scope
&&
rule
.
settings
)
{
if
(
rule
.
scope
===
'
token.info-token
'
)
{
hasDefaultTokens
=
true
;
}
updatedTokenColors
.
push
(
rule
);
}
});
if
(
!
hasDefaultTokens
)
{
updatedTokenColors
.
push
(...
defaultThemeColors
[
this
.
type
]);
}
this
.
themeTokenColors
=
updatedTokenColors
;
}
toStorageData
()
{
toStorageData
()
{
let
colorMapData
=
{};
let
colorMapData
=
{};
for
(
let
key
in
this
.
colorMap
)
{
for
(
let
key
in
this
.
colorMap
)
{
...
@@ -200,7 +205,7 @@ export class ColorThemeData implements IColorTheme {
...
@@ -200,7 +205,7 @@ export class ColorThemeData implements IColorTheme {
}
}
hasEqualData
(
other
:
ColorThemeData
)
{
hasEqualData
(
other
:
ColorThemeData
)
{
return
objects
.
equals
(
this
.
colorMap
,
other
.
colorMap
)
&&
objects
.
equals
(
this
.
t
okenColors
,
other
.
t
okenColors
);
return
objects
.
equals
(
this
.
colorMap
,
other
.
colorMap
)
&&
objects
.
equals
(
this
.
t
hemeTokenColors
,
other
.
themeT
okenColors
);
}
}
get
baseTheme
():
string
{
get
baseTheme
():
string
{
...
@@ -220,7 +225,7 @@ export class ColorThemeData implements IColorTheme {
...
@@ -220,7 +225,7 @@ export class ColorThemeData implements IColorTheme {
static
createUnloadedTheme
(
id
:
string
):
ColorThemeData
{
static
createUnloadedTheme
(
id
:
string
):
ColorThemeData
{
let
themeData
=
new
ColorThemeData
(
id
,
''
,
'
__
'
+
id
);
let
themeData
=
new
ColorThemeData
(
id
,
''
,
'
__
'
+
id
);
themeData
.
isLoaded
=
false
;
themeData
.
isLoaded
=
false
;
themeData
.
themeTokenColors
=
[
{
settings
:
{}
}
];
themeData
.
themeTokenColors
=
[];
themeData
.
watch
=
false
;
themeData
.
watch
=
false
;
return
themeData
;
return
themeData
;
}
}
...
@@ -228,7 +233,7 @@ export class ColorThemeData implements IColorTheme {
...
@@ -228,7 +233,7 @@ export class ColorThemeData implements IColorTheme {
static
createLoadedEmptyTheme
(
id
:
string
,
settingsId
:
string
):
ColorThemeData
{
static
createLoadedEmptyTheme
(
id
:
string
,
settingsId
:
string
):
ColorThemeData
{
let
themeData
=
new
ColorThemeData
(
id
,
''
,
settingsId
);
let
themeData
=
new
ColorThemeData
(
id
,
''
,
settingsId
);
themeData
.
isLoaded
=
true
;
themeData
.
isLoaded
=
true
;
themeData
.
themeTokenColors
=
[
{
settings
:
{}
}
];
themeData
.
themeTokenColors
=
[];
themeData
.
watch
=
false
;
themeData
.
watch
=
false
;
return
themeData
;
return
themeData
;
}
}
...
@@ -357,14 +362,6 @@ function _loadSyntaxTokens(fileService: IFileService, themeLocation: URI, result
...
@@ -357,14 +362,6 @@ function _loadSyntaxTokens(fileService: IFileService, themeLocation: URI, result
});
});
}
}
function
updateDefaultRuleSettings
(
defaultRule
:
ITokenColorizationRule
,
theme
:
ColorThemeData
):
ITokenColorizationRule
{
const
foreground
=
theme
.
getColor
(
editorForeground
)
||
theme
.
getDefault
(
editorForeground
)
!
;
const
background
=
theme
.
getColor
(
editorBackground
)
||
theme
.
getDefault
(
editorBackground
)
!
;
defaultRule
.
settings
.
foreground
=
Color
.
Format
.
CSS
.
formatHexA
(
foreground
);
defaultRule
.
settings
.
background
=
Color
.
Format
.
CSS
.
formatHexA
(
background
);
return
defaultRule
;
}
let
defaultThemeColors
:
{
[
baseTheme
:
string
]:
ITokenColorizationRule
[]
}
=
{
let
defaultThemeColors
:
{
[
baseTheme
:
string
]:
ITokenColorizationRule
[]
}
=
{
'
light
'
:
[
'
light
'
:
[
{
scope
:
'
token.info-token
'
,
settings
:
{
foreground
:
'
#316bcd
'
}
},
{
scope
:
'
token.info-token
'
,
settings
:
{
foreground
:
'
#316bcd
'
}
},
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录