提交 8bf5e263 编写于 作者: D Dirk Baeumer

Fixes #7353: Running build task in Code approximately 50% slower than in terminal

上级 ab17bb71
......@@ -32,8 +32,7 @@
vertical-align: top;
}
.task-statusbar-item-progress {
width: 6px;
.task-statusbar-item-building {
height: 18px;
padding: 0px 2px 0px 2px;
display: inline-block;
......@@ -44,7 +43,6 @@
.task-statusbar-item-label {
display: inline-block;
cursor: pointer;
padding: 0 5px 0 0;
}
.task-statusbar-item-label > .task-statusbar-item-label-counter {
......
......@@ -136,9 +136,7 @@ class ViewTerminalAction extends Action {
}
class BuildStatusBarItem extends Themable implements IStatusbarItem {
private intervalToken: any;
private activeCount: number;
private static progressChars: string = '|/-\\';
private icons: HTMLElement[];
constructor(
......@@ -174,7 +172,6 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
let callOnDispose: IDisposable[] = [];
const element = document.createElement('div');
const progress = document.createElement('div');
const label = document.createElement('a');
const errorIcon = document.createElement('div');
const warningIcon = document.createElement('div');
......@@ -182,14 +179,10 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
const error = document.createElement('div');
const warning = document.createElement('div');
const info = document.createElement('div');
const building = document.createElement('div');
Dom.addClass(element, 'task-statusbar-item');
Dom.addClass(progress, 'task-statusbar-item-progress');
element.appendChild(progress);
progress.innerHTML = BuildStatusBarItem.progressChars[0];
$(progress).hide();
Dom.addClass(label, 'task-statusbar-item-label');
element.appendChild(label);
element.title = nls.localize('problems', "Problems");
......@@ -222,6 +215,12 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
label.appendChild(info);
$(info).hide();
Dom.addClass(building, 'task-statusbar-item-building');
element.appendChild(building);
building.innerHTML = nls.localize('building', 'Building...');
$(building).hide();
callOnDispose.push(Dom.addDisposableListener(label, 'click', (e: MouseEvent) => {
const panel = this.panelService.getActivePanel();
if (panel && panel.getId() === Constants.MARKERS_PANEL_ID) {
......@@ -261,17 +260,7 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
}
this.activeCount++;
if (this.activeCount === 1) {
let index = 1;
let chars = BuildStatusBarItem.progressChars;
progress.innerHTML = chars[0];
this.intervalToken = setInterval(() => {
progress.innerHTML = chars[index];
index++;
if (index >= chars.length) {
index = 0;
}
}, 50);
$(progress).show();
$(building).show();
}
}));
......@@ -284,11 +273,7 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
if (this.activeCount > 0) {
this.activeCount--;
if (this.activeCount === 0) {
$(progress).hide();
if (this.intervalToken) {
clearInterval(this.intervalToken);
this.intervalToken = null;
}
$(building).hide();
}
}
}));
......@@ -298,11 +283,7 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
return;
}
if (this.activeCount !== 0) {
$(progress).hide();
if (this.intervalToken) {
clearInterval(this.intervalToken);
this.intervalToken = null;
}
$(building).hide();
this.activeCount = 0;
}
}));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册