Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
3d6b6ac9
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,发现更多精彩内容 >>
提交
3d6b6ac9
编写于
10月 13, 2017
作者:
D
Daniel Imms
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Focus terminal when clicking a link that doesn't activate
Fixes #36187
上级
fa5556c3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
6 deletion
+11
-6
src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts
...ch/parts/terminal/electron-browser/terminalLinkHandler.ts
+6
-1
src/vs/workbench/parts/terminal/test/electron-browser/terminalLinkHandler.test.ts
...erminal/test/electron-browser/terminalLinkHandler.test.ts
+5
-5
未找到文件。
src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts
浏览文件 @
3d6b6ac9
...
...
@@ -14,6 +14,7 @@ import { IOpenerService } from 'vs/platform/opener/common/opener';
import
{
TerminalWidgetManager
}
from
'
vs/workbench/parts/terminal/browser/terminalWidgetManager
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
IConfigurationService
}
from
'
vs/platform/configuration/common/configuration
'
;
import
{
ITerminalService
}
from
'
vs/workbench/parts/terminal/common/terminal
'
;
const
pathPrefix
=
'
(
\\
.
\\
.?|
\\
~)
'
;
const
pathSeparatorClause
=
'
\\
/
'
;
...
...
@@ -67,7 +68,8 @@ export class TerminalLinkHandler {
private
_initialCwd
:
string
,
@
IOpenerService
private
_openerService
:
IOpenerService
,
@
IWorkbenchEditorService
private
_editorService
:
IWorkbenchEditorService
,
@
IConfigurationService
private
_configurationService
:
IConfigurationService
@
IConfigurationService
private
_configurationService
:
IConfigurationService
,
@
ITerminalService
private
_terminalService
:
ITerminalService
)
{
const
baseLocalLinkClause
=
_platform
===
platform
.
Platform
.
Windows
?
winLocalLinkClause
:
unixLocalLinkClause
;
// Append line and column number regex
...
...
@@ -120,6 +122,9 @@ export class TerminalLinkHandler {
event
.
preventDefault
();
// Require correct modifier on click
if
(
!
this
.
_isLinkActivationModifierDown
(
event
))
{
// If the modifier is not pressed, the terminal should be
// focused if it's not already
this
.
_terminalService
.
getActiveInstance
().
focus
(
true
);
return
false
;
}
return
handler
(
uri
);
...
...
src/vs/workbench/parts/terminal/test/electron-browser/terminalLinkHandler.test.ts
浏览文件 @
3d6b6ac9
...
...
@@ -35,7 +35,7 @@ interface LinkFormatInfo {
suite
(
'
Workbench - TerminalLinkHandler
'
,
()
=>
{
suite
(
'
localLinkRegex
'
,
()
=>
{
test
(
'
Windows
'
,
()
=>
{
const
terminalLinkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Windows
,
null
,
null
,
null
,
null
);
const
terminalLinkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Windows
,
null
,
null
,
null
,
null
,
null
);
function
testLink
(
link
:
string
,
linkUrl
:
string
,
lineNo
?:
string
,
columnNo
?:
string
)
{
assert
.
equal
(
terminalLinkHandler
.
extractLinkUrl
(
link
),
linkUrl
);
assert
.
equal
(
terminalLinkHandler
.
extractLinkUrl
(
`:
${
link
}
:`
),
linkUrl
);
...
...
@@ -105,7 +105,7 @@ suite('Workbench - TerminalLinkHandler', () => {
});
test
(
'
Linux
'
,
()
=>
{
const
terminalLinkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Linux
,
null
,
null
,
null
,
null
);
const
terminalLinkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Linux
,
null
,
null
,
null
,
null
,
null
);
function
testLink
(
link
:
string
,
linkUrl
:
string
,
lineNo
?:
string
,
columnNo
?:
string
)
{
assert
.
equal
(
terminalLinkHandler
.
extractLinkUrl
(
link
),
linkUrl
);
assert
.
equal
(
terminalLinkHandler
.
extractLinkUrl
(
`:
${
link
}
:`
),
linkUrl
);
...
...
@@ -169,7 +169,7 @@ suite('Workbench - TerminalLinkHandler', () => {
suite
(
'
preprocessPath
'
,
()
=>
{
test
(
'
Windows
'
,
()
=>
{
const
linkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Windows
,
'
C:
\\
base
'
,
null
,
null
,
null
);
const
linkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Windows
,
'
C:
\\
base
'
,
null
,
null
,
null
,
null
);
let
stub
=
sinon
.
stub
(
path
,
'
join
'
,
function
(
arg1
,
arg2
)
{
return
arg1
+
'
\\
'
+
arg2
;
...
...
@@ -182,7 +182,7 @@ suite('Workbench - TerminalLinkHandler', () => {
});
test
(
'
Linux
'
,
()
=>
{
const
linkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Linux
,
'
/base
'
,
null
,
null
,
null
);
const
linkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Linux
,
'
/base
'
,
null
,
null
,
null
,
null
);
let
stub
=
sinon
.
stub
(
path
,
'
join
'
,
function
(
arg1
,
arg2
)
{
return
arg1
+
'
/
'
+
arg2
;
...
...
@@ -195,7 +195,7 @@ suite('Workbench - TerminalLinkHandler', () => {
});
test
(
'
No Workspace
'
,
()
=>
{
const
linkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Linux
,
null
,
null
,
null
,
null
);
const
linkHandler
=
new
TestTerminalLinkHandler
(
new
TestXterm
(),
Platform
.
Linux
,
null
,
null
,
null
,
null
,
null
);
assert
.
equal
(
linkHandler
.
preprocessPath
(
'
./src/file1
'
),
null
);
assert
.
equal
(
linkHandler
.
preprocessPath
(
'
src/file2
'
),
null
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录