未验证 提交 205a503e 编写于 作者: R Roman

Make problem counters consistent, fixes #45592

Counters display as "1 2 ... 999 1K 2K ... 10K+" in both the problems view and status bar.
Tooltips always show the actual numbers.
上级 1cc381c7
......@@ -137,11 +137,14 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
const info = document.createElement('div');
const building = document.createElement('div');
const errorTitle = n => nls.localize('totalErrors', "{0} Errors", n);
const warningTitle = n => nls.localize('totalWarnings', "{0} Warnings", n);
const infoTitle = n => nls.localize('totalInfos', "{0} Infos", n);
Dom.addClass(element, 'task-statusbar-item');
Dom.addClass(label, 'task-statusbar-item-label');
element.appendChild(label);
element.title = nls.localize('problems', "Problems");
Dom.addClass(errorIcon, 'task-statusbar-item-label-error');
Dom.addClass(errorIcon, 'mask-icon');
......@@ -150,6 +153,7 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
Dom.addClass(error, 'task-statusbar-item-label-counter');
error.innerHTML = '0';
error.title = errorIcon.title = errorTitle(0);
label.appendChild(error);
Dom.addClass(warningIcon, 'task-statusbar-item-label-warning');
......@@ -159,6 +163,7 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
Dom.addClass(warning, 'task-statusbar-item-label-counter');
warning.innerHTML = '0';
warning.title = warningIcon.title = warningTitle(0);
label.appendChild(warning);
Dom.addClass(infoIcon, 'task-statusbar-item-label-info');
......@@ -186,26 +191,24 @@ class BuildStatusBarItem extends Themable implements IStatusbarItem {
}
}));
let updateStatus = (element: HTMLDivElement, icon: HTMLDivElement, stats: number): boolean => {
if (stats > 0) {
element.innerHTML = stats.toString();
$(element).show();
$(icon).show();
return true;
const manyProblems = nls.localize('manyProblems', "10K+");
const packNumber = n => n > 9999 ? manyProblems : n > 999 ? n.toString().charAt(0) + 'K' : n.toString();
let updateLabel = (stats: MarkerStatistics) => {
error.innerHTML = packNumber(stats.errors);
error.title = errorIcon.title = errorTitle(stats.errors);
warning.innerHTML = packNumber(stats.warnings);
warning.title = warningIcon.title = warningTitle(stats.warnings);
if (stats.infos > 0) {
info.innerHTML = packNumber(stats.infos);
info.title = infoIcon.title = infoTitle(stats.infos);
$(info).show();
$(infoIcon).show();
} else {
$(element).hide();
$(icon).hide();
return false;
$(info).hide();
$(infoIcon).hide();
}
};
let manyMarkers = nls.localize('manyMarkers', "99+");
let updateLabel = (stats: MarkerStatistics) => {
error.innerHTML = stats.errors < 100 ? stats.errors.toString() : manyMarkers;
warning.innerHTML = stats.warnings < 100 ? stats.warnings.toString() : manyMarkers;
updateStatus(info, infoIcon, stats.infos);
};
this.markerService.onMarkerChanged((changedResources) => {
updateLabel(this.markerService.getStatistics());
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册