Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
7c682be6
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,发现更多精彩内容 >>
提交
7c682be6
编写于
7月 28, 2017
作者:
R
Rob Lourens
提交者:
GitHub
7月 28, 2017
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #31691 from Microsoft/amqi/terminal-quickopen
Add rename action to terminal quickpick and keybindings
上级
ca281a40
d622b19b
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
108 addition
and
10 deletion
+108
-10
src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts
src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts
+2
-1
src/vs/workbench/parts/terminal/electron-browser/media/configure-inverse.svg
...rts/terminal/electron-browser/media/configure-inverse.svg
+1
-0
src/vs/workbench/parts/terminal/electron-browser/media/configure.svg
...bench/parts/terminal/electron-browser/media/configure.svg
+1
-0
src/vs/workbench/parts/terminal/electron-browser/media/terminal.css
...kbench/parts/terminal/electron-browser/media/terminal.css
+10
-1
src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts
.../parts/terminal/electron-browser/terminal.contribution.ts
+21
-4
src/vs/workbench/parts/terminal/electron-browser/terminalActions.ts
...kbench/parts/terminal/electron-browser/terminalActions.ts
+73
-4
未找到文件。
src/vs/workbench/parts/terminal/browser/terminalQuickOpen.ts
浏览文件 @
7c682be6
...
...
@@ -14,6 +14,7 @@ import { QuickOpenModel, QuickOpenEntryGroup, QuickOpenEntry } from 'vs/base/par
import
{
QuickOpenHandler
}
from
'
vs/workbench/browser/quickopen
'
;
import
{
ITerminalService
}
from
'
vs/workbench/parts/terminal/common/terminal
'
;
import
{
IPanelService
}
from
'
vs/workbench/services/panel/common/panelService
'
;
import
{
ContributableActionProvider
}
from
'
vs/workbench/browser/actions
'
;
export
class
TerminalEntry
extends
QuickOpenEntryGroup
{
...
...
@@ -79,7 +80,7 @@ export class TerminalPickerHandler extends QuickOpenHandler {
return
true
;
});
return
TPromise
.
as
(
new
QuickOpenModel
(
entries
));
return
TPromise
.
as
(
new
QuickOpenModel
(
entries
,
new
ContributableActionProvider
()
));
}
private
getTerminals
():
TerminalEntry
[]
{
...
...
src/vs/workbench/parts/terminal/electron-browser/media/configure-inverse.svg
0 → 100644
浏览文件 @
7c682be6
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"16"
height=
"16"
><g
fill=
"#C5C5C5"
><path
d=
"M12.714 9.603c-.07.207-.15.407-.246.601l1.017 2.139c-.335.424-.718.807-1.142 1.143l-2.14-1.018c-.193.097-.394.176-.601.247l-.795 2.235c-.265.03-.534.05-.807.05-.272 0-.541-.02-.806-.05l-.795-2.235c-.207-.071-.408-.15-.602-.247l-2.14 1.017c-.424-.336-.807-.719-1.143-1.143l1.017-2.139c-.094-.193-.175-.393-.245-.6l-2.236-.796c-.03-.265-.05-.534-.05-.807s.02-.542.05-.807l2.236-.795c.07-.207.15-.407.246-.601l-1.016-2.139c.336-.423.719-.807 1.143-1.142l2.14 1.017c.193-.096.394-.176.602-.247l.793-2.236c.265-.03.534-.05.806-.05.273 0 .542.02.808.05l.795 2.236c.207.07.407.15.601.246l2.14-1.017c.424.335.807.719 1.142 1.142l-1.017 2.139c.096.194.176.394.246.601l2.236.795c.029.266.049.535.049.808s-.02.542-.05.807l-2.236.796zm-4.714-4.603c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z"
/><circle
cx=
"8"
cy=
"8"
r=
"1.5"
/></g></svg>
\ No newline at end of file
src/vs/workbench/parts/terminal/electron-browser/media/configure.svg
0 → 100644
浏览文件 @
7c682be6
<svg
xmlns=
"http://www.w3.org/2000/svg"
width=
"16"
height=
"16"
><g
fill=
"#424242"
><path
d=
"M12.714 9.603c-.07.207-.15.407-.246.601l1.017 2.139c-.335.424-.718.807-1.142 1.143l-2.14-1.018c-.193.097-.394.176-.601.247l-.795 2.235c-.265.03-.534.05-.807.05-.272 0-.541-.02-.806-.05l-.795-2.235c-.207-.071-.408-.15-.602-.247l-2.14 1.017c-.424-.336-.807-.719-1.143-1.143l1.017-2.139c-.094-.193-.175-.393-.245-.6l-2.236-.796c-.03-.265-.05-.534-.05-.807s.02-.542.05-.807l2.236-.795c.07-.207.15-.407.246-.601l-1.016-2.139c.336-.423.719-.807 1.143-1.142l2.14 1.017c.193-.096.394-.176.602-.247l.793-2.236c.265-.03.534-.05.806-.05.273 0 .542.02.808.05l.795 2.236c.207.07.407.15.601.246l2.14-1.017c.424.335.807.719 1.142 1.142l-1.017 2.139c.096.194.176.394.246.601l2.236.795c.029.266.049.535.049.808s-.02.542-.05.807l-2.236.796zm-4.714-4.603c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3z"
/><circle
cx=
"8"
cy=
"8"
r=
"1.5"
/></g></svg>
\ No newline at end of file
src/vs/workbench/parts/terminal/electron-browser/media/terminal.css
浏览文件 @
7c682be6
...
...
@@ -79,4 +79,13 @@
.vs-dark
.monaco-workbench.mac
.panel.integrated-terminal
.xterm-rows
,
.hc-black
.monaco-workbench.mac
.panel.integrated-terminal
.xterm-rows
{
cursor
:
-webkit-image-set
(
url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=')
1
x
,
url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC')
2
x
)
5
8
,
text
;
}
\ No newline at end of file
}
.monaco-workbench
.quick-open-terminal-configure
{
background-image
:
url('configure.svg')
;
}
.vs-dark
.monaco-workbench
.quick-open-terminal-configure
,
.hc-black
.monaco-workbench
.quick-open-terminal-configure
{
background-image
:
url('configure-inverse.svg')
;
}
src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.ts
浏览文件 @
7c682be6
...
...
@@ -17,7 +17,7 @@ import { TERMINAL_DEFAULT_SHELL_LINUX, TERMINAL_DEFAULT_SHELL_OSX, TERMINAL_DEFA
import
{
IWorkbenchActionRegistry
,
Extensions
as
ActionExtensions
}
from
'
vs/workbench/common/actionRegistry
'
;
import
{
KeyCode
,
KeyMod
}
from
'
vs/base/common/keyCodes
'
;
import
{
ContextKeyExpr
}
from
'
vs/platform/contextkey/common/contextkey
'
;
import
{
KillTerminalAction
,
CopyTerminalSelectionAction
,
CreateNewTerminalAction
,
FocusActiveTerminalAction
,
FocusNextTerminalAction
,
FocusPreviousTerminalAction
,
FocusTerminalAtIndexAction
,
SelectDefaultShellWindowsTerminalAction
,
RunSelectedTextInTerminalAction
,
RunActiveFileInTerminalAction
,
ScrollDownTerminalAction
,
ScrollDownPageTerminalAction
,
ScrollToBottomTerminalAction
,
ScrollUpTerminalAction
,
ScrollUpPageTerminalAction
,
ScrollToTopTerminalAction
,
TerminalPasteAction
,
ToggleTerminalAction
,
ClearTerminalAction
,
AllowWorkspaceShellTerminalCommand
,
DisallowWorkspaceShellTerminalCommand
,
RenameTerminalAction
,
SelectAllTerminalAction
,
FocusTerminalFindWidgetAction
,
HideTerminalFindWidgetAction
,
DeleteWordLeftTerminalAction
,
DeleteWordRightTerminalAction
}
from
'
vs/workbench/parts/terminal/electron-browser/terminalActions
'
;
import
{
KillTerminalAction
,
CopyTerminalSelectionAction
,
CreateNewTerminalAction
,
FocusActiveTerminalAction
,
FocusNextTerminalAction
,
FocusPreviousTerminalAction
,
FocusTerminalAtIndexAction
,
SelectDefaultShellWindowsTerminalAction
,
RunSelectedTextInTerminalAction
,
RunActiveFileInTerminalAction
,
ScrollDownTerminalAction
,
ScrollDownPageTerminalAction
,
ScrollToBottomTerminalAction
,
ScrollUpTerminalAction
,
ScrollUpPageTerminalAction
,
ScrollToTopTerminalAction
,
TerminalPasteAction
,
ToggleTerminalAction
,
ClearTerminalAction
,
AllowWorkspaceShellTerminalCommand
,
DisallowWorkspaceShellTerminalCommand
,
RenameTerminalAction
,
SelectAllTerminalAction
,
FocusTerminalFindWidgetAction
,
HideTerminalFindWidgetAction
,
DeleteWordLeftTerminalAction
,
DeleteWordRightTerminalAction
,
QuickOpenActionTermContributor
,
QuickOpenTermAction
,
TERMINAL_PICKER_PREFIX
}
from
'
vs/workbench/parts/terminal/electron-browser/terminalActions
'
;
import
{
Registry
}
from
'
vs/platform/registry/common/platform
'
;
import
{
ShowAllCommandsAction
}
from
'
vs/workbench/parts/quickopen/browser/commandsHandler
'
;
import
{
SyncActionDescriptor
}
from
'
vs/platform/actions/common/actions
'
;
...
...
@@ -29,22 +29,39 @@ import { OpenNextRecentlyUsedEditorInGroupAction, OpenPreviousRecentlyUsedEditor
import
{
EDITOR_FONT_DEFAULTS
}
from
'
vs/editor/common/config/editorOptions
'
;
import
{
registerColors
}
from
'
./terminalColorRegistry
'
;
import
{
NavigateUpAction
,
NavigateDownAction
,
NavigateLeftAction
,
NavigateRightAction
}
from
"
vs/workbench/electron-browser/actions
"
;
import
{
QUICKOPEN_ACTION_ID
}
from
"
vs/workbench/browser/parts/quickopen/quickopen
"
;
import
{
QUICKOPEN_ACTION_ID
,
getQuickNavigateHandler
}
from
"
vs/workbench/browser/parts/quickopen/quickopen
"
;
import
{
IQuickOpenRegistry
,
Extensions
as
QuickOpenExtensions
,
QuickOpenHandlerDescriptor
}
from
'
vs/workbench/browser/quickopen
'
;
import
{
Scope
,
IActionBarRegistry
,
Extensions
as
ActionBarExtensions
}
from
'
vs/workbench/browser/actions
'
;
import
{
CommandsRegistry
}
from
'
vs/platform/commands/common/commands
'
;
export
const
TERMINAL_PICKER_PREFIX
=
'
term
'
;
const
quickOpenRegistry
=
(
<
IQuickOpenRegistry
>
Registry
.
as
(
QuickOpenExtensions
.
Quickopen
));
const
inTerminalsPicker
=
'
inTerminalPicker
'
;
quickOpenRegistry
.
registerQuickOpenHandler
(
new
QuickOpenHandlerDescriptor
(
'
vs/workbench/parts/terminal/browser/terminalQuickOpen
'
,
'
TerminalPickerHandler
'
,
TERMINAL_PICKER_PREFIX
,
null
,
inTerminalsPicker
,
nls
.
localize
(
'
quickOpen.terminal
'
,
"
Show All Opened Terminals
"
)
)
);
const
quickOpenNavigateNextInTerminalPickerId
=
'
workbench.action.quickOpenNavigateNextInTerminalPicker
'
;
CommandsRegistry
.
registerCommand
(
quickOpenNavigateNextInTerminalPickerId
,
{
handler
:
getQuickNavigateHandler
(
quickOpenNavigateNextInTerminalPickerId
,
true
)
});
const
quickOpenNavigatePreviousInTerminalPickerId
=
'
workbench.action.quickOpenNavigatePreviousInTerminalPicker
'
;
CommandsRegistry
.
registerCommand
(
quickOpenNavigatePreviousInTerminalPickerId
,
{
handler
:
getQuickNavigateHandler
(
quickOpenNavigatePreviousInTerminalPickerId
,
false
)
});
const
registry
=
<
IWorkbenchActionRegistry
>
Registry
.
as
(
ActionExtensions
.
WorkbenchActions
);
registry
.
registerWorkbenchAction
(
new
SyncActionDescriptor
(
QuickOpenTermAction
,
QuickOpenTermAction
.
ID
,
QuickOpenTermAction
.
LABEL
),
'
Quick Open Terminal
'
);
const
actionBarRegistry
=
Registry
.
as
<
IActionBarRegistry
>
(
ActionBarExtensions
.
Actionbar
);
actionBarRegistry
.
registerActionBarContributor
(
Scope
.
VIEWER
,
QuickOpenActionTermContributor
);
let
configurationRegistry
=
<
IConfigurationRegistry
>
Registry
.
as
(
Extensions
.
Configuration
);
configurationRegistry
.
registerConfiguration
({
'
id
'
:
'
terminal
'
,
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalActions.ts
浏览文件 @
7c682be6
...
...
@@ -18,6 +18,11 @@ import { IMessageService, Severity } from 'vs/platform/message/common/message';
import
{
attachSelectBoxStyler
}
from
'
vs/platform/theme/common/styler
'
;
import
{
IThemeService
}
from
'
vs/platform/theme/common/themeService
'
;
import
{
IQuickOpenService
}
from
'
vs/platform/quickOpen/common/quickOpen
'
;
import
{
ActionBarContributor
}
from
'
vs/workbench/browser/actions
'
;
import
{
TerminalEntry
}
from
'
vs/workbench/parts/terminal/browser/terminalQuickOpen
'
;
import
{
IInstantiationService
}
from
'
vs/platform/instantiation/common/instantiation
'
;
export
const
TERMINAL_PICKER_PREFIX
=
'
term
'
;
export
class
ToggleTerminalAction
extends
TogglePanelAction
{
...
...
@@ -607,14 +612,14 @@ export class RenameTerminalAction extends Action {
constructor
(
id
:
string
,
label
:
string
,
@
IQuickOpenService
pr
ivate
quickOpenService
:
IQuickOpenService
,
@
ITerminalService
pr
ivate
terminalService
:
ITerminalService
@
IQuickOpenService
pr
otected
quickOpenService
:
IQuickOpenService
,
@
ITerminalService
pr
otected
terminalService
:
ITerminalService
)
{
super
(
id
,
label
);
}
public
run
():
TPromise
<
any
>
{
const
terminalInstance
=
this
.
terminalService
.
getActiveInstance
();
public
run
(
terminal
?:
TerminalEntry
):
TPromise
<
any
>
{
const
terminalInstance
=
t
erminal
?
this
.
terminalService
.
getInstanceFromId
(
parseInt
(
terminal
.
getLabel
().
split
(
'
:
'
)[
0
],
10
))
:
t
his
.
terminalService
.
getActiveInstance
();
if
(
!
terminalInstance
)
{
return
TPromise
.
as
(
void
0
);
}
...
...
@@ -661,3 +666,67 @@ export class HideTerminalFindWidgetAction extends Action {
return
TPromise
.
as
(
this
.
terminalService
.
hideFindWidget
());
}
}
export
class
QuickOpenActionTermContributor
extends
ActionBarContributor
{
constructor
(
@
ITerminalService
private
terminalService
:
ITerminalService
,
@
IQuickOpenService
private
quickOpenService
:
IQuickOpenService
,
@
IInstantiationService
private
instantiationService
:
IInstantiationService
)
{
super
();
}
public
getActions
(
context
:
any
):
IAction
[]
{
let
actions
:
Action
[]
=
[];
if
(
context
.
element
instanceof
TerminalEntry
)
{
actions
.
push
(
this
.
instantiationService
.
createInstance
(
RenameTerminalQuickOpenAction
,
RenameTerminalQuickOpenAction
.
ID
,
RenameTerminalQuickOpenAction
.
LABEL
,
context
.
element
));
}
return
actions
;
}
public
hasActions
(
context
:
any
):
boolean
{
return
true
;
}
}
export
class
QuickOpenTermAction
extends
Action
{
public
static
ID
=
'
workbench.action.quickOpenTerm
'
;
public
static
LABEL
=
nls
.
localize
(
'
quickOpenTerm
'
,
"
Switch active terminal
"
);
constructor
(
id
:
string
,
label
:
string
,
@
IQuickOpenService
private
quickOpenService
:
IQuickOpenService
)
{
super
(
id
,
label
);
}
public
run
():
TPromise
<
void
>
{
return
this
.
quickOpenService
.
show
(
TERMINAL_PICKER_PREFIX
,
null
);
}
}
export
class
RenameTerminalQuickOpenAction
extends
RenameTerminalAction
{
constructor
(
id
:
string
,
label
:
string
,
private
terminal
:
TerminalEntry
,
@
IQuickOpenService
quickOpenService
:
IQuickOpenService
,
@
ITerminalService
terminalService
:
ITerminalService
,
@
IInstantiationService
private
instantiationService
:
IInstantiationService
)
{
super
(
id
,
label
,
quickOpenService
,
terminalService
);
this
.
class
=
'
quick-open-terminal-configure
'
;
}
public
run
():
TPromise
<
any
>
{
super
.
run
(
this
.
terminal
)
// This timeout is needed to make sure the previous quickOpen has time to close before we show the next one
.
then
(()
=>
TPromise
.
timeout
(
50
))
.
then
(
result
=>
this
.
quickOpenService
.
show
(
TERMINAL_PICKER_PREFIX
,
null
));
return
TPromise
.
as
(
null
);
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录