Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d4c58735
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,发现更多精彩内容 >>
未验证
提交
d4c58735
编写于
3月 07, 2018
作者:
I
Isidor Nikolic
提交者:
GitHub
3月 07, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #43733 from DominikDitoIvosevic/bugs/13245/doivosev/linkSpaceCaptureFix
Added support for links of file paths with spaces (#13245)
上级
4ea8fa28
6e238792
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
26 addition
and
7 deletion
+26
-7
src/vs/workbench/parts/output/common/outputLinkComputer.ts
src/vs/workbench/parts/output/common/outputLinkComputer.ts
+9
-4
src/vs/workbench/parts/output/test/outputLinkProvider.test.ts
...vs/workbench/parts/output/test/outputLinkProvider.test.ts
+17
-3
未找到文件。
src/vs/workbench/parts/output/common/outputLinkComputer.ts
浏览文件 @
d4c58735
...
...
@@ -94,23 +94,28 @@ export class OutputLinkComputer {
]);
workspaceFolderVariants
.
forEach
(
workspaceFolderVariant
=>
{
const
validPathCharacterPattern
=
'
[^
\\
s
\\
(
\\
):<>"]
'
;
const
validPathCharacterOrSpacePattern
=
`(?:
${
validPathCharacterPattern
}
|
${
validPathCharacterPattern
}
)`
;
const
pathPattern
=
`
${
validPathCharacterOrSpacePattern
}
+\\.
${
validPathCharacterPattern
}
+`
;
const
strictPathPattern
=
`
${
validPathCharacterPattern
}
+`
;
// Example: /workspaces/express/server.js on line 8, column 13
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
'
(
\\
S*) on line ((
\\
d+)(, column (
\\
d+))?)
'
,
'
gi
'
));
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
`(
${
pathPattern
}
) on line ((\\d+)(, column (\\d+))?)`
,
'
gi
'
));
// Example: /workspaces/express/server.js:line 8, column 13
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
'
(
\\
S*):line ((
\\
d+)(, column (
\\
d+))?)
'
,
'
gi
'
));
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
`(
${
pathPattern
}
):line ((\\d+)(, column (\\d+))?)`
,
'
gi
'
));
// Example: /workspaces/mankala/Features.ts(45): error
// Example: /workspaces/mankala/Features.ts (45): error
// Example: /workspaces/mankala/Features.ts(45,18): error
// Example: /workspaces/mankala/Features.ts (45,18): error
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
'
([^
\\
s
\\
(
\\
)]*)(
\\
s?
\\
((
\\
d+)(,(
\\
d+))?)
\\
)
'
,
'
gi
'
));
// Example: /workspaces/mankala/Features Special.ts (45,18): error
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
`(
${
pathPattern
}
)(\\s?\\((\\d+)(,(\\d+))?)\\)`
,
'
gi
'
));
// Example: at /workspaces/mankala/Game.ts
// Example: at /workspaces/mankala/Game.ts:336
// Example: at /workspaces/mankala/Game.ts:336:9
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
'
([^:
\\
s
\\
(
\\
)<>
\'\
"
\\
[
\\
]]*)(:(
\\
d+))?(:(
\\
d+))?
'
,
'
gi
'
));
patterns
.
push
(
new
RegExp
(
strings
.
escapeRegExpCharacters
(
workspaceFolderVariant
)
+
`(
${
strictPathPattern
}
)(:(\\d+))?(:(\\d+))?`
,
'
gi
'
));
});
return
patterns
;
...
...
src/vs/workbench/parts/output/test/outputLinkProvider.test.ts
浏览文件 @
d4c58735
...
...
@@ -115,7 +115,7 @@ suite('Workbench - OutputWorker', () => {
line
=
toOSPath
(
'
at C:
\\
Users
\\
someone
\\
AppData
\\
Local
\\
Temp
\\
_monacodata_9888
\\
workspaces
\\
mankala
\\
Game.ts] in
'
);
result
=
OutputLinkComputer
.
detectLinks
(
line
,
1
,
patternsSlash
,
contextService
);
assert
.
equal
(
result
.
length
,
1
);
assert
.
equal
(
result
[
0
].
url
,
contextService
.
toResource
(
'
/Game.ts
'
).
toString
());
assert
.
equal
(
result
[
0
].
url
,
contextService
.
toResource
(
'
/Game.ts
]
'
).
toString
());
// Example: C:\Users\someone\AppData\Local\Temp\_monacodata_9888\workspaces\express\server.js on line 8
line
=
toOSPath
(
'
C:
\\
Users
\\
someone
\\
AppData
\\
Local
\\
Temp
\\
_monacodata_9888
\\
workspaces
\\
mankala
\\
Game.ts on line 8
'
);
...
...
@@ -385,6 +385,20 @@ suite('Workbench - OutputWorker', () => {
assert
.
equal
(
result
[
0
].
range
.
startColumn
,
1
);
assert
.
equal
(
result
[
0
].
range
.
endColumn
,
106
);
// Example: C:\\Users\\someone\\AppData\\Local\\Temp\\_monacodata_9888\\workspaces\\mankala\\lib\\something\\Features Special.ts (45,18): error.
line
=
toOSPath
(
'
C:
\\
Users
\\
someone
\\
AppData
\\
Local
\\
Temp
\\
_monacodata_9888
\\
workspaces
\\
mankala
\\
lib
\\
something
\\
Features Special.ts (45,18): error
'
);
result
=
OutputLinkComputer
.
detectLinks
(
line
,
1
,
patternsSlash
,
contextService
);
assert
.
equal
(
result
.
length
,
1
);
assert
.
equal
(
result
[
0
].
url
,
contextService
.
toResource
(
'
/lib/something/Features Special.ts
'
).
toString
()
+
'
#45,18
'
);
assert
.
equal
(
result
[
0
].
range
.
startColumn
,
1
);
assert
.
equal
(
result
[
0
].
range
.
endColumn
,
114
);
result
=
OutputLinkComputer
.
detectLinks
(
line
,
1
,
patternsBackSlash
,
contextService
);
assert
.
equal
(
result
.
length
,
1
);
assert
.
equal
(
result
[
0
].
url
,
contextService
.
toResource
(
'
/lib/something/Features Special.ts
'
).
toString
()
+
'
#45,18
'
);
assert
.
equal
(
result
[
0
].
range
.
startColumn
,
1
);
assert
.
equal
(
result
[
0
].
range
.
endColumn
,
114
);
// Example: at C:\\Users\\someone\\AppData\\Local\\Temp\\_monacodata_9888\\workspaces\\mankala\\Game.ts.
line
=
toOSPath
(
'
at C:
\\
Users
\\
someone
\\
AppData
\\
Local
\\
Temp
\\
_monacodata_9888
\\
workspaces
\\
mankala
\\
Game.ts. in
'
);
result
=
OutputLinkComputer
.
detectLinks
(
line
,
1
,
patternsSlash
,
contextService
);
...
...
@@ -415,8 +429,8 @@ suite('Workbench - OutputWorker', () => {
line
=
toOSPath
(
'
at
\'
C:
\\
Users
\\
someone
\\
AppData
\\
Local
\\
Temp
\\
_monacodata_9888
\\
workspaces
\\
mankala
\\
Game.ts
\'
in
'
);
result
=
OutputLinkComputer
.
detectLinks
(
line
,
1
,
patternsSlash
,
contextService
);
assert
.
equal
(
result
.
length
,
1
);
assert
.
equal
(
result
[
0
].
url
,
contextService
.
toResource
(
'
/Game.ts
'
).
toString
());
assert
.
equal
(
result
[
0
].
url
,
contextService
.
toResource
(
'
/Game.ts
\'
'
).
toString
());
assert
.
equal
(
result
[
0
].
range
.
startColumn
,
6
);
assert
.
equal
(
result
[
0
].
range
.
endColumn
,
8
5
);
assert
.
equal
(
result
[
0
].
range
.
endColumn
,
8
6
);
});
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录