Skip to content

Commit f647e12

Browse files
committed
debug: do not massage whitespace anymore
fixes microsoft#73845
1 parent d0d1df6 commit f647e12

5 files changed

Lines changed: 9 additions & 28 deletions

File tree

src/vs/workbench/contrib/debug/browser/baseDebugView.ts

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ const stringRegex = /^(['"]).*\1$/;
2727
const $ = dom.$;
2828

2929
export interface IRenderValueOptions {
30-
preserveWhitespace?: boolean;
3130
showChanged?: boolean;
3231
maxValueLength?: number;
3332
showHover?: boolean;
@@ -49,11 +48,6 @@ export function renderViewTree(container: HTMLElement): HTMLElement {
4948
return treeContainer;
5049
}
5150

52-
export function replaceWhitespace(value: string): string {
53-
const map: { [x: string]: string } = { '\n': '\\n', '\r': '\\r', '\t': '\\t' };
54-
return value.replace(/[\n\r\t]/g, char => map[char]);
55-
}
56-
5751
export function renderExpressionValue(expressionOrValue: IExpressionContainer | string, container: HTMLElement, options: IRenderValueOptions): void {
5852
let value = typeof expressionOrValue === 'string' ? expressionOrValue : expressionOrValue.value;
5953

@@ -86,11 +80,10 @@ export function renderExpressionValue(expressionOrValue: IExpressionContainer |
8680
if (options.maxValueLength && value && value.length > options.maxValueLength) {
8781
value = value.substr(0, options.maxValueLength) + '...';
8882
}
89-
if (value && !options.preserveWhitespace) {
90-
value = replaceWhitespace(value);
91-
} else {
92-
value = value || '';
83+
if (!value) {
84+
value = '';
9385
}
86+
9487
if (options.linkDetector) {
9588
container.textContent = '';
9689
const session = (expressionOrValue instanceof ExpressionContainer) ? expressionOrValue.getSession() : undefined;
@@ -105,7 +98,7 @@ export function renderExpressionValue(expressionOrValue: IExpressionContainer |
10598

10699
export function renderVariable(variable: Variable, data: IVariableTemplateData, showChanged: boolean, highlights: IHighlight[], linkDetector?: LinkDetector): void {
107100
if (variable.available) {
108-
let text = replaceWhitespace(variable.name);
101+
let text = variable.name;
109102
if (variable.value && typeof variable.name === 'string') {
110103
text += ':';
111104
}
@@ -118,7 +111,6 @@ export function renderVariable(variable: Variable, data: IVariableTemplateData,
118111
renderExpressionValue(variable, data.value, {
119112
showChanged,
120113
maxValueLength: MAX_VALUE_RENDER_LENGTH_IN_VIEWLET,
121-
preserveWhitespace: false,
122114
showHover: true,
123115
colorize: true,
124116
linkDetector
@@ -185,7 +177,7 @@ export abstract class AbstractExpressionsRenderer implements ITreeRenderer<IExpr
185177
const inputBox = new InputBox(inputBoxContainer, this.contextViewService, options);
186178
const styler = attachInputBoxStyler(inputBox, this.themeService);
187179

188-
inputBox.value = replaceWhitespace(options.initialValue);
180+
inputBox.value = options.initialValue;
189181
inputBox.focus();
190182
inputBox.select();
191183

src/vs/workbench/contrib/debug/browser/debugHover.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import { IContentWidget, ICodeEditor, IContentWidgetPosition, ContentWidgetPosit
1616
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
1717
import { IDebugService, IExpression, IExpressionContainer, IStackFrame } from 'vs/workbench/contrib/debug/common/debug';
1818
import { Expression } from 'vs/workbench/contrib/debug/common/debugModel';
19-
import { renderExpressionValue, replaceWhitespace } from 'vs/workbench/contrib/debug/browser/baseDebugView';
19+
import { renderExpressionValue } from 'vs/workbench/contrib/debug/browser/baseDebugView';
2020
import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
2121
import { attachStylerCallback } from 'vs/platform/theme/common/styler';
2222
import { IThemeService } from 'vs/platform/theme/common/themeService';
@@ -230,7 +230,6 @@ export class DebugHoverWidget implements IContentWidget {
230230
this.valueContainer.hidden = false;
231231
renderExpressionValue(expression, this.valueContainer, {
232232
showChanged: false,
233-
preserveWhitespace: true,
234233
colorize: true
235234
});
236235
this.valueContainer.title = '';
@@ -248,7 +247,7 @@ export class DebugHoverWidget implements IContentWidget {
248247
this.complexValueContainer.hidden = false;
249248

250249
await this.tree.setInput(expression);
251-
this.complexValueTitle.textContent = replaceWhitespace(expression.value);
250+
this.complexValueTitle.textContent = expression.value;
252251
this.complexValueTitle.title = expression.value;
253252
this.layoutTreeAndContainer();
254253
this.editor.layoutContentWidget(this);

src/vs/workbench/contrib/debug/browser/replViewer.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,6 @@ export class ReplEvaluationResultsRenderer implements ITreeRenderer<ReplEvaluati
9696
renderElement(element: ITreeNode<ReplEvaluationResult, FuzzyScore>, index: number, templateData: IReplEvaluationResultTemplateData): void {
9797
const expression = element.element;
9898
renderExpressionValue(expression, templateData.value, {
99-
preserveWhitespace: !expression.hasChildren,
10099
showHover: false,
101100
colorize: true,
102101
linkDetector: this.linkDetector
@@ -230,7 +229,6 @@ export class ReplRawObjectsRenderer implements ITreeRenderer<RawObjectReplElemen
230229

231230
// value
232231
renderExpressionValue(element.value, templateData.value, {
233-
preserveWhitespace: true,
234232
showHover: false,
235233
linkDetector: this.linkDetector
236234
});

src/vs/workbench/contrib/debug/browser/watchExpressionsView.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ export class WatchExpressionsRenderer extends AbstractExpressionsRenderer {
267267
renderExpressionValue(expression, data.value, {
268268
showChanged: true,
269269
maxValueLength: MAX_VALUE_RENDER_LENGTH_IN_VIEWLET,
270-
preserveWhitespace: false,
271270
showHover: true,
272271
colorize: true
273272
});

src/vs/workbench/contrib/debug/test/browser/baseDebugView.test.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import * as assert from 'assert';
7-
import { replaceWhitespace, renderExpressionValue, renderVariable, renderViewTree } from 'vs/workbench/contrib/debug/browser/baseDebugView';
7+
import { renderExpressionValue, renderVariable, renderViewTree } from 'vs/workbench/contrib/debug/browser/baseDebugView';
88
import * as dom from 'vs/base/browser/dom';
99
import { Expression, Variable, Scope, StackFrame, Thread, DebugModel } from 'vs/workbench/contrib/debug/common/debugModel';
1010
import { MockSession } from 'vs/workbench/contrib/debug/test/common/mockDebug';
@@ -29,13 +29,6 @@ suite('Debug - Base Debug View', () => {
2929
linkDetector = instantiationService.createInstance(LinkDetector);
3030
});
3131

32-
test('replace whitespace', () => {
33-
assert.equal(replaceWhitespace('hey there'), 'hey there');
34-
assert.equal(replaceWhitespace('hey there\n'), 'hey there\\n');
35-
assert.equal(replaceWhitespace('hey \r there\n\t'), 'hey \\r there\\n\\t');
36-
assert.equal(replaceWhitespace('hey \r\t\n\t\t\n there'), 'hey \\r\\t\\n\\t\\t\\n there');
37-
});
38-
3932
test('render view tree', () => {
4033
const container = $('.container');
4134
const treeContainer = renderViewTree(container);
@@ -48,7 +41,7 @@ suite('Debug - Base Debug View', () => {
4841

4942
test('render expression value', () => {
5043
let container = $('.container');
51-
renderExpressionValue('render \n me', container, { showHover: true, preserveWhitespace: true });
44+
renderExpressionValue('render \n me', container, { showHover: true });
5245
assert.equal(container.className, 'value');
5346
assert.equal(container.title, 'render \n me');
5447
assert.equal(container.textContent, 'render \n me');

0 commit comments

Comments
 (0)