Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
9fa02f5e
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,发现更多精彩内容 >>
提交
9fa02f5e
编写于
1月 20, 2017
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#1587 Update override propery schema with allowed identifiers
上级
6ae3ffa5
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
31 addition
and
3 deletion
+31
-3
src/vs/editor/common/services/languagesRegistry.ts
src/vs/editor/common/services/languagesRegistry.ts
+3
-0
src/vs/platform/configuration/common/configurationRegistry.ts
...vs/platform/configuration/common/configurationRegistry.ts
+28
-3
未找到文件。
src/vs/editor/common/services/languagesRegistry.ts
浏览文件 @
9fa02f5e
...
...
@@ -8,10 +8,12 @@ import { onUnexpectedError } from 'vs/base/common/errors';
import
Event
,
{
Emitter
}
from
'
vs/base/common/event
'
;
import
*
as
mime
from
'
vs/base/common/mime
'
;
import
*
as
strings
from
'
vs/base/common/strings
'
;
import
{
Registry
}
from
'
vs/platform/platform
'
;
import
{
ModesRegistry
}
from
'
vs/editor/common/modes/modesRegistry
'
;
import
{
ILanguageExtensionPoint
}
from
'
vs/editor/common/services/modeService
'
;
import
{
LanguageId
,
LanguageIdentifier
}
from
'
vs/editor/common/modes
'
;
import
{
NULL_MODE_ID
,
NULL_LANGUAGE_IDENTIFIER
}
from
'
vs/editor/common/modes/nullMode
'
;
import
{
IConfigurationRegistry
,
Extensions
}
from
'
vs/platform/configuration/common/configurationRegistry
'
;
var
hasOwnProperty
=
Object
.
prototype
.
hasOwnProperty
;
...
...
@@ -80,6 +82,7 @@ export class LanguagesRegistry {
});
});
Registry
.
as
<
IConfigurationRegistry
>
(
Extensions
.
Configuration
).
registerOverrideIdentifiers
(
ModesRegistry
.
getLanguages
().
map
(
language
=>
language
.
id
));
this
.
_onDidAddModes
.
fire
(
addedModes
);
}
...
...
src/vs/platform/configuration/common/configurationRegistry.ts
浏览文件 @
9fa02f5e
...
...
@@ -45,6 +45,7 @@ export interface IConfigurationRegistry {
*/
getConfigurationProperties
():
{
[
qualifiedKey
:
string
]:
IConfigurationPropertySchema
};
registerOverrideIdentifiers
(
identifiers
:
string
[]):
void
;
}
export
interface
IConfigurationPropertySchema
extends
IJSONSchema
{
...
...
@@ -70,12 +71,15 @@ class ConfigurationRegistry implements IConfigurationRegistry {
private
configurationProperties
:
{
[
qualifiedKey
:
string
]:
IJSONSchema
};
private
configurationSchema
:
IJSONSchema
;
private
_onDidRegisterConfiguration
:
Emitter
<
IConfigurationRegistry
>
;
private
overrideIdentifiers
:
string
[]
=
[];
private
overridePropertyPattern
:
string
;
constructor
()
{
this
.
configurationContributors
=
[];
this
.
configurationSchema
=
{
properties
:
{},
patternProperties
:
{},
additionalProperties
:
false
,
errorMessage
:
'
Unknown configuration setting
'
};
this
.
_onDidRegisterConfiguration
=
new
Emitter
<
IConfigurationRegistry
>
();
this
.
configurationProperties
=
{};
this
.
computeOverridePropertyPattern
();
contributionRegistry
.
registerSchema
(
schemaId
,
this
.
configurationSchema
);
this
.
registerOverrideSettingsConfiguration
();
...
...
@@ -100,6 +104,11 @@ class ConfigurationRegistry implements IConfigurationRegistry {
this
.
_onDidRegisterConfiguration
.
fire
(
this
);
}
public
registerOverrideIdentifiers
(
overrideIdentifiers
:
string
[]):
void
{
this
.
overrideIdentifiers
.
push
(...
overrideIdentifiers
);
this
.
updateOverridePropertyPatternKey
();
}
private
registerProperties
(
configuration
:
IConfigurationNode
,
overridable
:
boolean
=
false
)
{
overridable
=
configuration
.
overridable
||
overridable
;
let
properties
=
configuration
.
properties
;
...
...
@@ -150,7 +159,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
}
};
if
(
configuration
.
id
===
SETTINGS_OVERRRIDE_NODE_ID
)
{
configurationSchema
.
patternProperties
[
OVERRIDE_PROPERTY
]
=
objects
.
clone
(
configuration
.
properties
[
'
[]
'
]);
configurationSchema
.
patternProperties
[
this
.
overridePropertyPattern
]
=
objects
.
clone
(
configuration
.
properties
[
'
[]
'
]);
}
else
{
register
(
configuration
);
}
...
...
@@ -159,16 +168,27 @@ class ConfigurationRegistry implements IConfigurationRegistry {
private
updateSchemaForOverrideSettingsConfiguration
(
configuration
:
IConfigurationNode
):
void
{
if
(
configuration
.
id
!==
SETTINGS_OVERRRIDE_NODE_ID
)
{
let
patternProperties
=
this
.
configurationSchema
.
patternProperties
[
OVERRIDE_PROPERTY
];
let
patternProperties
=
this
.
configurationSchema
.
patternProperties
[
this
.
overridePropertyPattern
];
if
(
patternProperties
)
{
if
(
!
patternProperties
.
properties
)
{
patternProperties
.
properties
=
{};
}
this
.
update
(
configuration
,
patternProperties
);
contributionRegistry
.
registerSchema
(
schemaId
,
this
.
configurationSchema
);
}
}
}
private
updateOverridePropertyPatternKey
():
void
{
let
patternProperties
=
this
.
configurationSchema
.
patternProperties
[
this
.
overridePropertyPattern
];
if
(
patternProperties
)
{
delete
this
.
configurationSchema
.
patternProperties
[
this
.
overridePropertyPattern
];
this
.
computeOverridePropertyPattern
();
this
.
configurationSchema
.
patternProperties
[
this
.
overridePropertyPattern
]
=
patternProperties
;
contributionRegistry
.
registerSchema
(
schemaId
,
this
.
configurationSchema
);
}
}
private
update
(
configuration
:
IConfigurationNode
,
overridePropertiesSchema
:
IJSONSchema
):
void
{
let
properties
=
configuration
.
properties
;
if
(
properties
)
{
...
...
@@ -184,13 +204,17 @@ class ConfigurationRegistry implements IConfigurationRegistry {
}
}
private
computeOverridePropertyPattern
():
void
{
this
.
overridePropertyPattern
=
this
.
overrideIdentifiers
.
length
?
OVERRIDE_PATTERN_WITH_SUBSTITUTION
.
replace
(
'
${0}
'
,
this
.
overrideIdentifiers
.
join
(
'
|
'
))
:
OVERRIDE_PROPERTY
;
}
private
registerOverrideSettingsConfiguration
():
void
{
const
properties
=
{
'
[]
'
:
{
type
:
'
object
'
,
description
:
nls
.
localize
(
'
overrideSettings.description
'
,
"
Configure settings to be overridden for a set of language identifiers.
"
),
additionalProperties
:
false
,
errorMessage
:
'
Unknown
configuration setting
'
errorMessage
:
'
Unknown
Identifier. Use language identifiers
'
}
};
this
.
registerConfiguration
({
...
...
@@ -204,6 +228,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
const
SETTINGS_OVERRRIDE_NODE_ID
=
'
override
'
;
const
OVERRIDE_PROPERTY
=
'
\\
[.*
\\
]$
'
;
const
OVERRIDE_PATTERN_WITH_SUBSTITUTION
=
'
\\
[(${0})
\\
]$
'
;
export
const
OVERRIDE_PROPERTY_PATTERN
=
new
RegExp
(
OVERRIDE_PROPERTY
);
function
getDefaultValue
(
type
:
string
|
string
[]):
any
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录