Skip to content

Commit b6138b9

Browse files
committed
Fixes microsoft#80825: Use   only on Windows
1 parent 2703975 commit b6138b9

3 files changed

Lines changed: 16 additions & 15 deletions

File tree

src/vs/editor/common/modes/textToHtmlTokenizer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export function tokenizeToString(text: string, tokenizationSupport: IReducedToke
2424
return _tokenizeToString(text, tokenizationSupport || fallback);
2525
}
2626

27-
export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens, colorMap: string[], startOffset: number, endOffset: number, tabSize: number): string {
27+
export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens, colorMap: string[], startOffset: number, endOffset: number, tabSize: number, useNbsp: boolean): string {
2828
let result = `<div>`;
2929
let charIndex = startOffset;
3030
let tabsCharDelta = 0;
@@ -46,7 +46,7 @@ export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens
4646
let insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;
4747
tabsCharDelta += insertSpacesCount - 1;
4848
while (insertSpacesCount > 0) {
49-
partContent += '&nbsp;';
49+
partContent += useNbsp ? '&nbsp;' : ' ';
5050
insertSpacesCount--;
5151
}
5252
break;
@@ -78,7 +78,7 @@ export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens
7878
break;
7979

8080
case CharCode.Space:
81-
partContent += '&nbsp;';
81+
partContent += useNbsp ? '&nbsp;' : ' ';
8282
break;
8383

8484
default:

src/vs/editor/common/viewModel/viewModelImpl.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import { ICoordinatesConverter, IOverviewRulerDecorations, IViewModel, MinimapLi
2424
import { ViewModelDecorations } from 'vs/editor/common/viewModel/viewModelDecorations';
2525
import { ITheme } from 'vs/platform/theme/common/themeService';
2626
import { RunOnceScheduler } from 'vs/base/common/async';
27+
import * as platform from 'vs/base/common/platform';
2728

2829
const USE_IDENTITY_LINES_COLLECTION = true;
2930

@@ -713,7 +714,7 @@ export class ViewModel extends viewEvents.ViewEventEmitter implements IViewModel
713714
if (lineContent === '') {
714715
result += '<br>';
715716
} else {
716-
result += tokenizeLineToHTML(lineContent, lineTokens.inflate(), colorMap, startOffset, endOffset, tabSize);
717+
result += tokenizeLineToHTML(lineContent, lineTokens.inflate(), colorMap, startOffset, endOffset, tabSize, platform.isWindows);
717718
}
718719
}
719720

src/vs/editor/test/common/modes/textToHtmlTokenizer.test.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
105105
const colorMap = [null!, '#000000', '#ffffff', '#ff0000', '#00ff00', '#0000ff'];
106106

107107
assert.equal(
108-
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4),
108+
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4, true),
109109
[
110110
'<div>',
111111
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">Ciao</span>',
@@ -118,7 +118,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
118118
);
119119

120120
assert.equal(
121-
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 12, 4),
121+
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 12, 4, true),
122122
[
123123
'<div>',
124124
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">Ciao</span>',
@@ -131,7 +131,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
131131
);
132132

133133
assert.equal(
134-
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 11, 4),
134+
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 11, 4, true),
135135
[
136136
'<div>',
137137
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">Ciao</span>',
@@ -143,7 +143,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
143143
);
144144

145145
assert.equal(
146-
tokenizeLineToHTML(text, lineTokens, colorMap, 1, 11, 4),
146+
tokenizeLineToHTML(text, lineTokens, colorMap, 1, 11, 4, true),
147147
[
148148
'<div>',
149149
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">iao</span>',
@@ -155,7 +155,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
155155
);
156156

157157
assert.equal(
158-
tokenizeLineToHTML(text, lineTokens, colorMap, 4, 11, 4),
158+
tokenizeLineToHTML(text, lineTokens, colorMap, 4, 11, 4, true),
159159
[
160160
'<div>',
161161
'<span style="color: #000000;">&nbsp;</span>',
@@ -166,7 +166,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
166166
);
167167

168168
assert.equal(
169-
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 11, 4),
169+
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 11, 4, true),
170170
[
171171
'<div>',
172172
'<span style="color: #00ff00;">hello</span>',
@@ -176,7 +176,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
176176
);
177177

178178
assert.equal(
179-
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 10, 4),
179+
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 10, 4, true),
180180
[
181181
'<div>',
182182
'<span style="color: #00ff00;">hello</span>',
@@ -185,7 +185,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
185185
);
186186

187187
assert.equal(
188-
tokenizeLineToHTML(text, lineTokens, colorMap, 6, 9, 4),
188+
tokenizeLineToHTML(text, lineTokens, colorMap, 6, 9, 4, true),
189189
[
190190
'<div>',
191191
'<span style="color: #00ff00;">ell</span>',
@@ -238,7 +238,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
238238
const colorMap = [null!, '#000000', '#ffffff', '#ff0000', '#00ff00', '#0000ff'];
239239

240240
assert.equal(
241-
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 21, 4),
241+
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 21, 4, true),
242242
[
243243
'<div>',
244244
'<span style="color: #000000;">&nbsp;&nbsp;</span>',
@@ -252,7 +252,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
252252
);
253253

254254
assert.equal(
255-
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4),
255+
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4, true),
256256
[
257257
'<div>',
258258
'<span style="color: #000000;">&nbsp;&nbsp;</span>',
@@ -266,7 +266,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
266266
);
267267

268268
assert.equal(
269-
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 3, 4),
269+
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 3, 4, true),
270270
[
271271
'<div>',
272272
'<span style="color: #000000;">&nbsp;&nbsp;</span>',

0 commit comments

Comments
 (0)