Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
9f4efe99
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,发现更多精彩内容 >>
提交
9f4efe99
编写于
7月 25, 2017
作者:
I
isidor
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
debug: multi root debug dropdown
上级
269c8e64
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
28 addition
and
19 deletion
+28
-19
src/vs/workbench/parts/debug/browser/debugActionItems.ts
src/vs/workbench/parts/debug/browser/debugActionItems.ts
+28
-19
未找到文件。
src/vs/workbench/parts/debug/browser/debugActionItems.ts
浏览文件 @
9f4efe99
...
...
@@ -8,6 +8,7 @@ import * as lifecycle from 'vs/base/common/lifecycle';
import
*
as
errors
from
'
vs/base/common/errors
'
;
import
{
IAction
,
IActionRunner
}
from
'
vs/base/common/actions
'
;
import
{
KeyCode
}
from
'
vs/base/common/keyCodes
'
;
import
*
as
paths
from
'
vs/base/common/paths
'
;
import
*
as
dom
from
'
vs/base/browser/dom
'
;
import
{
StandardKeyboardEvent
}
from
'
vs/base/browser/keyboardEvent
'
;
import
{
SelectBox
}
from
'
vs/base/browser/ui/selectBox/selectBox
'
;
...
...
@@ -15,7 +16,7 @@ import { SelectActionItem, IActionItem } from 'vs/base/browser/ui/actionbar/acti
import
{
EventEmitter
}
from
'
vs/base/common/eventEmitter
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
ICommandService
}
from
'
vs/platform/commands/common/commands
'
;
import
{
IDebugService
,
ILaunch
}
from
'
vs/workbench/parts/debug/common/debug
'
;
import
{
IDebugService
}
from
'
vs/workbench/parts/debug/common/debug
'
;
import
{
IThemeService
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
attachSelectBoxStyler
,
attachStylerCallback
}
from
'
vs/platform/theme/common/styler
'
;
import
{
SIDE_BAR_BACKGROUND
}
from
'
vs/workbench/common/theme
'
;
...
...
@@ -25,14 +26,13 @@ const $ = dom.$;
export
class
StartDebugActionItem
extends
EventEmitter
implements
IActionItem
{
private
static
ADD_CONFIGURATION
=
nls
.
localize
(
'
addConfiguration
'
,
"
Add Configuration...
"
);
private
static
SEPARATOR
=
'
─────────
'
;
public
actionRunner
:
IActionRunner
;
private
container
:
HTMLElement
;
private
start
:
HTMLElement
;
private
selectBox
:
SelectBox
;
private
options
:
{
name
:
string
,
launch
:
ILaunch
}
[];
private
executeOnSelect
:
(()
=>
void
)
[];
private
toDispose
:
lifecycle
.
IDisposable
[];
constructor
(
...
...
@@ -60,12 +60,7 @@ export class StartDebugActionItem extends EventEmitter implements IActionItem {
}
}));
this
.
toDispose
.
push
(
this
.
selectBox
.
onDidSelect
(
e
=>
{
if
(
e
.
selected
===
StartDebugActionItem
.
ADD_CONFIGURATION
)
{
this
.
selectBox
.
select
(
0
);
this
.
commandService
.
executeCommand
(
'
debug.addConfiguration
'
).
done
(
undefined
,
errors
.
onUnexpectedError
);
}
else
{
this
.
debugService
.
getConfigurationManager
().
selectConfiguration
(
this
.
options
[
e
.
index
].
launch
,
this
.
options
[
e
.
index
].
name
);
}
this
.
executeOnSelect
[
e
.
index
]();
}));
this
.
toDispose
.
push
(
this
.
debugService
.
getConfigurationManager
().
onDidSelectConfiguration
(()
=>
{
this
.
updateOptions
();
...
...
@@ -150,22 +145,36 @@ export class StartDebugActionItem extends EventEmitter implements IActionItem {
private
updateOptions
():
void
{
let
selected
=
0
;
this
.
options
=
[];
this
.
debugService
.
getConfigurationManager
().
getLaunches
().
forEach
(
launch
=>
{
this
.
executeOnSelect
=
[];
const
options
=
[];
const
launches
=
this
.
debugService
.
getConfigurationManager
().
getLaunches
();
launches
.
forEach
(
launch
=>
{
const
launchName
=
paths
.
basename
(
launch
.
workspaceUri
.
fsPath
);
launch
.
getConfigurationNames
().
forEach
(
name
=>
{
if
(
name
===
this
.
debugService
.
getConfigurationManager
().
selectedName
&&
launch
===
this
.
debugService
.
getConfigurationManager
().
selectedLaunch
)
{
selected
=
this
.
options
.
length
;
selected
=
this
.
executeOnSelect
.
length
;
}
this
.
options
.
push
({
name
,
launch
});
this
.
executeOnSelect
.
push
(()
=>
this
.
debugService
.
getConfigurationManager
().
selectConfiguration
(
launch
,
name
));
options
.
push
(
launches
.
length
>
1
?
`
${
name
}
(
${
launchName
}
)`
:
name
);
});
});
const
selectOptions
=
this
.
options
.
map
(
o
=>
o
.
name
);
if
(
this
.
options
.
length
===
0
)
{
selectO
ptions
.
push
(
nls
.
localize
(
'
noConfigurations
'
,
"
No Configurations
"
));
if
(
options
.
length
===
0
)
{
o
ptions
.
push
(
nls
.
localize
(
'
noConfigurations
'
,
"
No Configurations
"
));
}
selectOptions
.
push
(
StartDebugActionItem
.
SEPARATOR
);
selectOptions
.
push
(
StartDebugActionItem
.
ADD_CONFIGURATION
);
this
.
selectBox
.
setOptions
(
selectOptions
,
selected
,
selectOptions
.
length
-
2
);
options
.
push
(
StartDebugActionItem
.
SEPARATOR
);
this
.
executeOnSelect
.
push
(
undefined
);
const
disabledIdx
=
options
.
length
-
1
;
launches
.
forEach
(
l
=>
{
options
.
push
(
launches
.
length
>
1
?
nls
.
localize
(
"
addConfigTo
"
,
`Add Config (
${
paths
.
basename
(
l
.
workspaceUri
.
fsPath
)}
)...`
)
:
nls
.
localize
(
'
addConfiguration
'
,
"
Add Configuration...
"
));
this
.
executeOnSelect
.
push
(()
=>
{
this
.
debugService
.
getConfigurationManager
().
selectConfiguration
(
l
);
this
.
commandService
.
executeCommand
(
'
debug.addConfiguration
'
).
done
(
undefined
,
errors
.
onUnexpectedError
);
});
});
this
.
selectBox
.
setOptions
(
options
,
selected
,
disabledIdx
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录