Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
5e5fdffc
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,发现更多精彩内容 >>
提交
5e5fdffc
编写于
3月 03, 2020
作者:
R
Rob Lourens
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add tooltip to settings editor tabs
上级
b82e5905
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
35 addition
and
12 deletion
+35
-12
src/vs/platform/configuration/common/configuration.ts
src/vs/platform/configuration/common/configuration.ts
+2
-0
src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts
...rkbench/contrib/preferences/browser/preferencesWidgets.ts
+11
-7
src/vs/workbench/services/configuration/browser/configurationService.ts
...ch/services/configuration/browser/configurationService.ts
+18
-1
src/vs/workbench/services/configuration/common/configurationEditingService.ts
...vices/configuration/common/configurationEditingService.ts
+4
-4
未找到文件。
src/vs/platform/configuration/common/configuration.ts
浏览文件 @
5e5fdffc
...
...
@@ -123,6 +123,8 @@ export interface IConfigurationService {
workspaceFolder
:
string
[];
memory
?:
string
[];
};
getConfigurationFileResource
(
target
:
ConfigurationTarget
,
resource
:
URI
|
null
|
undefined
):
URI
|
null
;
}
export
interface
IConfigurationModel
{
...
...
src/vs/workbench/contrib/preferences/browser/preferencesWidgets.ts
浏览文件 @
5e5fdffc
...
...
@@ -20,7 +20,7 @@ import { ICursorPositionChangedEvent } from 'vs/editor/common/controller/cursorE
import
{
Position
}
from
'
vs/editor/common/core/position
'
;
import
{
IModelDeltaDecoration
,
TrackedRangeStickiness
}
from
'
vs/editor/common/model
'
;
import
{
localize
}
from
'
vs/nls
'
;
import
{
ConfigurationTarget
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
ConfigurationTarget
,
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
IContextKey
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
IContextMenuService
,
IContextViewService
}
from
'
vs/platform/contextview/browser/contextView
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
...
...
@@ -310,7 +310,8 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem {
constructor
(
action
:
IAction
,
@
IWorkspaceContextService
private
readonly
contextService
:
IWorkspaceContextService
,
@
IContextMenuService
private
readonly
contextMenuService
:
IContextMenuService
@
IContextMenuService
private
readonly
contextMenuService
:
IContextMenuService
,
@
IConfigurationService
private
readonly
configurationService
:
IConfigurationService
,
)
{
super
(
null
,
action
);
const
workspace
=
this
.
contextService
.
getWorkspace
();
...
...
@@ -407,7 +408,7 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem {
const
workspace
=
this
.
contextService
.
getWorkspace
();
if
(
this
.
_folder
)
{
this
.
labelElement
.
textContent
=
this
.
_folder
.
name
;
this
.
anchorElement
.
title
=
this
.
_folder
.
name
;
this
.
anchorElement
.
title
=
this
.
configurationService
.
getConfigurationFileResource
(
ConfigurationTarget
.
WORKSPACE_FOLDER
,
this
.
_folder
.
uri
)?.
fsPath
||
''
;
const
detailsText
=
this
.
labelWithCount
(
this
.
_action
.
label
,
total
);
this
.
detailsElement
.
textContent
=
detailsText
;
DOM
.
toggleClass
(
this
.
dropDownElement
,
'
hide
'
,
workspace
.
folders
.
length
===
1
||
!
this
.
_action
.
checked
);
...
...
@@ -418,6 +419,7 @@ export class FolderSettingsActionViewItem extends BaseActionViewItem {
this
.
anchorElement
.
title
=
this
.
_action
.
label
;
DOM
.
removeClass
(
this
.
dropDownElement
,
'
hide
'
);
}
DOM
.
toggleClass
(
this
.
anchorElement
,
'
checked
'
,
this
.
_action
.
checked
);
DOM
.
toggleClass
(
this
.
container
,
'
disabled
'
,
!
this
.
_action
.
enabled
);
}
...
...
@@ -487,7 +489,8 @@ export class SettingsTargetsWidget extends Widget {
@
IWorkspaceContextService
private
readonly
contextService
:
IWorkspaceContextService
,
@
IInstantiationService
private
readonly
instantiationService
:
IInstantiationService
,
@
IWorkbenchEnvironmentService
private
readonly
environmentService
:
IWorkbenchEnvironmentService
,
@
ILabelService
private
readonly
labelService
:
ILabelService
@
ILabelService
private
readonly
labelService
:
ILabelService
,
@
IConfigurationService
private
readonly
configurationService
:
IConfigurationService
,
)
{
super
();
this
.
options
=
options
||
{};
...
...
@@ -506,17 +509,16 @@ export class SettingsTargetsWidget extends Widget {
}));
this
.
userLocalSettings
=
new
Action
(
'
userSettings
'
,
localize
(
'
userSettings
'
,
"
User
"
),
'
.settings-tab
'
,
true
,
()
=>
this
.
updateTarget
(
ConfigurationTarget
.
USER_LOCAL
));
this
.
userLocalSettings
.
tooltip
=
this
.
userLocalSettings
.
label
;
this
.
userLocalSettings
.
tooltip
=
this
.
configurationService
.
getConfigurationFileResource
(
ConfigurationTarget
.
USER_LOCAL
,
undefined
)?.
fsPath
||
''
;
const
remoteAuthority
=
this
.
environmentService
.
configuration
.
remoteAuthority
;
const
hostLabel
=
remoteAuthority
&&
this
.
labelService
.
getHostLabel
(
REMOTE_HOST_SCHEME
,
remoteAuthority
);
const
remoteSettingsLabel
=
localize
(
'
userSettingsRemote
'
,
"
Remote
"
)
+
(
hostLabel
?
` [
${
hostLabel
}
]`
:
''
);
this
.
userRemoteSettings
=
new
Action
(
'
userSettingsRemote
'
,
remoteSettingsLabel
,
'
.settings-tab
'
,
true
,
()
=>
this
.
updateTarget
(
ConfigurationTarget
.
USER_REMOTE
));
this
.
userRemoteSettings
.
tooltip
=
this
.
userRemoteSettings
.
label
;
this
.
userRemoteSettings
.
tooltip
=
this
.
configurationService
.
getConfigurationFileResource
(
ConfigurationTarget
.
USER_REMOTE
,
undefined
)?.
fsPath
||
''
;
this
.
workspaceSettings
=
new
Action
(
'
workspaceSettings
'
,
localize
(
'
workspaceSettings
'
,
"
Workspace
"
),
'
.settings-tab
'
,
false
,
()
=>
this
.
updateTarget
(
ConfigurationTarget
.
WORKSPACE
));
this
.
workspaceSettings
.
tooltip
=
this
.
workspaceSettings
.
label
;
const
folderSettingsAction
=
new
Action
(
'
folderSettings
'
,
localize
(
'
folderSettings
'
,
"
Folder
"
),
'
.settings-tab
'
,
false
,
(
folder
:
IWorkspaceFolder
|
null
)
=>
this
.
updateTarget
(
folder
?
folder
.
uri
:
ConfigurationTarget
.
USER_LOCAL
));
...
...
@@ -591,6 +593,8 @@ export class SettingsTargetsWidget extends Widget {
this
.
userRemoteSettings
.
enabled
=
!!
(
this
.
options
.
enableRemoteSettings
&&
this
.
environmentService
.
configuration
.
remoteAuthority
);
this
.
workspaceSettings
.
enabled
=
this
.
contextService
.
getWorkbenchState
()
!==
WorkbenchState
.
EMPTY
;
this
.
folderSettings
.
getAction
().
enabled
=
this
.
contextService
.
getWorkbenchState
()
===
WorkbenchState
.
WORKSPACE
&&
this
.
contextService
.
getWorkspace
().
folders
.
length
>
0
;
this
.
workspaceSettings
.
tooltip
=
this
.
configurationService
.
getConfigurationFileResource
(
ConfigurationTarget
.
WORKSPACE
,
undefined
)?.
fsPath
||
''
;
}
}
...
...
src/vs/workbench/services/configuration/browser/configurationService.ts
浏览文件 @
5e5fdffc
...
...
@@ -14,7 +14,7 @@ import { IWorkspaceContextService, Workspace, WorkbenchState, IWorkspaceFolder,
import
{
ConfigurationModel
,
DefaultConfigurationModel
,
ConfigurationChangeEvent
,
AllKeysConfigurationChangeEvent
,
mergeChanges
}
from
'
vs/platform/configuration/common/configurationModels
'
;
import
{
IConfigurationChangeEvent
,
ConfigurationTarget
,
IConfigurationOverrides
,
keyFromOverrideIdentifier
,
isConfigurationOverrides
,
IConfigurationData
,
IConfigurationService
,
IConfigurationValue
,
IConfigurationChange
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
Configuration
}
from
'
vs/workbench/services/configuration/common/configurationModels
'
;
import
{
FOLDER_CONFIG_FOLDER_NAME
,
defaultSettingsSchemaId
,
userSettingsSchemaId
,
workspaceSettingsSchemaId
,
folderSettingsSchemaId
,
IConfigurationCache
,
machineSettingsSchemaId
,
LOCAL_MACHINE_SCOPES
}
from
'
vs/workbench/services/configuration/common/configuration
'
;
import
{
FOLDER_CONFIG_FOLDER_NAME
,
defaultSettingsSchemaId
,
userSettingsSchemaId
,
workspaceSettingsSchemaId
,
folderSettingsSchemaId
,
IConfigurationCache
,
machineSettingsSchemaId
,
LOCAL_MACHINE_SCOPES
,
FOLDER_SETTINGS_PATH
}
from
'
vs/workbench/services/configuration/common/configuration
'
;
import
{
Registry
}
from
'
vs/platform/registry/common/platform
'
;
import
{
IConfigurationRegistry
,
Extensions
,
allSettings
,
windowSettings
,
resourceSettings
,
applicationSettings
,
machineSettings
,
machineOverridableSettings
}
from
'
vs/platform/configuration/common/configurationRegistry
'
;
import
{
IWorkspaceIdentifier
,
isWorkspaceIdentifier
,
IStoredWorkspaceFolder
,
isStoredWorkspaceFolder
,
IWorkspaceFolderCreationData
,
ISingleFolderWorkspaceIdentifier
,
isSingleFolderWorkspaceIdentifier
,
IWorkspaceInitializationPayload
,
isSingleFolderWorkspaceInitializationPayload
,
ISingleFolderWorkspaceInitializationPayload
,
IEmptyWorkspaceInitializationPayload
,
useSlashForPath
,
getStoredWorkspaceFolder
}
from
'
vs/platform/workspaces/common/workspaces
'
;
...
...
@@ -310,6 +310,23 @@ export class WorkspaceService extends Disposable implements IConfigurationServic
}
}
public
getConfigurationFileResource
(
target
:
ConfigurationTarget
,
resource
:
URI
|
null
|
undefined
):
URI
|
null
{
let
editableTarget
:
EditableConfigurationTarget
;
if
(
target
===
ConfigurationTarget
.
USER
||
target
===
ConfigurationTarget
.
USER_LOCAL
)
{
editableTarget
=
EditableConfigurationTarget
.
USER_LOCAL
;
}
else
if
(
target
===
ConfigurationTarget
.
USER_REMOTE
)
{
editableTarget
=
EditableConfigurationTarget
.
USER_REMOTE
;
}
else
if
(
target
===
ConfigurationTarget
.
WORKSPACE
)
{
editableTarget
=
EditableConfigurationTarget
.
WORKSPACE
;
}
else
if
(
target
===
ConfigurationTarget
.
WORKSPACE_FOLDER
)
{
editableTarget
=
EditableConfigurationTarget
.
WORKSPACE_FOLDER
;
}
else
{
return
null
;
}
return
this
.
configurationEditingService
?.
getConfigurationFileResource
(
editableTarget
,
FOLDER_SETTINGS_PATH
,
resource
);
}
private
createWorkspace
(
arg
:
IWorkspaceInitializationPayload
):
Promise
<
Workspace
>
{
if
(
isWorkspaceIdentifier
(
arg
))
{
return
this
.
createMultiFolderWorkspace
(
arg
);
...
...
src/vs/workbench/services/configuration/common/configurationEditingService.ts
浏览文件 @
5e5fdffc
...
...
@@ -543,7 +543,7 @@ export class ConfigurationEditingService {
const
standaloneConfigurationMap
=
target
===
EditableConfigurationTarget
.
USER_LOCAL
?
USER_STANDALONE_CONFIGURATIONS
:
WORKSPACE_STANDALONE_CONFIGURATIONS
;
const
standaloneConfigurationKeys
=
Object
.
keys
(
standaloneConfigurationMap
);
for
(
const
key
of
standaloneConfigurationKeys
)
{
const
resource
=
this
.
getConfigurationFileResource
(
target
,
config
,
standaloneConfigurationMap
[
key
],
overrides
.
resource
);
const
resource
=
this
.
getConfigurationFileResource
(
target
,
standaloneConfigurationMap
[
key
],
overrides
.
resource
);
// Check for prefix
if
(
config
.
key
===
key
)
{
...
...
@@ -563,10 +563,10 @@ export class ConfigurationEditingService {
let
key
=
config
.
key
;
let
jsonPath
=
overrides
.
overrideIdentifier
?
[
keyFromOverrideIdentifier
(
overrides
.
overrideIdentifier
),
key
]
:
[
key
];
if
(
target
===
EditableConfigurationTarget
.
USER_LOCAL
||
target
===
EditableConfigurationTarget
.
USER_REMOTE
)
{
return
{
key
,
jsonPath
,
value
:
config
.
value
,
resource
:
withNullAsUndefined
(
this
.
getConfigurationFileResource
(
target
,
config
,
''
,
null
)),
target
};
return
{
key
,
jsonPath
,
value
:
config
.
value
,
resource
:
withNullAsUndefined
(
this
.
getConfigurationFileResource
(
target
,
''
,
null
)),
target
};
}
const
resource
=
this
.
getConfigurationFileResource
(
target
,
config
,
FOLDER_SETTINGS_PATH
,
overrides
.
resource
);
const
resource
=
this
.
getConfigurationFileResource
(
target
,
FOLDER_SETTINGS_PATH
,
overrides
.
resource
);
if
(
this
.
isWorkspaceConfigurationResource
(
resource
))
{
jsonPath
=
[
'
settings
'
,
...
jsonPath
];
}
...
...
@@ -578,7 +578,7 @@ export class ConfigurationEditingService {
return
!!
(
workspace
.
configuration
&&
resource
&&
workspace
.
configuration
.
fsPath
===
resource
.
fsPath
);
}
p
rivate
getConfigurationFileResource
(
target
:
EditableConfigurationTarget
,
config
:
IConfigurationValue
,
relativePath
:
string
,
resource
:
URI
|
null
|
undefined
):
URI
|
null
{
p
ublic
getConfigurationFileResource
(
target
:
EditableConfigurationTarget
,
relativePath
:
string
,
resource
:
URI
|
null
|
undefined
):
URI
|
null
{
if
(
target
===
EditableConfigurationTarget
.
USER_LOCAL
)
{
if
(
relativePath
)
{
return
resources
.
joinPath
(
resources
.
dirname
(
this
.
environmentService
.
settingsResource
),
relativePath
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录