Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d4248f3d
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,发现更多精彩内容 >>
提交
d4248f3d
编写于
8月 31, 2020
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Run menu does not remember dynamic launch configurations
fixes #96293
上级
52303415
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
21 addition
and
7 deletion
+21
-7
src/vs/workbench/contrib/debug/browser/debugConfigurationManager.ts
...kbench/contrib/debug/browser/debugConfigurationManager.ts
+21
-7
未找到文件。
src/vs/workbench/contrib/debug/browser/debugConfigurationManager.ts
浏览文件 @
d4248f3d
...
@@ -46,6 +46,7 @@ jsonRegistry.registerSchema(launchSchemaId, launchSchema);
...
@@ -46,6 +46,7 @@ jsonRegistry.registerSchema(launchSchemaId, launchSchema);
const
DEBUG_SELECTED_CONFIG_NAME_KEY
=
'
debug.selectedconfigname
'
;
const
DEBUG_SELECTED_CONFIG_NAME_KEY
=
'
debug.selectedconfigname
'
;
const
DEBUG_SELECTED_ROOT
=
'
debug.selectedroot
'
;
const
DEBUG_SELECTED_ROOT
=
'
debug.selectedroot
'
;
const
DEBUG_SELECTED_DYNAMIC_CONFIG
=
'
debug.selecteddynamicconfig
'
;
interface
IDynamicPickItem
{
label
:
string
,
launch
:
ILaunch
,
config
:
IConfig
}
interface
IDynamicPickItem
{
label
:
string
,
launch
:
ILaunch
,
config
:
IConfig
}
...
@@ -83,23 +84,30 @@ export class ConfigurationManager implements IConfigurationManager {
...
@@ -83,23 +84,30 @@ export class ConfigurationManager implements IConfigurationManager {
this
.
toDispose
=
[];
this
.
toDispose
=
[];
this
.
initLaunches
();
this
.
initLaunches
();
this
.
registerListeners
();
this
.
registerListeners
();
const
previousSelectedRoot
=
this
.
storageService
.
get
(
DEBUG_SELECTED_ROOT
,
StorageScope
.
WORKSPACE
);
const
previousSelectedLaunch
=
this
.
launches
.
find
(
l
=>
l
.
uri
.
toString
()
===
previousSelectedRoot
);
this
.
debugConfigurationTypeContext
=
CONTEXT_DEBUG_CONFIGURATION_TYPE
.
bindTo
(
contextKeyService
);
this
.
debugConfigurationTypeContext
=
CONTEXT_DEBUG_CONFIGURATION_TYPE
.
bindTo
(
contextKeyService
);
this
.
debuggersAvailable
=
CONTEXT_DEBUGGERS_AVAILABLE
.
bindTo
(
contextKeyService
);
this
.
debuggersAvailable
=
CONTEXT_DEBUGGERS_AVAILABLE
.
bindTo
(
contextKeyService
);
if
(
previousSelectedLaunch
&&
previousSelectedLaunch
.
getConfigurationNames
().
length
)
{
this
.
selectConfiguration
(
previousSelectedLaunch
,
this
.
storageService
.
get
(
DEBUG_SELECTED_CONFIG_NAME_KEY
,
StorageScope
.
WORKSPACE
));
}
else
if
(
this
.
launches
.
length
>
0
)
{
this
.
selectConfiguration
(
undefined
);
}
}
}
// debuggers
// debuggers
registerDebugAdapterFactory
(
debugTypes
:
string
[],
debugAdapterLauncher
:
IDebugAdapterFactory
):
IDisposable
{
registerDebugAdapterFactory
(
debugTypes
:
string
[],
debugAdapterLauncher
:
IDebugAdapterFactory
):
IDisposable
{
const
firstRegistration
=
this
.
debugAdapterFactories
.
size
===
0
;
debugTypes
.
forEach
(
debugType
=>
this
.
debugAdapterFactories
.
set
(
debugType
,
debugAdapterLauncher
));
debugTypes
.
forEach
(
debugType
=>
this
.
debugAdapterFactories
.
set
(
debugType
,
debugAdapterLauncher
));
this
.
debuggersAvailable
.
set
(
this
.
debugAdapterFactories
.
size
>
0
);
this
.
debuggersAvailable
.
set
(
this
.
debugAdapterFactories
.
size
>
0
);
this
.
_onDidRegisterDebugger
.
fire
();
this
.
_onDidRegisterDebugger
.
fire
();
if
(
firstRegistration
)
{
const
previousSelectedRoot
=
this
.
storageService
.
get
(
DEBUG_SELECTED_ROOT
,
StorageScope
.
WORKSPACE
);
const
previousSelectedLaunch
=
this
.
launches
.
find
(
l
=>
l
.
uri
.
toString
()
===
previousSelectedRoot
);
if
(
previousSelectedLaunch
&&
previousSelectedLaunch
.
getConfigurationNames
().
length
)
{
const
name
=
this
.
storageService
.
get
(
DEBUG_SELECTED_CONFIG_NAME_KEY
,
StorageScope
.
WORKSPACE
);
const
configStr
=
this
.
storageService
.
get
(
DEBUG_SELECTED_DYNAMIC_CONFIG
,
StorageScope
.
WORKSPACE
);
const
config
=
configStr
?
JSON
.
parse
(
configStr
)
:
undefined
;
this
.
selectConfiguration
(
previousSelectedLaunch
,
name
,
config
);
}
else
if
(
this
.
launches
.
length
>
0
)
{
this
.
selectConfiguration
(
undefined
);
}
}
return
{
return
{
dispose
:
()
=>
{
dispose
:
()
=>
{
...
@@ -534,6 +542,12 @@ export class ConfigurationManager implements IConfigurationManager {
...
@@ -534,6 +542,12 @@ export class ConfigurationManager implements IConfigurationManager {
}
}
this
.
selectedConfig
=
config
;
this
.
selectedConfig
=
config
;
if
(
config
)
{
// Only dynamic configurations get passed in the selectConfiguration. We should store them #96293
this
.
storageService
.
store
(
DEBUG_SELECTED_DYNAMIC_CONFIG
,
JSON
.
stringify
(
config
),
StorageScope
.
WORKSPACE
);
}
else
{
this
.
storageService
.
remove
(
DEBUG_SELECTED_DYNAMIC_CONFIG
,
StorageScope
.
WORKSPACE
);
}
const
configForType
=
this
.
selectedConfig
||
(
this
.
selectedLaunch
&&
this
.
selectedName
?
this
.
selectedLaunch
.
getConfiguration
(
this
.
selectedName
)
:
undefined
);
const
configForType
=
this
.
selectedConfig
||
(
this
.
selectedLaunch
&&
this
.
selectedName
?
this
.
selectedLaunch
.
getConfiguration
(
this
.
selectedName
)
:
undefined
);
if
(
configForType
)
{
if
(
configForType
)
{
this
.
debugConfigurationTypeContext
.
set
(
configForType
.
type
);
this
.
debugConfigurationTypeContext
.
set
(
configForType
.
type
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录