提交 60a2c5e1 编写于 作者: I isidor

debug remove counter in repl

fixes #27856
上级 91f83afb
......@@ -52,22 +52,6 @@
padding-left: 6px;
}
.monaco-workbench .repl .repl-tree .monaco-tree-row .output.expression > .counter {
min-width: 11px;
padding: 0 3px;
margin-right: 6px;
display: inline-block;
border-radius: 8px;
font-size: 11px;
font-weight: normal;
text-align: center;
line-height: 16px;
}
.monaco-workbench .repl .repl-tree .monaco-tree-row .output.expression > .counter:empty {
display: none;
}
.monaco-workbench .repl .repl-tree .monaco-tree-row .output.expression .name:not(:empty) {
margin-right: 6px;
}
......@@ -161,51 +145,6 @@
color: #0000FF;
}
.vs .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.info {
background-color: #007ACC;
color: white;
}
.vs-dark .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.info {
background-color: #1B80B2;
color: white;
}
.hc-black .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.info {
background-color: #0000FF;
color: white;
}
.vs .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.warn {
background-color: #cd9731;
color: white;
}
.vs-dark .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.warn {
background-color: #cd9731;
color: white;
}
.hc-black .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.warn {
background-color: #008000;
color: white;
}
.vs .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.error {
background-color: #D72817;
color: white;
}
.vs-dark .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.error {
background-color: #D72817;
color: white;
}
.hc-black .monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression > .counter.error {
background-color: #FF0000;
color: white;
}
/* ANSI Codes */
.monaco-workbench .repl .repl-tree .monaco-tree .monaco-tree-row > .content > .output.expression .code-bold { font-weight: bold; }
......
......@@ -43,14 +43,12 @@ export abstract class AbstractOutputElement implements IReplElement {
export class OutputElement extends AbstractOutputElement {
public counter: number;
constructor(
public value: string,
public severity: severity,
) {
super();
this.counter = 1;
}
public toString(): string {
......@@ -960,22 +958,16 @@ export class Model implements IModel {
public appendToRepl(output: string | IExpression, severity: severity): void {
if (typeof output === 'string') {
const previousOutput = this.replElements.length && (this.replElements[this.replElements.length - 1] as OutputElement);
const lastNonEmpty = previousOutput && previousOutput.value.trim() ? previousOutput : this.replElements.length > 1 ? this.replElements[this.replElements.length - 2] : undefined;
if (lastNonEmpty instanceof OutputElement && severity === lastNonEmpty.severity && lastNonEmpty.value === output.trim() && output.trim() && output.length > 1) {
// we got the same output (but not an empty string when trimmed) so we just increment the counter
lastNonEmpty.counter++;
} else {
const toAdd = output.split('\n').map(line => new OutputElement(line, severity));
if (previousOutput instanceof OutputElement && severity === previousOutput.severity && toAdd.length) {
previousOutput.value += toAdd.shift().value;
}
if (previousOutput && previousOutput.value === '' && previousOutput.severity !== severity) {
// remove potential empty lines between different output types
this.replElements.pop();
}
this.addReplElements(toAdd);
const toAdd = output.split('\n').map(line => new OutputElement(line, severity));
if (previousOutput instanceof OutputElement && severity === previousOutput.severity && toAdd.length) {
previousOutput.value += toAdd.shift().value;
}
if (previousOutput && previousOutput.value === '' && previousOutput.severity !== severity) {
// remove potential empty lines between different output types
this.replElements.pop();
}
this.addReplElements(toAdd);
} else {
// TODO@Isidor hack, we should introduce a new type which is an output that can fetch children like an expression
(<any>output).severity = severity;
......
......@@ -62,7 +62,6 @@ interface IExpressionTemplateData {
interface IValueOutputTemplateData {
container: HTMLElement;
counter: HTMLElement;
value: HTMLElement;
}
......@@ -178,7 +177,6 @@ export class ReplExpressionsRenderer implements IRenderer {
let expression = dom.append(container, $('.output.expression'));
data.container = container;
data.counter = dom.append(expression, $('div.counter'));
data.value = dom.append(expression, $('span.value'));
return data;
......@@ -224,15 +222,6 @@ export class ReplExpressionsRenderer implements IRenderer {
private renderOutputValue(output: OutputElement, templateData: IValueOutputTemplateData): void {
// counter
if (output.counter > 1) {
templateData.counter.textContent = String(output.counter);
templateData.counter.className = (output.severity === severity.Warning) ? 'counter warn' : (output.severity === severity.Error) ? 'counter error' : 'counter info';
} else {
templateData.counter.textContent = '';
templateData.counter.className = 'counter';
}
// value
dom.clearNode(templateData.value);
templateData.value.className = '';
......
......@@ -353,24 +353,18 @@ suite('Debug - Model', () => {
test('repl output', () => {
model.appendToRepl('first line\n', severity.Error);
model.appendToRepl('second line', severity.Error);
model.appendToRepl('second line', severity.Error);
model.appendToRepl('third line', severity.Warning);
model.appendToRepl('third line', severity.Warning);
model.appendToRepl('fourth line', severity.Error);
let elements = <OutputElement[]>model.getReplElements();
assert.equal(elements.length, 4);
assert.equal(elements[0].value, 'first line');
assert.equal(elements[0].counter, 1);
assert.equal(elements[0].severity, severity.Error);
assert.equal(elements[1].value, 'second line');
assert.equal(elements[1].counter, 2);
assert.equal(elements[1].severity, severity.Error);
assert.equal(elements[2].value, 'third line');
assert.equal(elements[2].counter, 2);
assert.equal(elements[2].severity, severity.Warning);
assert.equal(elements[3].value, 'fourth line');
assert.equal(elements[3].counter, 1);
assert.equal(elements[3].severity, severity.Error);
model.appendToRepl('1', severity.Warning);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册