Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
bb5c2e8e
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,发现更多精彩内容 >>
提交
bb5c2e8e
编写于
3月 04, 2017
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Properly initialize xterm link handler
上级
63513de9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
20 addition
and
5 deletion
+20
-5
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
...bench/parts/terminal/electron-browser/terminalInstance.ts
+1
-0
src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts
...ch/parts/terminal/electron-browser/terminalLinkHandler.ts
+19
-5
未找到文件。
src/vs/workbench/parts/terminal/electron-browser/terminalInstance.ts
浏览文件 @
bb5c2e8e
...
...
@@ -196,6 +196,7 @@ export class TerminalInstance implements ITerminalInstance {
this
.
_xtermElement
=
document
.
createElement
(
'
div
'
);
this
.
_xterm
.
open
(
this
.
_xtermElement
);
this
.
_linkHandler
.
initialize
(
this
.
_xterm
);
this
.
_linkHandler
.
registerLocalLinkHandler
(
this
.
_xterm
);
this
.
_xterm
.
attachCustomKeydownHandler
((
event
:
KeyboardEvent
)
=>
{
// Disable all input if the terminal is exiting
...
...
src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts
浏览文件 @
bb5c2e8e
...
...
@@ -29,7 +29,7 @@ const CUSTOM_LINK_PRIORITY = -1;
/** Lowest */
const
LOCAL_LINK_PRIORITY
=
-
2
;
export
type
XtermLinkMatcherHandler
=
(
event
:
MouseEvent
,
uri
:
string
)
=>
void
;
export
type
XtermLinkMatcherHandler
=
(
event
:
MouseEvent
,
uri
:
string
)
=>
boolean
|
void
;
export
type
XtermLinkMatcherValidationCallback
=
(
uri
:
string
,
callback
:
(
isValid
:
boolean
)
=>
void
)
=>
void
;
export
class
TerminalLinkHandler
{
...
...
@@ -40,7 +40,11 @@ export class TerminalLinkHandler {
)
{
}
public
registerCustomLinkHandler
(
xterm
:
any
,
regex
:
RegExp
,
handler
:
(
string
)
=>
void
,
matchIndex
?:
number
,
validationCallback
?:
XtermLinkMatcherValidationCallback
):
number
{
public
initialize
(
xterm
:
any
)
{
xterm
.
attachHypertextLinkHandler
(
this
.
_wrapLinkHandler
(()
=>
true
));
}
public
registerCustomLinkHandler
(
xterm
:
any
,
regex
:
RegExp
,
handler
:
(
uri
:
string
)
=>
void
,
matchIndex
?:
number
,
validationCallback
?:
XtermLinkMatcherValidationCallback
):
number
{
return
xterm
.
registerLinkMatcher
(
regex
,
this
.
_wrapLinkHandler
(
handler
),
{
matchIndex
,
validationCallback
,
...
...
@@ -49,15 +53,25 @@ export class TerminalLinkHandler {
}
public
registerLocalLinkHandler
(
xterm
:
any
):
number
{
return
xterm
.
registerLinkMatcher
(
this
.
_localLinkRegex
,
this
.
_wrapLinkHandler
(
url
=>
this
.
_handleLocalLink
(
url
)),
{
const
wrappedHandler
=
this
.
_wrapLinkHandler
(
url
=>
{
this
.
_handleLocalLink
(
url
);
return
;
});
return
xterm
.
registerLinkMatcher
(
this
.
_localLinkRegex
,
wrappedHandler
,
{
matchIndex
:
1
,
validationCallback
:
(
link
:
string
,
callback
:
(
isValid
:
boolean
)
=>
void
)
=>
this
.
_validateLocalLink
(
link
,
callback
),
priority
:
LOCAL_LINK_PRIORITY
});
}
private
_wrapLinkHandler
(
handler
:
(
string
)
=>
void
):
XtermLinkMatcherHandler
{
return
(
event
,
uri
)
=>
{
private
_wrapLinkHandler
(
handler
:
(
uri
:
string
)
=>
boolean
|
void
):
XtermLinkMatcherHandler
{
return
(
event
:
MouseEvent
,
uri
:
string
)
=>
{
// Require ctrl/cmd on click
if
(
this
.
_platform
===
Platform
.
Mac
?
!
event
.
metaKey
:
!
event
.
ctrlKey
)
{
// TODO: Show hint on fail
event
.
preventDefault
();
return
false
;
}
return
handler
(
uri
);
};
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录