Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
70d6ae46
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,发现更多精彩内容 >>
提交
70d6ae46
编写于
8月 16, 2016
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
entering the lair of debt
上级
32b4b812
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
69 addition
and
60 deletion
+69
-60
src/vs/editor/browser/standalone/standaloneServices.ts
src/vs/editor/browser/standalone/standaloneServices.ts
+1
-1
src/vs/platform/configuration/common/configuration.ts
src/vs/platform/configuration/common/configuration.ts
+6
-7
src/vs/platform/configuration/common/configurationRegistry.ts
...vs/platform/configuration/common/configurationRegistry.ts
+6
-7
src/vs/platform/configuration/common/configurationService.ts
src/vs/platform/configuration/common/configurationService.ts
+12
-9
src/vs/platform/configuration/common/model.ts
src/vs/platform/configuration/common/model.ts
+33
-26
src/vs/platform/workspace/common/workspaceContextService.ts
src/vs/platform/workspace/common/workspaceContextService.ts
+3
-1
src/vs/workbench/electron-browser/main.ts
src/vs/workbench/electron-browser/main.ts
+3
-4
src/vs/workbench/node/extensionHostMain.ts
src/vs/workbench/node/extensionHostMain.ts
+1
-1
src/vs/workbench/services/workspace/common/contextService.ts
src/vs/workbench/services/workspace/common/contextService.ts
+1
-1
src/vs/workbench/test/browser/part.test.ts
src/vs/workbench/test/browser/part.test.ts
+1
-1
src/vs/workbench/test/browser/parts/quickOpen/quickopen.perf.test.ts
...bench/test/browser/parts/quickOpen/quickopen.perf.test.ts
+1
-1
src/vs/workbench/test/common/memento.test.ts
src/vs/workbench/test/common/memento.test.ts
+1
-1
未找到文件。
src/vs/editor/browser/standalone/standaloneServices.ts
浏览文件 @
70d6ae46
...
@@ -28,7 +28,7 @@ import {IMessageService} from 'vs/platform/message/common/message';
...
@@ -28,7 +28,7 @@ import {IMessageService} from 'vs/platform/message/common/message';
import
{
IProgressService
}
from
'
vs/platform/progress/common/progress
'
;
import
{
IProgressService
}
from
'
vs/platform/progress/common/progress
'
;
import
{
IStorageService
,
NullStorageService
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IStorageService
,
NullStorageService
}
from
'
vs/platform/storage/common/storage
'
;
import
{
ITelemetryService
,
NullTelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
ITelemetryService
,
NullTelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
baseW
orkspaceContextService
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
w
orkspaceContextService
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
ICodeEditorService
}
from
'
vs/editor/common/services/codeEditorService
'
;
import
{
ICodeEditorService
}
from
'
vs/editor/common/services/codeEditorService
'
;
import
{
IEditorWorkerService
}
from
'
vs/editor/common/services/editorWorkerService
'
;
import
{
IEditorWorkerService
}
from
'
vs/editor/common/services/editorWorkerService
'
;
...
...
src/vs/platform/configuration/common/configuration.ts
浏览文件 @
70d6ae46
...
@@ -39,7 +39,7 @@ export interface IConfigurationService {
...
@@ -39,7 +39,7 @@ export interface IConfigurationService {
* Sets a user configuration. An the setting does not yet exist in the settings, it will be
* Sets a user configuration. An the setting does not yet exist in the settings, it will be
* added.
* added.
*/
*/
setUserConfiguration
(
key
:
string
|
JSONPath
,
value
:
any
)
:
Thenable
<
void
>
;
setUserConfiguration
(
key
:
string
|
JSONPath
,
value
:
any
):
Thenable
<
void
>
;
}
}
export
interface
IConfigurationServiceEvent
{
export
interface
IConfigurationServiceEvent
{
...
@@ -55,12 +55,11 @@ export function getConfigurationValue<T>(config: any, settingPath: string, defau
...
@@ -55,12 +55,11 @@ export function getConfigurationValue<T>(config: any, settingPath: string, defau
return
undefined
;
return
undefined
;
}
}
}
}
return
<
T
>
current
;
return
<
T
>
current
;
}
}
let
path
=
settingPath
.
split
(
'
.
'
);
const
path
=
settingPath
.
split
(
'
.
'
);
let
result
=
accessSetting
(
config
,
path
);
const
result
=
accessSetting
(
config
,
path
);
return
typeof
result
===
'
undefined
'
?
defaultValue
return
typeof
result
===
'
undefined
'
?
defaultValue
:
result
;
:
result
;
}
}
\ No newline at end of file
src/vs/platform/configuration/common/configurationRegistry.ts
浏览文件 @
70d6ae46
...
@@ -12,7 +12,6 @@ import objects = require('vs/base/common/objects');
...
@@ -12,7 +12,6 @@ import objects = require('vs/base/common/objects');
import
{
ExtensionsRegistry
}
from
'
vs/platform/extensions/common/extensionsRegistry
'
;
import
{
ExtensionsRegistry
}
from
'
vs/platform/extensions/common/extensionsRegistry
'
;
import
JSONContributionRegistry
=
require
(
'
vs/platform/jsonschemas/common/jsonContributionRegistry
'
);
import
JSONContributionRegistry
=
require
(
'
vs/platform/jsonschemas/common/jsonContributionRegistry
'
);
export
const
Extensions
=
{
export
const
Extensions
=
{
Configuration
:
'
base.contributions.configuration
'
Configuration
:
'
base.contributions.configuration
'
};
};
...
@@ -80,7 +79,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
...
@@ -80,7 +79,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
}
}
private
registerJSONConfiguration
(
configuration
:
IConfigurationNode
)
{
private
registerJSONConfiguration
(
configuration
:
IConfigurationNode
)
{
le
t
schema
=
<
IJSONSchema
>
objects
.
clone
(
configuration
);
cons
t
schema
=
<
IJSONSchema
>
objects
.
clone
(
configuration
);
this
.
configurationSchema
.
allOf
.
push
(
schema
);
this
.
configurationSchema
.
allOf
.
push
(
schema
);
contributionRegistry
.
registerSchema
(
schemaId
,
this
.
configurationSchema
);
contributionRegistry
.
registerSchema
(
schemaId
,
this
.
configurationSchema
);
}
}
...
@@ -89,7 +88,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
...
@@ -89,7 +88,7 @@ class ConfigurationRegistry implements IConfigurationRegistry {
const
configurationRegistry
=
new
ConfigurationRegistry
();
const
configurationRegistry
=
new
ConfigurationRegistry
();
platform
.
Registry
.
add
(
Extensions
.
Configuration
,
configurationRegistry
);
platform
.
Registry
.
add
(
Extensions
.
Configuration
,
configurationRegistry
);
le
t
configurationExtPoint
=
ExtensionsRegistry
.
registerExtensionPoint
<
IConfigurationNode
>
(
'
configuration
'
,
{
cons
t
configurationExtPoint
=
ExtensionsRegistry
.
registerExtensionPoint
<
IConfigurationNode
>
(
'
configuration
'
,
{
description
:
nls
.
localize
(
'
vscode.extension.contributes.configuration
'
,
'
Contributes configuration settings.
'
),
description
:
nls
.
localize
(
'
vscode.extension.contributes.configuration
'
,
'
Contributes configuration settings.
'
),
type
:
'
object
'
,
type
:
'
object
'
,
defaultSnippets
:
[{
body
:
{
title
:
''
,
properties
:
{}
}
}],
defaultSnippets
:
[{
body
:
{
title
:
''
,
properties
:
{}
}
}],
...
@@ -110,8 +109,8 @@ let configurationExtPoint = ExtensionsRegistry.registerExtensionPoint<IConfigura
...
@@ -110,8 +109,8 @@ let configurationExtPoint = ExtensionsRegistry.registerExtensionPoint<IConfigura
configurationExtPoint
.
setHandler
((
extensions
)
=>
{
configurationExtPoint
.
setHandler
((
extensions
)
=>
{
for
(
let
i
=
0
;
i
<
extensions
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
extensions
.
length
;
i
++
)
{
le
t
configuration
=
<
IConfigurationNode
>
extensions
[
i
].
value
;
cons
t
configuration
=
<
IConfigurationNode
>
extensions
[
i
].
value
;
le
t
collector
=
extensions
[
i
].
collector
;
cons
t
collector
=
extensions
[
i
].
collector
;
if
(
configuration
.
type
&&
configuration
.
type
!==
'
object
'
)
{
if
(
configuration
.
type
&&
configuration
.
type
!==
'
object
'
)
{
collector
.
warn
(
nls
.
localize
(
'
invalid.type
'
,
"
if set, 'configuration.type' must be set to 'object
"
));
collector
.
warn
(
nls
.
localize
(
'
invalid.type
'
,
"
if set, 'configuration.type' must be set to 'object
"
));
...
@@ -127,8 +126,8 @@ configurationExtPoint.setHandler((extensions) => {
...
@@ -127,8 +126,8 @@ configurationExtPoint.setHandler((extensions) => {
collector
.
error
(
nls
.
localize
(
'
invalid.properties
'
,
"
'configuration.properties' must be an object
"
));
collector
.
error
(
nls
.
localize
(
'
invalid.properties
'
,
"
'configuration.properties' must be an object
"
));
return
;
return
;
}
}
le
t
clonedConfiguration
=
objects
.
clone
(
configuration
);
cons
t
clonedConfiguration
=
objects
.
clone
(
configuration
);
clonedConfiguration
.
id
=
extensions
[
i
].
description
.
id
;
clonedConfiguration
.
id
=
extensions
[
i
].
description
.
id
;
configurationRegistry
.
registerConfiguration
(
clonedConfiguration
);
configurationRegistry
.
registerConfiguration
(
clonedConfiguration
);
}
}
});
});
\ No newline at end of file
src/vs/platform/configuration/common/configurationService.ts
浏览文件 @
70d6ae46
...
@@ -79,8 +79,9 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
...
@@ -79,8 +79,9 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
}
}
protected
registerListeners
():
void
{
protected
registerListeners
():
void
{
let
unbind
=
this
.
eventService
.
addListener2
(
EventType
.
FILE_CHANGES
,
(
events
)
=>
this
.
handleFileEvents
(
events
));
const
unbind
=
this
.
eventService
.
addListener2
(
EventType
.
FILE_CHANGES
,
(
events
)
=>
this
.
handleFileEvents
(
events
));
let
subscription
=
Registry
.
as
<
IConfigurationRegistry
>
(
Extensions
.
Configuration
).
onDidRegisterConfiguration
(()
=>
this
.
onDidRegisterConfiguration
());
const
subscription
=
Registry
.
as
<
IConfigurationRegistry
>
(
Extensions
.
Configuration
).
onDidRegisterConfiguration
(()
=>
this
.
onDidRegisterConfiguration
());
this
.
callOnDispose
=
{
this
.
callOnDispose
=
{
dispose
:
()
=>
{
dispose
:
()
=>
{
unbind
.
dispose
();
unbind
.
dispose
();
...
@@ -99,12 +100,12 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
...
@@ -99,12 +100,12 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
protected
abstract
resolveStat
(
resource
:
uri
):
TPromise
<
IStat
>
;
protected
abstract
resolveStat
(
resource
:
uri
):
TPromise
<
IStat
>
;
public
abstract
setUserConfiguration
(
key
:
string
|
JSONPath
,
value
:
any
)
:
Thenable
<
void
>
;
public
abstract
setUserConfiguration
(
key
:
string
|
JSONPath
,
value
:
any
):
Thenable
<
void
>
;
public
getConfiguration
<
T
>
(
section
?:
string
):
T
{
public
getConfiguration
<
T
>
(
section
?:
string
):
T
{
let
result
=
section
?
this
.
cachedConfig
.
config
[
section
]
:
this
.
cachedConfig
.
config
;
let
result
=
section
?
this
.
cachedConfig
.
config
[
section
]
:
this
.
cachedConfig
.
config
;
le
t
parseErrors
=
this
.
cachedConfig
.
parseErrors
;
cons
t
parseErrors
=
this
.
cachedConfig
.
parseErrors
;
if
(
parseErrors
&&
parseErrors
.
length
>
0
)
{
if
(
parseErrors
&&
parseErrors
.
length
>
0
)
{
if
(
!
result
)
{
if
(
!
result
)
{
result
=
{};
result
=
{};
...
@@ -134,10 +135,10 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
...
@@ -134,10 +135,10 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
return
this
.
loadWorkspaceConfiguration
().
then
((
values
)
=>
{
return
this
.
loadWorkspaceConfiguration
().
then
((
values
)
=>
{
// Consolidate
// Consolidate
le
t
consolidated
=
model
.
consolidate
(
values
);
cons
t
consolidated
=
model
.
consolidate
(
values
);
// Override with workspace locals
// Override with workspace locals
le
t
merged
=
objects
.
mixin
(
cons
t
merged
=
objects
.
mixin
(
objects
.
clone
(
globals
.
contents
),
// target: global/default values (but dont modify!)
objects
.
clone
(
globals
.
contents
),
// target: global/default values (but dont modify!)
consolidated
.
contents
,
// source: workspace configured values
consolidated
.
contents
,
// source: workspace configured values
true
// overwrite
true
// overwrite
...
@@ -147,6 +148,7 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
...
@@ -147,6 +148,7 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
if
(
consolidated
.
parseErrors
)
{
if
(
consolidated
.
parseErrors
)
{
parseErrors
=
consolidated
.
parseErrors
;
parseErrors
=
consolidated
.
parseErrors
;
}
}
if
(
globals
.
parseErrors
)
{
if
(
globals
.
parseErrors
)
{
parseErrors
.
push
.
apply
(
parseErrors
,
globals
.
parseErrors
);
parseErrors
.
push
.
apply
(
parseErrors
,
globals
.
parseErrors
);
}
}
...
@@ -225,10 +227,11 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
...
@@ -225,10 +227,11 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
}
}
private
handleFileEvents
(
event
:
FileChangesEvent
):
void
{
private
handleFileEvents
(
event
:
FileChangesEvent
):
void
{
le
t
events
=
event
.
changes
;
cons
t
events
=
event
.
changes
;
let
affectedByChanges
=
false
;
let
affectedByChanges
=
false
;
for
(
let
i
=
0
,
len
=
events
.
length
;
i
<
len
;
i
++
)
{
for
(
let
i
=
0
,
len
=
events
.
length
;
i
<
len
;
i
++
)
{
le
t
workspacePath
=
this
.
contextService
.
toWorkspaceRelativePath
(
events
[
i
].
resource
);
cons
t
workspacePath
=
this
.
contextService
.
toWorkspaceRelativePath
(
events
[
i
].
resource
);
if
(
!
workspacePath
)
{
if
(
!
workspacePath
)
{
continue
;
// event is not inside workspace
continue
;
// event is not inside workspace
}
}
...
@@ -269,4 +272,4 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
...
@@ -269,4 +272,4 @@ export abstract class ConfigurationService implements IConfigurationService, IDi
this
.
callOnDispose
.
dispose
();
this
.
callOnDispose
.
dispose
();
this
.
_onDidUpdateConfiguration
.
dispose
();
this
.
_onDidUpdateConfiguration
.
dispose
();
}
}
}
}
\ No newline at end of file
src/vs/platform/configuration/common/model.ts
浏览文件 @
70d6ae46
...
@@ -19,11 +19,11 @@ export interface IConfigFile {
...
@@ -19,11 +19,11 @@ export interface IConfigFile {
}
}
function
setNode
(
root
:
any
,
key
:
string
,
value
:
any
):
void
{
function
setNode
(
root
:
any
,
key
:
string
,
value
:
any
):
void
{
le
t
segments
=
key
.
split
(
'
.
'
);
cons
t
segments
=
key
.
split
(
'
.
'
);
le
t
last
=
segments
.
pop
();
cons
t
last
=
segments
.
pop
();
let
curr
=
root
;
let
curr
=
root
;
segments
.
forEach
(
(
s
)
=>
{
segments
.
forEach
(
s
=>
{
let
obj
=
curr
[
s
];
let
obj
=
curr
[
s
];
switch
(
typeof
obj
)
{
switch
(
typeof
obj
)
{
case
'
undefined
'
:
case
'
undefined
'
:
...
@@ -42,11 +42,12 @@ function setNode(root: any, key: string, value: any): void {
...
@@ -42,11 +42,12 @@ function setNode(root: any, key: string, value: any): void {
export
function
newConfigFile
(
value
:
string
):
IConfigFile
{
export
function
newConfigFile
(
value
:
string
):
IConfigFile
{
try
{
try
{
le
t
root
:
any
=
Object
.
create
(
null
);
cons
t
root
:
any
=
Object
.
create
(
null
);
le
t
contents
=
json
.
parse
(
value
)
||
{};
cons
t
contents
=
json
.
parse
(
value
)
||
{};
for
(
let
key
in
contents
)
{
for
(
let
key
in
contents
)
{
setNode
(
root
,
key
,
contents
[
key
]);
setNode
(
root
,
key
,
contents
[
key
]);
}
}
return
{
return
{
contents
:
root
contents
:
root
};
};
...
@@ -73,27 +74,27 @@ export function merge(base: any, add: any, overwrite: boolean): void {
...
@@ -73,27 +74,27 @@ export function merge(base: any, add: any, overwrite: boolean): void {
}
}
export
function
consolidate
(
configMap
:
{
[
key
:
string
]:
IConfigFile
;
}):
{
contents
:
any
;
parseErrors
:
string
[];
}
{
export
function
consolidate
(
configMap
:
{
[
key
:
string
]:
IConfigFile
;
}):
{
contents
:
any
;
parseErrors
:
string
[];
}
{
le
t
finalConfig
:
any
=
Object
.
create
(
null
);
cons
t
finalConfig
:
any
=
Object
.
create
(
null
);
le
t
parseErrors
:
string
[]
=
[];
cons
t
parseErrors
:
string
[]
=
[];
le
t
regexp
=
/
\/(
team
\.)?([^\.]
*
)
*
\.
json/
;
cons
t
regexp
=
/
\/(
team
\.)?([^\.]
*
)
*
\.
json/
;
// For each config file in .vscode folder
// For each config file in .vscode folder
Object
.
keys
(
configMap
).
forEach
((
configFileName
)
=>
{
Object
.
keys
(
configMap
).
forEach
((
configFileName
)
=>
{
le
t
config
=
objects
.
clone
(
configMap
[
configFileName
]);
cons
t
config
=
objects
.
clone
(
configMap
[
configFileName
]);
le
t
matches
=
regexp
.
exec
(
configFileName
);
cons
t
matches
=
regexp
.
exec
(
configFileName
);
if
(
!
matches
||
!
config
)
{
if
(
!
matches
||
!
config
)
{
return
;
return
;
}
}
// If a file is team.foo.json, it indicates team settings, strip this away
// If a file is team.foo.json, it indicates team settings, strip this away
le
t
isTeamSetting
=
!!
matches
[
1
];
cons
t
isTeamSetting
=
!!
matches
[
1
];
// Extract the config key from the file name (except for settings.json which is the default)
// Extract the config key from the file name (except for settings.json which is the default)
let
configElement
:
any
=
finalConfig
;
let
configElement
:
any
=
finalConfig
;
if
(
matches
&&
matches
[
2
]
&&
matches
[
2
]
!==
CONFIG_DEFAULT_NAME
)
{
if
(
matches
&&
matches
[
2
]
&&
matches
[
2
]
!==
CONFIG_DEFAULT_NAME
)
{
// Use the name of the file as top level config section for all settings inside
// Use the name of the file as top level config section for all settings inside
le
t
configSection
=
matches
[
2
];
cons
t
configSection
=
matches
[
2
];
let
element
=
configElement
[
configSection
];
let
element
=
configElement
[
configSection
];
if
(
!
element
)
{
if
(
!
element
)
{
element
=
Object
.
create
(
null
);
element
=
Object
.
create
(
null
);
...
@@ -118,11 +119,10 @@ export function consolidate(configMap: { [key: string]: IConfigFile; }): { conte
...
@@ -118,11 +119,10 @@ export function consolidate(configMap: { [key: string]: IConfigFile; }): { conte
// defaults...
// defaults...
function
processDefaultValues
(
withConfig
:
(
config
:
configurationRegistry
.
IConfigurationNode
,
isTop
?:
boolean
)
=>
boolean
):
void
{
function
processDefaultValues
(
withConfig
:
(
config
:
configurationRegistry
.
IConfigurationNode
,
isTop
?:
boolean
)
=>
boolean
):
void
{
const
configurations
=
(
<
configurationRegistry
.
IConfigurationRegistry
>
platform
.
Registry
.
as
(
configurationRegistry
.
Extensions
.
Configuration
)).
getConfigurations
();
let
configurations
=
(
<
configurationRegistry
.
IConfigurationRegistry
>
platform
.
Registry
.
as
(
configurationRegistry
.
Extensions
.
Configuration
)).
getConfigurations
();
const
visit
=
(
config
:
configurationRegistry
.
IConfigurationNode
,
level
:
number
)
=>
{
const
handled
=
withConfig
(
config
,
level
===
0
);
let
visit
=
(
config
:
configurationRegistry
.
IConfigurationNode
,
level
:
number
)
=>
{
let
handled
=
withConfig
(
config
,
level
===
0
);
if
(
Array
.
isArray
(
config
.
allOf
))
{
if
(
Array
.
isArray
(
config
.
allOf
))
{
config
.
allOf
.
forEach
((
c
)
=>
{
config
.
allOf
.
forEach
((
c
)
=>
{
...
@@ -141,8 +141,8 @@ function processDefaultValues(withConfig: (config: configurationRegistry.IConfig
...
@@ -141,8 +141,8 @@ function processDefaultValues(withConfig: (config: configurationRegistry.IConfig
return
-
1
;
return
-
1
;
}
}
if
(
c1
.
order
===
c2
.
order
)
{
if
(
c1
.
order
===
c2
.
order
)
{
le
t
title1
=
c1
.
title
||
''
;
cons
t
title1
=
c1
.
title
||
''
;
le
t
title2
=
c2
.
title
||
''
;
cons
t
title2
=
c2
.
title
||
''
;
return
title1
.
localeCompare
(
title2
);
return
title1
.
localeCompare
(
title2
);
}
}
return
c1
.
order
-
c2
.
order
;
return
c1
.
order
-
c2
.
order
;
...
@@ -153,34 +153,37 @@ function processDefaultValues(withConfig: (config: configurationRegistry.IConfig
...
@@ -153,34 +153,37 @@ function processDefaultValues(withConfig: (config: configurationRegistry.IConfig
export
function
getDefaultValues
():
any
{
export
function
getDefaultValues
():
any
{
le
t
ret
:
any
=
Object
.
create
(
null
);
cons
t
ret
:
any
=
Object
.
create
(
null
);
let
handleConfig
=
(
config
:
configurationRegistry
.
IConfigurationNode
,
isTop
:
boolean
)
:
boolean
=>
{
const
handleConfig
=
(
config
:
configurationRegistry
.
IConfigurationNode
,
isTop
:
boolean
)
:
boolean
=>
{
if
(
config
.
properties
)
{
if
(
config
.
properties
)
{
Object
.
keys
(
config
.
properties
).
forEach
((
key
)
=>
{
Object
.
keys
(
config
.
properties
).
forEach
((
key
)
=>
{
le
t
prop
=
config
.
properties
[
key
];
cons
t
prop
=
config
.
properties
[
key
];
let
value
=
prop
.
default
;
let
value
=
prop
.
default
;
if
(
types
.
isUndefined
(
prop
.
default
))
{
if
(
types
.
isUndefined
(
prop
.
default
))
{
value
=
getDefaultValue
(
prop
.
type
);
value
=
getDefaultValue
(
prop
.
type
);
}
}
setNode
(
ret
,
key
,
value
);
setNode
(
ret
,
key
,
value
);
});
});
return
true
;
return
true
;
}
}
return
false
;
return
false
;
};
};
processDefaultValues
(
handleConfig
);
processDefaultValues
(
handleConfig
);
return
ret
;
return
ret
;
}
}
export
function
getDefaultValuesContent
(
indent
:
string
):
string
{
export
function
getDefaultValuesContent
(
indent
:
string
):
string
{
let
lastEntry
=
-
1
;
let
lastEntry
=
-
1
;
le
t
result
:
string
[]
=
[];
cons
t
result
:
string
[]
=
[];
result
.
push
(
'
{
'
);
result
.
push
(
'
{
'
);
let
handleConfig
=
(
config
:
configurationRegistry
.
IConfigurationNode
,
isTop
:
boolean
)
:
boolean
=>
{
const
handleConfig
=
(
config
:
configurationRegistry
.
IConfigurationNode
,
isTop
:
boolean
):
boolean
=>
{
let
handled
=
false
;
let
handled
=
false
;
if
(
config
.
title
)
{
if
(
config
.
title
)
{
handled
=
true
;
handled
=
true
;
...
@@ -192,11 +195,12 @@ export function getDefaultValuesContent(indent: string): string {
...
@@ -192,11 +195,12 @@ export function getDefaultValuesContent(indent: string): string {
}
}
result
.
push
(
''
);
result
.
push
(
''
);
}
}
if
(
config
.
properties
)
{
if
(
config
.
properties
)
{
handled
=
true
;
handled
=
true
;
Object
.
keys
(
config
.
properties
).
forEach
((
key
)
=>
{
Object
.
keys
(
config
.
properties
).
forEach
((
key
)
=>
{
le
t
prop
=
config
.
properties
[
key
];
cons
t
prop
=
config
.
properties
[
key
];
let
defaultValue
=
prop
.
default
;
let
defaultValue
=
prop
.
default
;
if
(
types
.
isUndefined
(
defaultValue
))
{
if
(
types
.
isUndefined
(
defaultValue
))
{
defaultValue
=
getDefaultValue
(
prop
.
type
);
defaultValue
=
getDefaultValue
(
prop
.
type
);
...
@@ -219,11 +223,14 @@ export function getDefaultValuesContent(indent: string): string {
...
@@ -219,11 +223,14 @@ export function getDefaultValuesContent(indent: string): string {
result
.
push
(
''
);
result
.
push
(
''
);
});
});
}
}
return
handled
;
return
handled
;
};
};
processDefaultValues
(
handleConfig
);
processDefaultValues
(
handleConfig
);
result
.
push
(
'
}
'
);
result
.
push
(
'
}
'
);
return
result
.
join
(
'
\n
'
);
return
result
.
join
(
'
\n
'
);
}
}
...
@@ -232,7 +239,7 @@ function addIndent(str: string, indent: string): string {
...
@@ -232,7 +239,7 @@ function addIndent(str: string, indent: string): string {
}
}
function
getDefaultValue
(
type
:
string
|
string
[]):
any
{
function
getDefaultValue
(
type
:
string
|
string
[]):
any
{
let
t
=
Array
.
isArray
(
type
)
?
(
<
string
[]
>
type
)[
0
]
:
<
string
>
type
;
const
t
=
Array
.
isArray
(
type
)
?
(
<
string
[]
>
type
)[
0
]
:
<
string
>
type
;
switch
(
t
)
{
switch
(
t
)
{
case
'
boolean
'
:
case
'
boolean
'
:
return
false
;
return
false
;
...
...
src/vs/platform/workspace/common/
baseW
orkspaceContextService.ts
→
src/vs/platform/workspace/common/
w
orkspaceContextService.ts
浏览文件 @
70d6ae46
...
@@ -6,14 +6,16 @@
...
@@ -6,14 +6,16 @@
import
URI
from
'
vs/base/common/uri
'
;
import
URI
from
'
vs/base/common/uri
'
;
import
paths
=
require
(
'
vs/base/common/paths
'
);
import
paths
=
require
(
'
vs/base/common/paths
'
);
import
{
IWorkspaceContextService
,
IWorkspace
,
IConfiguration
}
from
'
.
/workspace
'
;
import
{
IWorkspaceContextService
,
IWorkspace
,
IConfiguration
}
from
'
vs/platform/workspace/common
/workspace
'
;
/**
/**
* Simple IWorkspaceContextService implementation to allow sharing of this service implementation
* Simple IWorkspaceContextService implementation to allow sharing of this service implementation
* between different layers of the platform.
* between different layers of the platform.
*/
*/
export
class
BaseWorkspaceContextService
implements
IWorkspaceContextService
{
export
class
BaseWorkspaceContextService
implements
IWorkspaceContextService
{
public
_serviceBrand
:
any
;
public
_serviceBrand
:
any
;
protected
options
:
any
;
protected
options
:
any
;
private
workspace
:
IWorkspace
;
private
workspace
:
IWorkspace
;
...
...
src/vs/workbench/electron-browser/main.ts
浏览文件 @
70d6ae46
...
@@ -22,7 +22,8 @@ import {ConfigurationService} from 'vs/workbench/services/configuration/node/con
...
@@ -22,7 +22,8 @@ import {ConfigurationService} from 'vs/workbench/services/configuration/node/con
import
path
=
require
(
'
path
'
);
import
path
=
require
(
'
path
'
);
import
fs
=
require
(
'
fs
'
);
import
fs
=
require
(
'
fs
'
);
import
gracefulFs
=
require
(
'
graceful-fs
'
);
import
gracefulFs
=
require
(
'
graceful-fs
'
);
gracefulFs
.
gracefulify
(
fs
);
gracefulFs
.
gracefulify
(
fs
);
// enable gracefulFs
const
timers
=
(
<
any
>
window
).
MonacoEnvironment
.
timers
;
const
timers
=
(
<
any
>
window
).
MonacoEnvironment
.
timers
;
...
@@ -117,15 +118,13 @@ function getWorkspace(environment: IMainEnvironment): IWorkspace {
...
@@ -117,15 +118,13 @@ function getWorkspace(environment: IMainEnvironment): IWorkspace {
const
folderName
=
path
.
basename
(
realWorkspacePath
)
||
realWorkspacePath
;
const
folderName
=
path
.
basename
(
realWorkspacePath
)
||
realWorkspacePath
;
const
folderStat
=
fs
.
statSync
(
realWorkspacePath
);
const
folderStat
=
fs
.
statSync
(
realWorkspacePath
);
const
workspace
:
IWorkspace
=
{
return
<
IWorkspace
>
{
'
resource
'
:
workspaceResource
,
'
resource
'
:
workspaceResource
,
'
id
'
:
platform
.
isLinux
?
realWorkspacePath
:
realWorkspacePath
.
toLowerCase
(),
'
id
'
:
platform
.
isLinux
?
realWorkspacePath
:
realWorkspacePath
.
toLowerCase
(),
'
name
'
:
folderName
,
'
name
'
:
folderName
,
'
uid
'
:
platform
.
isLinux
?
folderStat
.
ino
:
folderStat
.
birthtime
.
getTime
(),
// On Linux, birthtime is ctime, so we cannot use it! We use the ino instead!
'
uid
'
:
platform
.
isLinux
?
folderStat
.
ino
:
folderStat
.
birthtime
.
getTime
(),
// On Linux, birthtime is ctime, so we cannot use it! We use the ino instead!
'
mtime
'
:
folderStat
.
mtime
.
getTime
()
'
mtime
'
:
folderStat
.
mtime
.
getTime
()
};
};
return
workspace
;
}
}
function
openWorkbench
(
workspace
:
IWorkspace
,
configuration
:
IConfiguration
,
options
:
IOptions
):
winjs
.
TPromise
<
void
>
{
function
openWorkbench
(
workspace
:
IWorkspace
,
configuration
:
IConfiguration
,
options
:
IOptions
):
winjs
.
TPromise
<
void
>
{
...
...
src/vs/workbench/node/extensionHostMain.ts
浏览文件 @
70d6ae46
...
@@ -20,7 +20,7 @@ import {IMainProcessExtHostIPC} from 'vs/platform/extensions/common/ipcRemoteCom
...
@@ -20,7 +20,7 @@ import {IMainProcessExtHostIPC} from 'vs/platform/extensions/common/ipcRemoteCom
import
{
ExtHostExtensionService
}
from
'
vs/workbench/api/node/extHostExtensionService
'
;
import
{
ExtHostExtensionService
}
from
'
vs/workbench/api/node/extHostExtensionService
'
;
import
{
ExtHostThreadService
}
from
'
vs/workbench/services/thread/common/extHostThreadService
'
;
import
{
ExtHostThreadService
}
from
'
vs/workbench/services/thread/common/extHostThreadService
'
;
import
{
RemoteTelemetryService
}
from
'
vs/workbench/api/node/extHostTelemetry
'
;
import
{
RemoteTelemetryService
}
from
'
vs/workbench/api/node/extHostTelemetry
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
baseW
orkspaceContextService
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
w
orkspaceContextService
'
;
import
{
ExtensionScanner
,
MessagesCollector
}
from
'
vs/workbench/node/extensionPoints
'
;
import
{
ExtensionScanner
,
MessagesCollector
}
from
'
vs/workbench/node/extensionPoints
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
Client
}
from
'
vs/base/parts/ipc/node/ipc.net
'
;
import
{
Client
}
from
'
vs/base/parts/ipc/node/ipc.net
'
;
...
...
src/vs/workbench/services/workspace/common/contextService.ts
浏览文件 @
70d6ae46
...
@@ -9,7 +9,7 @@ import {EventType, OptionsChangeEvent} from 'vs/workbench/common/events';
...
@@ -9,7 +9,7 @@ import {EventType, OptionsChangeEvent} from 'vs/workbench/common/events';
import
{
IEventService
}
from
'
vs/platform/event/common/event
'
;
import
{
IEventService
}
from
'
vs/platform/event/common/event
'
;
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
createDecorator
}
from
'
vs/platform/instantiation/common/instantiation
'
;
import
{
IWorkspace
,
IConfiguration
,
IWorkspaceContextService
as
IBaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspace
,
IConfiguration
,
IWorkspaceContextService
as
IBaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
baseW
orkspaceContextService
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
w
orkspaceContextService
'
;
export
const
IWorkspaceContextService
=
createDecorator
<
IWorkspaceContextService
>
(
'
contextService
'
);
export
const
IWorkspaceContextService
=
createDecorator
<
IWorkspaceContextService
>
(
'
contextService
'
);
...
...
src/vs/workbench/test/browser/part.test.ts
浏览文件 @
70d6ae46
...
@@ -10,7 +10,7 @@ import {Build, Builder} from 'vs/base/browser/builder';
...
@@ -10,7 +10,7 @@ import {Build, Builder} from 'vs/base/browser/builder';
import
{
Part
}
from
'
vs/workbench/browser/part
'
;
import
{
Part
}
from
'
vs/workbench/browser/part
'
;
import
*
as
Types
from
'
vs/base/common/types
'
;
import
*
as
Types
from
'
vs/base/common/types
'
;
import
*
as
TestUtils
from
'
vs/test/utils/servicesTestUtils
'
;
import
*
as
TestUtils
from
'
vs/test/utils/servicesTestUtils
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
baseW
orkspaceContextService
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
w
orkspaceContextService
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IWorkspaceContextService
}
from
'
vs/platform/workspace/common/workspace
'
;
import
{
IStorageService
}
from
'
vs/platform/storage/common/storage
'
;
import
{
IStorageService
}
from
'
vs/platform/storage/common/storage
'
;
import
{
Storage
,
InMemoryLocalStorage
}
from
'
vs/workbench/common/storage
'
;
import
{
Storage
,
InMemoryLocalStorage
}
from
'
vs/workbench/common/storage
'
;
...
...
src/vs/workbench/test/browser/parts/quickOpen/quickopen.perf.test.ts
浏览文件 @
70d6ae46
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
import
'
vs/workbench/parts/search/browser/search.contribution
'
;
// load contributions
import
'
vs/workbench/parts/search/browser/search.contribution
'
;
// load contributions
import
*
as
assert
from
'
assert
'
;
import
*
as
assert
from
'
assert
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
baseW
orkspaceContextService
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
w
orkspaceContextService
'
;
import
{
createSyncDescriptor
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
createSyncDescriptor
}
from
'
vs/platform/instantiation/common/descriptors
'
;
import
{
ensureStaticPlatformServices
,
IEditorOverrideServices
}
from
'
vs/editor/browser/standalone/standaloneServices
'
;
import
{
ensureStaticPlatformServices
,
IEditorOverrideServices
}
from
'
vs/editor/browser/standalone/standaloneServices
'
;
import
{
IEditorGroupService
}
from
'
vs/workbench/services/group/common/groupService
'
;
import
{
IEditorGroupService
}
from
'
vs/workbench/services/group/common/groupService
'
;
...
...
src/vs/workbench/test/common/memento.test.ts
浏览文件 @
70d6ae46
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
'
use strict
'
;
'
use strict
'
;
import
*
as
assert
from
'
assert
'
;
import
*
as
assert
from
'
assert
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
baseW
orkspaceContextService
'
;
import
{
BaseWorkspaceContextService
}
from
'
vs/platform/workspace/common/
w
orkspaceContextService
'
;
import
{
StorageScope
}
from
'
vs/platform/storage/common/storage
'
;
import
{
StorageScope
}
from
'
vs/platform/storage/common/storage
'
;
import
*
as
TestUtils
from
'
vs/test/utils/servicesTestUtils
'
;
import
*
as
TestUtils
from
'
vs/test/utils/servicesTestUtils
'
;
import
{
Memento
,
Scope
}
from
'
vs/workbench/common/memento
'
;
import
{
Memento
,
Scope
}
from
'
vs/workbench/common/memento
'
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录