Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
fbbc1aa8
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,发现更多精彩内容 >>
提交
fbbc1aa8
编写于
4月 19, 2019
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Enable web links in terminal renderers
上级
750680d2
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
24 addition
and
4 deletion
+24
-4
src/vs/workbench/contrib/terminal/browser/terminalInstance.ts
...vs/workbench/contrib/terminal/browser/terminalInstance.ts
+5
-0
src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts
...workbench/contrib/terminal/browser/terminalLinkHandler.ts
+19
-4
未找到文件。
src/vs/workbench/contrib/terminal/browser/terminalInstance.ts
浏览文件 @
fbbc1aa8
...
...
@@ -443,6 +443,8 @@ export class TerminalInstance implements ITerminalInstance {
}
this
.
_linkHandler
=
this
.
_instantiationService
.
createInstance
(
TerminalLinkHandler
,
this
.
_xterm
,
platform
.
platform
,
this
.
_processManager
);
});
}
else
if
(
this
.
shellLaunchConfig
.
isRendererOnly
)
{
this
.
_linkHandler
=
this
.
_instantiationService
.
createInstance
(
TerminalLinkHandler
,
this
.
_xterm
,
undefined
,
undefined
);
}
this
.
_xterm
.
on
(
'
focus
'
,
()
=>
this
.
_onFocus
.
fire
(
this
));
...
...
@@ -600,6 +602,9 @@ export class TerminalInstance implements ITerminalInstance {
});
}
});
}
else
if
(
this
.
_shellLaunchConfig
.
isRendererOnly
)
{
this
.
_widgetManager
=
new
TerminalWidgetManager
(
this
.
_wrapperElement
);
this
.
_linkHandler
.
setWidgetManager
(
this
.
_widgetManager
);
}
const
computedStyle
=
window
.
getComputedStyle
(
this
.
_container
);
...
...
src/vs/workbench/contrib/terminal/browser/terminalLinkHandler.ts
浏览文件 @
fbbc1aa8
...
...
@@ -74,8 +74,8 @@ export class TerminalLinkHandler {
constructor
(
private
_xterm
:
any
,
private
_platform
:
platform
.
Platform
,
private
readonly
_processManager
:
ITerminalProcessManager
,
private
_platform
:
platform
.
Platform
|
undefined
,
private
readonly
_processManager
:
ITerminalProcessManager
|
undefined
,
@
IOpenerService
private
readonly
_openerService
:
IOpenerService
,
@
IEditorService
private
readonly
_editorService
:
IEditorService
,
@
IConfigurationService
private
readonly
_configurationService
:
IConfigurationService
,
...
...
@@ -97,8 +97,10 @@ export class TerminalLinkHandler {
};
this
.
registerWebLinkHandler
();
this
.
registerLocalLinkHandler
();
this
.
registerGitDiffLinkHandlers
();
if
(
this
.
_platform
)
{
this
.
registerLocalLinkHandler
();
this
.
registerGitDiffLinkHandlers
();
}
}
public
setWidgetManager
(
widgetManager
:
TerminalWidgetManager
):
void
{
...
...
@@ -186,6 +188,9 @@ export class TerminalLinkHandler {
}
protected
get
_localLinkRegex
():
RegExp
{
if
(
!
this
.
_processManager
)
{
throw
new
Error
(
'
Process manager is required
'
);
}
const
baseLocalLinkClause
=
this
.
_processManager
.
os
===
platform
.
OperatingSystem
.
Windows
?
winLocalLinkClause
:
unixLocalLinkClause
;
// Append line and column number regex
return
new
RegExp
(
`
${
baseLocalLinkClause
}
(
${
lineAndColumnClause
}
)`
);
...
...
@@ -246,6 +251,9 @@ export class TerminalLinkHandler {
}
private
get
osPath
():
IPath
{
if
(
!
this
.
_processManager
)
{
throw
new
Error
(
'
Process manager is required
'
);
}
if
(
this
.
_processManager
.
os
===
platform
.
OperatingSystem
.
Windows
)
{
return
win32
;
}
...
...
@@ -253,6 +261,9 @@ export class TerminalLinkHandler {
}
protected
_preprocessPath
(
link
:
string
):
string
|
null
{
if
(
!
this
.
_processManager
)
{
throw
new
Error
(
'
Process manager is required
'
);
}
if
(
link
.
charAt
(
0
)
===
'
~
'
)
{
// Resolve ~ -> userHome
if
(
!
this
.
_processManager
.
userHome
)
{
...
...
@@ -283,6 +294,10 @@ export class TerminalLinkHandler {
}
private
_resolvePath
(
link
:
string
):
PromiseLike
<
URI
|
null
>
{
if
(
!
this
.
_processManager
)
{
throw
new
Error
(
'
Process manager is required
'
);
}
const
preprocessedLink
=
this
.
_preprocessPath
(
link
);
if
(
!
preprocessedLink
)
{
return
Promise
.
resolve
(
null
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录