Skip to content

Commit b7ec246

Browse files
committed
Remove nbsp replacing from buffer content tracker
Fixes microsoft#181834
1 parent f4e50f2 commit b7ec246

File tree

2 files changed

+7
-13
lines changed

2 files changed

+7
-13
lines changed

src/vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,8 @@ export class BufferContentTracker {
8282
const isWrapped = buffer.getLine(i + 1)?.isWrapped;
8383
currentLine += line.translateToString(!isWrapped);
8484
if (currentLine && !isWrapped || i === (buffer.baseY + this._xterm.raw.rows - 1)) {
85-
const line = replaceWithNonBreakingSpaces(currentLine);
8685
if (line.length) {
87-
cachedLines.push(line);
86+
cachedLines.push(currentLine);
8887
currentLine = '';
8988
}
9089
}
@@ -122,18 +121,13 @@ export class BufferContentTracker {
122121
const isWrapped = buffer.getLine(i + 1)?.isWrapped;
123122
currentLine += line.translateToString(!isWrapped);
124123
if (currentLine && !isWrapped || i === (buffer.baseY + this._xterm.raw.rows - 1)) {
125-
const line = replaceWithNonBreakingSpaces(currentLine);
126124
if (line.length) {
127125
this._priorEditorViewportLineCount++;
128-
this._lines.push(line);
126+
this._lines.push(currentLine);
129127
currentLine = '';
130128
}
131129
}
132130
}
133131
this._logService.debug('Viewport content update complete, ', this._lines.length, ' lines in the viewport');
134132
}
135133
}
136-
137-
export function replaceWithNonBreakingSpaces(s: string): string {
138-
return s.replace(new RegExp(' ', 'g'), ' \xA0');
139-
}

src/vs/workbench/contrib/terminalContrib/accessibility/test/browser/bufferContentTracker.test.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { TerminalConfigHelper } from 'vs/workbench/contrib/terminal/browser/term
2020
import { writeP } from 'vs/workbench/contrib/terminal/browser/terminalTestHelpers';
2121
import { XtermTerminal } from 'vs/workbench/contrib/terminal/browser/xterm/xtermTerminal';
2222
import { ITerminalConfiguration } from 'vs/workbench/contrib/terminal/common/terminal';
23-
import { BufferContentTracker, replaceWithNonBreakingSpaces } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker';
23+
import { BufferContentTracker } from 'vs/workbench/contrib/terminalContrib/accessibility/browser/bufferContentTracker';
2424
import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle';
2525
import { TestLifecycleService } from 'vs/workbench/test/browser/workbenchTestServices';
2626
import { Terminal } from 'xterm';
@@ -99,10 +99,10 @@ suite('Buffer Content Tracker', () => {
9999
await writeAndAssertBufferState(promptPlusData, 6, xterm.raw, bufferTracker);
100100
await writeP(xterm.raw, '\x1b[3Ainserteddata');
101101
await bufferTracker.update();
102-
assert.deepStrictEqual(bufferTracker.lines, [promptPlusData, promptPlusData, `${promptPlusData}inserteddata`, promptPlusData, promptPlusData, promptPlusData].map(s => replaceWithNonBreakingSpaces(s)));
102+
assert.deepStrictEqual(bufferTracker.lines, [promptPlusData, promptPlusData, `${promptPlusData}inserteddata`, promptPlusData, promptPlusData, promptPlusData]);
103103
});
104104
test('should refresh viewport with full scrollback', async () => {
105-
const content = replaceWithNonBreakingSpaces(`${prompt}\r\n`.repeat(1030).trimEnd());
105+
const content = `${prompt}\r\n`.repeat(1030).trimEnd();
106106
await writeP(xterm.raw, content);
107107
await bufferTracker.update();
108108
await writeP(xterm.raw, '\x1b[4Ainsertion');
@@ -115,7 +115,7 @@ suite('Buffer Content Tracker', () => {
115115
const content = `${prompt}\r\n`.repeat(1036).trimEnd();
116116
await writeP(xterm.raw, content);
117117
await bufferTracker.update();
118-
const expected = content.split('\r\n').map(s => replaceWithNonBreakingSpaces(s));
118+
const expected = content.split('\r\n');
119119
// delete the 6 lines that should be trimmed
120120
for (let i = 0; i < 6; i++) {
121121
expected.pop();
@@ -134,6 +134,6 @@ async function writeAndAssertBufferState(data: string, rows: number, terminal: T
134134
await writeP(terminal, content);
135135
await bufferTracker.update();
136136
assert.strictEqual(bufferTracker.lines.length, rows);
137-
assert.deepStrictEqual(bufferTracker.lines, content.split('\r\n').map(s => replaceWithNonBreakingSpaces(s)));
137+
assert.deepStrictEqual(bufferTracker.lines, content.split('\r\n'));
138138
}
139139

0 commit comments

Comments
 (0)