Skip to content

Commit c6e3a94

Browse files
committed
Fixes microsoft#90019: Move dir="ltr" to the containing <span>
1 parent 40ea618 commit c6e3a94

2 files changed

Lines changed: 12 additions & 11 deletions

File tree

src/vs/editor/common/viewLayout/viewLineRenderer.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,11 @@ function _renderLine(input: ResolvedRenderLineInput, sb: IStringBuilder): Render
813813
let prevPartContentCnt = 0;
814814
let partAbsoluteOffset = 0;
815815

816-
sb.appendASCIIString('<span>');
816+
if (containsRTL) {
817+
sb.appendASCIIString('<span dir="ltr">');
818+
} else {
819+
sb.appendASCIIString('<span>');
820+
}
817821

818822
for (let partIndex = 0, tokensLen = parts.length; partIndex < tokensLen; partIndex++) {
819823
partAbsoluteOffset += prevPartContentCnt;
@@ -890,9 +894,6 @@ function _renderLine(input: ResolvedRenderLineInput, sb: IStringBuilder): Render
890894

891895
let partContentCnt = 0;
892896

893-
if (containsRTL) {
894-
sb.appendASCIIString(' dir="ltr"');
895-
}
896897
sb.appendASCII(CharCode.GreaterThan);
897898

898899
for (; charIndex < partEndIndex; charIndex++) {

src/vs/editor/test/common/viewLayout/viewLineRenderer.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -459,10 +459,10 @@ suite('viewLineRenderer.renderLine', () => {
459459
]);
460460

461461
let expectedOutput = [
462-
'<span class="mtk6" dir="ltr">var</span>',
463-
'<span class="mtk1" dir="ltr">\u00a0קודמות\u00a0=\u00a0</span>',
464-
'<span class="mtk20" dir="ltr">"מיותר\u00a0קודמות\u00a0צ\'ט\u00a0של,\u00a0אם\u00a0לשון\u00a0העברית\u00a0שינויים\u00a0ויש,\u00a0אם"</span>',
465-
'<span class="mtk1" dir="ltr">;</span>'
462+
'<span class="mtk6">var</span>',
463+
'<span class="mtk1">\u00a0קודמות\u00a0=\u00a0</span>',
464+
'<span class="mtk20">"מיותר\u00a0קודמות\u00a0צ\'ט\u00a0של,\u00a0אם\u00a0לשון\u00a0העברית\u00a0שינויים\u00a0ויש,\u00a0אם"</span>',
465+
'<span class="mtk1">;</span>'
466466
].join('');
467467

468468
let _actual = renderViewLine(new RenderLineInput(
@@ -487,7 +487,7 @@ suite('viewLineRenderer.renderLine', () => {
487487
null
488488
));
489489

490-
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
490+
assert.equal(_actual.html, '<span dir="ltr">' + expectedOutput + '</span>');
491491
assert.equal(_actual.containsRTL, true);
492492
});
493493

@@ -676,7 +676,7 @@ suite('viewLineRenderer.renderLine', () => {
676676
let lineText = 'את גרמנית בהתייחסות שמו, שנתי המשפט אל חפש, אם כתב אחרים ולחבר. של התוכן אודות בויקיפדיה כלל, של עזרה כימיה היא. על עמוד יוצרים מיתולוגיה סדר, אם שכל שתפו לעברית שינויים, אם שאלות אנגלית עזה. שמות בקלות מה סדר.';
677677
let lineParts = createViewLineTokens([createPart(lineText.length, 1)]);
678678
let expectedOutput = [
679-
'<span class="mtk1" dir="ltr">את\u00a0גרמנית\u00a0בהתייחסות\u00a0שמו,\u00a0שנתי\u00a0המשפט\u00a0אל\u00a0חפש,\u00a0אם\u00a0כתב\u00a0אחרים\u00a0ולחבר.\u00a0של\u00a0התוכן\u00a0אודות\u00a0בויקיפדיה\u00a0כלל,\u00a0של\u00a0עזרה\u00a0כימיה\u00a0היא.\u00a0על\u00a0עמוד\u00a0יוצרים\u00a0מיתולוגיה\u00a0סדר,\u00a0אם\u00a0שכל\u00a0שתפו\u00a0לעברית\u00a0שינויים,\u00a0אם\u00a0שאלות\u00a0אנגלית\u00a0עזה.\u00a0שמות\u00a0בקלות\u00a0מה\u00a0סדר.</span>'
679+
'<span class="mtk1">את\u00a0גרמנית\u00a0בהתייחסות\u00a0שמו,\u00a0שנתי\u00a0המשפט\u00a0אל\u00a0חפש,\u00a0אם\u00a0כתב\u00a0אחרים\u00a0ולחבר.\u00a0של\u00a0התוכן\u00a0אודות\u00a0בויקיפדיה\u00a0כלל,\u00a0של\u00a0עזרה\u00a0כימיה\u00a0היא.\u00a0על\u00a0עמוד\u00a0יוצרים\u00a0מיתולוגיה\u00a0סדר,\u00a0אם\u00a0שכל\u00a0שתפו\u00a0לעברית\u00a0שינויים,\u00a0אם\u00a0שאלות\u00a0אנגלית\u00a0עזה.\u00a0שמות\u00a0בקלות\u00a0מה\u00a0סדר.</span>'
680680
];
681681
let actual = renderViewLine(new RenderLineInput(
682682
false,
@@ -699,7 +699,7 @@ suite('viewLineRenderer.renderLine', () => {
699699
false,
700700
null
701701
));
702-
assert.equal(actual.html, '<span>' + expectedOutput.join('') + '</span>');
702+
assert.equal(actual.html, '<span dir="ltr">' + expectedOutput.join('') + '</span>');
703703
assert.equal(actual.containsRTL, true);
704704
});
705705

0 commit comments

Comments
 (0)