未验证 提交 b6138b95 编写于 作者: A Alex Dima

Fixes #80825: Use   only on Windows

上级 27039759
......@@ -24,7 +24,7 @@ export function tokenizeToString(text: string, tokenizationSupport: IReducedToke
return _tokenizeToString(text, tokenizationSupport || fallback);
}
export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens, colorMap: string[], startOffset: number, endOffset: number, tabSize: number): string {
export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens, colorMap: string[], startOffset: number, endOffset: number, tabSize: number, useNbsp: boolean): string {
let result = `<div>`;
let charIndex = startOffset;
let tabsCharDelta = 0;
......@@ -46,7 +46,7 @@ export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens
let insertSpacesCount = tabSize - (charIndex + tabsCharDelta) % tabSize;
tabsCharDelta += insertSpacesCount - 1;
while (insertSpacesCount > 0) {
partContent += '&nbsp;';
partContent += useNbsp ? '&nbsp;' : ' ';
insertSpacesCount--;
}
break;
......@@ -78,7 +78,7 @@ export function tokenizeLineToHTML(text: string, viewLineTokens: IViewLineTokens
break;
case CharCode.Space:
partContent += '&nbsp;';
partContent += useNbsp ? '&nbsp;' : ' ';
break;
default:
......
......@@ -24,6 +24,7 @@ import { ICoordinatesConverter, IOverviewRulerDecorations, IViewModel, MinimapLi
import { ViewModelDecorations } from 'vs/editor/common/viewModel/viewModelDecorations';
import { ITheme } from 'vs/platform/theme/common/themeService';
import { RunOnceScheduler } from 'vs/base/common/async';
import * as platform from 'vs/base/common/platform';
const USE_IDENTITY_LINES_COLLECTION = true;
......@@ -713,7 +714,7 @@ export class ViewModel extends viewEvents.ViewEventEmitter implements IViewModel
if (lineContent === '') {
result += '<br>';
} else {
result += tokenizeLineToHTML(lineContent, lineTokens.inflate(), colorMap, startOffset, endOffset, tabSize);
result += tokenizeLineToHTML(lineContent, lineTokens.inflate(), colorMap, startOffset, endOffset, tabSize, platform.isWindows);
}
}
......
......@@ -105,7 +105,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
const colorMap = [null!, '#000000', '#ffffff', '#ff0000', '#00ff00', '#0000ff'];
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4, true),
[
'<div>',
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">Ciao</span>',
......@@ -118,7 +118,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 12, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 12, 4, true),
[
'<div>',
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">Ciao</span>',
......@@ -131,7 +131,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 11, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 11, 4, true),
[
'<div>',
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">Ciao</span>',
......@@ -143,7 +143,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 1, 11, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 1, 11, 4, true),
[
'<div>',
'<span style="color: #ff0000;font-style: italic;font-weight: bold;">iao</span>',
......@@ -155,7 +155,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 4, 11, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 4, 11, 4, true),
[
'<div>',
'<span style="color: #000000;">&nbsp;</span>',
......@@ -166,7 +166,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 11, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 11, 4, true),
[
'<div>',
'<span style="color: #00ff00;">hello</span>',
......@@ -176,7 +176,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 10, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 5, 10, 4, true),
[
'<div>',
'<span style="color: #00ff00;">hello</span>',
......@@ -185,7 +185,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 6, 9, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 6, 9, 4, true),
[
'<div>',
'<span style="color: #00ff00;">ell</span>',
......@@ -238,7 +238,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
const colorMap = [null!, '#000000', '#ffffff', '#ff0000', '#00ff00', '#0000ff'];
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 21, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 21, 4, true),
[
'<div>',
'<span style="color: #000000;">&nbsp;&nbsp;</span>',
......@@ -252,7 +252,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 17, 4, true),
[
'<div>',
'<span style="color: #000000;">&nbsp;&nbsp;</span>',
......@@ -266,7 +266,7 @@ suite('Editor Modes - textToHtmlTokenizer', () => {
);
assert.equal(
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 3, 4),
tokenizeLineToHTML(text, lineTokens, colorMap, 0, 3, 4, true),
[
'<div>',
'<span style="color: #000000;">&nbsp;&nbsp;</span>',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册