Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
65f89d09
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,发现更多精彩内容 >>
提交
65f89d09
编写于
4月 12, 2020
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Polish PR
上级
a7b5a7f1
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
16 addition
and
20 deletion
+16
-20
src/vs/workbench/contrib/terminal/browser/links/terminalLinkManager.ts
...nch/contrib/terminal/browser/links/terminalLinkManager.ts
+16
-14
src/vs/workbench/contrib/terminal/browser/links/terminalValidatedLocalLinkProvider.ts
...minal/browser/links/terminalValidatedLocalLinkProvider.ts
+0
-2
src/vs/workbench/contrib/terminal/browser/links/terminalWordLinkProvider.ts
...ontrib/terminal/browser/links/terminalWordLinkProvider.ts
+0
-3
src/vs/workbench/contrib/terminal/test/browser/links/terminalValidatedLocalLinkProvider.test.ts
.../browser/links/terminalValidatedLocalLinkProvider.test.ts
+0
-1
未找到文件。
src/vs/workbench/contrib/terminal/browser/links/terminalLinkManager.ts
浏览文件 @
65f89d09
...
...
@@ -5,7 +5,7 @@
import
*
as
nls
from
'
vs/nls
'
;
import
{
URI
}
from
'
vs/base/common/uri
'
;
import
{
DisposableStore
,
IDisposable
}
from
'
vs/base/common/lifecycle
'
;
import
{
DisposableStore
,
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
IOpenerService
}
from
'
vs/platform/opener/common/opener
'
;
import
{
TerminalWidgetManager
,
WidgetVerticalAlignment
}
from
'
vs/workbench/contrib/terminal/browser/terminalWidgetManager
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
...
...
@@ -85,9 +85,7 @@ export class TerminalLinkManager extends DisposableStore {
private
readonly
_leaveCallback
:
()
=>
void
;
private
_linkMatchers
:
number
[]
=
[];
private
_webLinksAddon
:
ITerminalAddon
|
undefined
;
private
_linkProvider
:
IDisposable
|
undefined
;
private
_linkProvider2
:
IDisposable
|
undefined
;
private
_linkProvider3
:
IDisposable
|
undefined
;
private
_linkProviders
:
IDisposable
[]
=
[];
private
_hasBeforeHandleLinkListeners
=
false
;
protected
static
_LINK_INTERCEPT_THRESHOLD
=
LINK_INTERCEPT_THRESHOLD
;
...
...
@@ -180,9 +178,8 @@ export class TerminalLinkManager extends DisposableStore {
this
.
_deregisterLinkMatchers
();
this
.
registerLinkProvider
();
}
else
{
this
.
_linkProvider
?.
dispose
();
this
.
_linkProvider2
?.
dispose
();
this
.
_linkProvider3
?.
dispose
();
dispose
(
this
.
_linkProviders
);
this
.
_linkProviders
.
length
=
0
;
this
.
_registerLinkMatchers
();
}
}
...
...
@@ -294,22 +291,27 @@ export class TerminalLinkManager extends DisposableStore {
this
.
_tooltipCallback
(
event
,
link
,
location
,
this
.
_handleHypertextLink
.
bind
(
this
,
link
));
};
const
wrappedActivateCallback
=
this
.
_wrapLinkHandler
(
this
.
_handleHypertextLink
.
bind
(
this
));
this
.
_linkProvider
=
this
.
_xterm
.
registerLinkProvider
(
new
TerminalWebLinkProvider
(
this
.
_xterm
,
wrappedActivateCallback
,
tooltipWebCallback
,
this
.
_leaveCallback
));
this
.
_linkProviders
.
push
(
this
.
_xterm
.
registerLinkProvider
(
new
TerminalWebLinkProvider
(
this
.
_xterm
,
wrappedActivateCallback
,
tooltipWebCallback
,
this
.
_leaveCallback
)
));
//
L
ocal links
//
Validated l
ocal links
const
tooltipValidatedLocalCallback
=
(
event
:
MouseEvent
,
link
:
string
,
location
:
IViewportRange
)
=>
{
this
.
_tooltipCallback
(
event
,
link
,
location
,
this
.
_handleLocalLink
.
bind
(
this
,
link
));
};
const
wrappedLinkActivateCallback
=
this
.
_wrapLinkHandler
(
this
.
_handleLocalLink
.
bind
(
this
));
this
.
_linkProvider2
=
this
.
_xterm
.
registerLinkProvider
(
new
TerminalValidatedLocalLinkProvider
(
this
.
_xterm
,
this
.
_processManager
.
os
||
OS
,
wrappedLinkActivateCallback
,
tooltipValidatedLocalCallback
,
this
.
_leaveCallback
,
this
.
_validateLocalLink
.
bind
(
this
)));
this
.
_linkProviders
.
push
(
this
.
_xterm
.
registerLinkProvider
(
new
TerminalValidatedLocalLinkProvider
(
this
.
_xterm
,
this
.
_processManager
.
os
||
OS
,
wrappedLinkActivateCallback
,
tooltipValidatedLocalCallback
,
this
.
_leaveCallback
,
this
.
_validateLocalLink
.
bind
(
this
))
));
// Word links
const
tooltipWordCallback
=
(
event
:
MouseEvent
,
link
:
string
,
location
:
IViewportRange
)
=>
{
this
.
_tooltipCallback
(
event
,
link
,
location
,
link
=>
this
.
_quickInputService
.
quickAccess
.
show
(
link
));
};
const
wrappedWordActivateCallback
=
this
.
_wrapLinkHandler
(
link
=>
{
this
.
_quickInputService
.
quickAccess
.
show
(
link
);
});
this
.
_linkProvider3
=
this
.
_xterm
.
registerLinkProvider
(
this
.
_instantiationService
.
createInstance
(
TerminalWordLinkProvider
,
this
.
_xterm
,
wrappedWordActivateCallback
,
tooltipWordCallback
,
this
.
_leaveCallback
));
const
wrappedWordActivateCallback
=
this
.
_wrapLinkHandler
(
link
=>
this
.
_quickInputService
.
quickAccess
.
show
(
link
));
this
.
_linkProviders
.
push
(
this
.
_xterm
.
registerLinkProvider
(
this
.
_instantiationService
.
createInstance
(
TerminalWordLinkProvider
,
this
.
_xterm
,
wrappedWordActivateCallback
,
tooltipWordCallback
,
this
.
_leaveCallback
)
));
}
protected
_wrapLinkHandler
(
handler
:
(
link
:
string
)
=>
void
):
XtermLinkMatcherHandler
{
...
...
src/vs/workbench/contrib/terminal/browser/links/terminalValidatedLocalLinkProvider.ts
浏览文件 @
65f89d09
...
...
@@ -99,7 +99,6 @@ export class TerminalValidatedLocalLinkProvider implements ILinkProvider {
if
(
positionIsInRange
(
position
,
bufferRange
))
{
this
.
_validationCallback
(
uri
,
isValid
=>
{
// TODO: Discard if buffers have changes or if another link was added for this line
if
(
isValid
)
{
let
timeout
:
number
|
undefined
;
callback
({
...
...
@@ -119,7 +118,6 @@ export class TerminalValidatedLocalLinkProvider implements ILinkProvider {
}
});
}
else
{
// TODO: Support multiple matches from the regexes
callback
(
undefined
);
}
});
...
...
src/vs/workbench/contrib/terminal/browser/links/terminalWordLinkProvider.ts
浏览文件 @
65f89d09
...
...
@@ -62,9 +62,6 @@ export class TerminalWordLinkProvider implements ILinkProvider {
text
+=
char
;
}
// TODO: Only show word links when modifier is down?
// TODO: Only show tooltip if no mouse movement has happened; copy how editor works
const
range
=
{
start
,
end
};
let
timeout
:
number
|
undefined
;
callback
({
...
...
src/vs/workbench/contrib/terminal/test/browser/links/terminalValidatedLocalLinkProvider.test.ts
浏览文件 @
65f89d09
...
...
@@ -66,7 +66,6 @@ const supportedLinkFormats: LinkFormatInfo[] = [
suite
(
'
Workbench - TerminalValidatedLocalLinkProvider
'
,
()
=>
{
async
function
assertLink
(
text
:
string
,
os
:
OperatingSystem
,
expected
:
{
text
:
string
,
range
:
[
number
,
number
][]
})
{
const
xterm
=
new
Terminal
();
// TODO: Test process manager
const
provider
=
new
TerminalValidatedLocalLinkProvider
(
xterm
,
os
,
()
=>
{
},
()
=>
{
},
()
=>
{
},
(
_
,
cb
)
=>
{
cb
(
true
);
});
// Write the text and wait for the parser to finish
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录