Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d4efff6c
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,发现更多精彩内容 >>
提交
d4efff6c
编写于
3月 27, 2017
作者:
D
Dirk Baeumer
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
More link matching work in tasks
上级
79aa19e9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
7 deletion
+12
-7
src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts
...kbench/parts/tasks/electron-browser/terminalTaskSystem.ts
+12
-7
未找到文件。
src/vs/workbench/parts/tasks/electron-browser/terminalTaskSystem.ts
浏览文件 @
d4efff6c
...
...
@@ -20,11 +20,11 @@ import { EventEmitter } from 'vs/base/common/eventEmitter';
import
{
IDisposable
,
dispose
}
from
'
vs/base/common/lifecycle
'
;
import
{
TerminateResponse
}
from
'
vs/base/common/processes
'
;
import
*
as
TPath
from
'
vs/base/common/paths
'
;
import
URI
from
'
vs/base/common/uri
'
;
//
import URI from 'vs/base/common/uri';
import
{
IMarkerService
}
from
'
vs/platform/markers/common/markers
'
;
import
{
IModelService
}
from
'
vs/editor/common/services/modelService
'
;
import
{
ProblemMatcher
,
ProblemPattern
,
getResource
}
from
'
vs/platform/markers/common/problemMatcher
'
;
import
{
ProblemMatcher
/*, ProblemPattern, getResource */
}
from
'
vs/platform/markers/common/problemMatcher
'
;
import
{
ITelemetryService
}
from
'
vs/platform/telemetry/common/telemetry
'
;
import
{
IWorkbenchEditorService
}
from
'
vs/workbench/services/editor/common/editorService
'
;
...
...
@@ -231,7 +231,8 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
let
promise
:
TPromise
<
ITaskSummary
>
=
undefined
;
if
(
task
.
isBackground
)
{
promise
=
new
TPromise
<
ITaskSummary
>
((
resolve
,
reject
)
=>
{
let
watchingProblemMatcher
=
new
WatchingProblemCollector
(
this
.
resolveMatchers
(
task
.
problemMatchers
),
this
.
markerService
,
this
.
modelService
);
const
problemMatchers
=
this
.
resolveMatchers
(
task
.
problemMatchers
);
let
watchingProblemMatcher
=
new
WatchingProblemCollector
(
problemMatchers
,
this
.
markerService
,
this
.
modelService
);
let
toUnbind
:
IDisposable
[]
=
[];
let
event
:
TaskEvent
=
{
taskId
:
task
.
_id
,
taskName
:
task
.
name
,
type
:
TaskType
.
Watching
};
let
eventCounter
:
number
=
0
;
...
...
@@ -247,6 +248,7 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
let
delayer
:
Async
.
Delayer
<
any
>
=
null
;
let
decoder
=
new
TerminalDecoder
();
[
terminal
,
executedCommand
]
=
this
.
createTerminal
(
task
);
const
registeredLinkMatchers
=
this
.
registerLinkMatchers
(
terminal
,
problemMatchers
);
const
onData
=
terminal
.
onData
((
data
:
string
)
=>
{
decoder
.
write
(
data
).
forEach
(
line
=>
{
watchingProblemMatcher
.
processLine
(
line
);
...
...
@@ -272,6 +274,7 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
watchingProblemMatcher
.
processLine
(
remaining
);
}
watchingProblemMatcher
.
dispose
();
registeredLinkMatchers
.
forEach
(
handle
=>
terminal
.
deregisterLinkMatcher
(
handle
));
toUnbind
=
dispose
(
toUnbind
);
toUnbind
=
null
;
for
(
let
i
=
0
;
i
<
eventCounter
;
i
++
)
{
...
...
@@ -292,7 +295,7 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
let
decoder
=
new
TerminalDecoder
();
let
problemMatchers
=
this
.
resolveMatchers
(
task
.
problemMatchers
);
let
startStopProblemMatcher
=
new
StartStopProblemCollector
(
problemMatchers
,
this
.
markerService
,
this
.
modelService
);
// const registered
Matchers = this.registerLinkMatchers(terminal, problemMatchers);
const
registeredLink
Matchers
=
this
.
registerLinkMatchers
(
terminal
,
problemMatchers
);
const
onData
=
terminal
.
onData
((
data
:
string
)
=>
{
decoder
.
write
(
data
).
forEach
((
line
)
=>
{
startStopProblemMatcher
.
processLine
(
line
);
...
...
@@ -312,7 +315,7 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
}
startStopProblemMatcher
.
done
();
startStopProblemMatcher
.
dispose
();
// registered
Matchers.forEach(handle => terminal.deregisterLinkMatcher(handle));
registeredLink
Matchers
.
forEach
(
handle
=>
terminal
.
deregisterLinkMatcher
(
handle
));
this
.
emit
(
TaskSystemEvents
.
Inactive
,
event
);
resolve
({
exitCode
});
});
...
...
@@ -584,8 +587,9 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
return
result
;
}
pr
otected
registerLinkMatchers
(
terminal
:
ITerminalInstance
,
problemMatchers
:
ProblemMatcher
[]):
number
[]
{
pr
ivate
registerLinkMatchers
(
terminal
:
ITerminalInstance
,
problemMatchers
:
ProblemMatcher
[]):
number
[]
{
let
result
:
number
[]
=
[];
/*
let handlePattern = (matcher: ProblemMatcher, pattern: ProblemPattern): void => {
if (pattern.regexp instanceof RegExp && Types.isNumber(pattern.file)) {
result.push(terminal.registerLinkMatcher(pattern.regexp, (match: string) => {
...
...
@@ -595,7 +599,7 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
resource: resource
});
}
},
pattern
.
file
));
},
0
));
}
};
...
...
@@ -608,6 +612,7 @@ export class TerminalTaskSystem extends EventEmitter implements ITaskSystem {
handlePattern(problemMatcher, problemMatcher.pattern);
}
}
*/
return
result
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录