mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-14 18:46:34 -05:00
Merge from vscode e1d3dd53d17fb1529a002e4d6fb066db0a0bd385 (#6460)
* Merge from vscode e1d3dd53d17fb1529a002e4d6fb066db0a0bd385 * fix servers icon * fix tests
This commit is contained in:
@@ -9,7 +9,7 @@ import * as strings from 'vs/base/common/strings';
|
||||
import { IViewLineTokens } from 'vs/editor/common/core/lineTokens';
|
||||
import { MetadataConsts } from 'vs/editor/common/modes';
|
||||
import { LineDecoration } from 'vs/editor/common/viewLayout/lineDecorations';
|
||||
import { CharacterMapping, RenderLineInput, renderViewLine2 as renderViewLine } from 'vs/editor/common/viewLayout/viewLineRenderer';
|
||||
import { CharacterMapping, RenderLineInput, renderViewLine2 as renderViewLine, LineRange } from 'vs/editor/common/viewLayout/viewLineRenderer';
|
||||
import { InlineDecorationType } from 'vs/editor/common/viewModel/viewModel';
|
||||
import { ViewLineToken, ViewLineTokens } from 'vs/editor/test/common/core/viewLineToken';
|
||||
|
||||
@@ -41,7 +41,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span><span class="mtk0">' + expected + '</span></span>');
|
||||
@@ -90,7 +91,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expected + '</span>');
|
||||
@@ -142,7 +144,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
6,
|
||||
'boundary',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expectedOutput = [
|
||||
@@ -233,7 +236,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'boundary',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
|
||||
@@ -295,7 +299,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
|
||||
@@ -357,7 +362,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
|
||||
@@ -396,7 +402,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
|
||||
@@ -426,7 +433,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
assert.equal(actual.html, '<span>' + expectedOutput.join('') + '</span>', message);
|
||||
}
|
||||
@@ -526,7 +534,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
true
|
||||
true,
|
||||
null
|
||||
));
|
||||
assert.equal(actual.html, '<span>' + expectedOutput.join('') + '</span>', message);
|
||||
}
|
||||
@@ -564,7 +573,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
let expectedOutput = [
|
||||
'<span class="mtk1">a𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷𠮷</span>',
|
||||
@@ -593,7 +603,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
assert.equal(actual.html, '<span>' + expectedOutput.join('') + '</span>');
|
||||
assert.equal(actual.containsRTL, true);
|
||||
@@ -639,7 +650,8 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
|
||||
@@ -704,7 +716,7 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
|
||||
suite('viewLineRenderer.renderLine 2', () => {
|
||||
|
||||
function testCreateLineParts(fontIsMonospace: boolean, lineContent: string, tokens: ViewLineToken[], fauxIndentLength: number, renderWhitespace: 'none' | 'boundary' | 'all', expected: string): void {
|
||||
function testCreateLineParts(fontIsMonospace: boolean, lineContent: string, tokens: ViewLineToken[], fauxIndentLength: number, renderWhitespace: 'none' | 'boundary' | 'selection' | 'all', selections: LineRange[] | null, expected: string): void {
|
||||
let actual = renderViewLine(new RenderLineInput(
|
||||
fontIsMonospace,
|
||||
true,
|
||||
@@ -720,7 +732,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
renderWhitespace,
|
||||
false,
|
||||
false
|
||||
false,
|
||||
selections
|
||||
));
|
||||
|
||||
assert.deepEqual(actual.html, expected);
|
||||
@@ -745,7 +758,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -784,7 +798,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -811,6 +826,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'none',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="mtk1">Hello\u00a0world!</span>',
|
||||
@@ -828,6 +844,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'none',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="mtk1">Hello\u00a0</span>',
|
||||
@@ -847,6 +864,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:40px">\u00b7\u00b7\u00b7\u00b7</span>',
|
||||
@@ -868,6 +886,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:40px">\u00b7\u00b7\u00b7\u00b7</span>',
|
||||
@@ -891,6 +910,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:40px">\u2192\u00a0\u00a0\u00a0</span>',
|
||||
@@ -913,6 +933,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:40px">\u00b7\u00b7\u2192\u00a0</span>',
|
||||
@@ -940,6 +961,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
2,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</span>',
|
||||
@@ -966,6 +988,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
2,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0</span>',
|
||||
@@ -989,6 +1012,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'boundary',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="mtk1">it</span>',
|
||||
@@ -1014,6 +1038,7 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
],
|
||||
0,
|
||||
'all',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
@@ -1027,6 +1052,147 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
);
|
||||
});
|
||||
|
||||
test('createLineParts render whitespace for selection with no selections', () => {
|
||||
testCreateLineParts(
|
||||
false,
|
||||
' Hello world!\t',
|
||||
[
|
||||
createPart(4, 0),
|
||||
createPart(6, 1),
|
||||
createPart(14, 2)
|
||||
],
|
||||
0,
|
||||
'selection',
|
||||
null,
|
||||
[
|
||||
'<span>',
|
||||
'<span class="mtk0">\u00a0Hel</span>',
|
||||
'<span class="mtk1">lo</span>',
|
||||
'<span class="mtk2">\u00a0world!\u00a0\u00a0\u00a0</span>',
|
||||
'</span>',
|
||||
].join('')
|
||||
);
|
||||
});
|
||||
|
||||
test('createLineParts render whitespace for selection with whole line selection', () => {
|
||||
testCreateLineParts(
|
||||
false,
|
||||
' Hello world!\t',
|
||||
[
|
||||
createPart(4, 0),
|
||||
createPart(6, 1),
|
||||
createPart(14, 2)
|
||||
],
|
||||
0,
|
||||
'selection',
|
||||
[new LineRange(0, 14)],
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk0">Hel</span>',
|
||||
'<span class="mtk1">lo</span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk2">world!</span>',
|
||||
'<span class="vs-whitespace" style="width:30px">\u2192\u00a0\u00a0</span>',
|
||||
'</span>',
|
||||
].join('')
|
||||
);
|
||||
});
|
||||
|
||||
test('createLineParts render whitespace for selection with selection spanning part of whitespace', () => {
|
||||
testCreateLineParts(
|
||||
false,
|
||||
' Hello world!\t',
|
||||
[
|
||||
createPart(4, 0),
|
||||
createPart(6, 1),
|
||||
createPart(14, 2)
|
||||
],
|
||||
0,
|
||||
'selection',
|
||||
[new LineRange(0, 5)],
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk0">Hel</span>',
|
||||
'<span class="mtk1">lo</span>',
|
||||
'<span class="mtk2">\u00a0world!\u00a0\u00a0\u00a0</span>',
|
||||
'</span>',
|
||||
].join('')
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
test('createLineParts render whitespace for selection with multiple selections', () => {
|
||||
testCreateLineParts(
|
||||
false,
|
||||
' Hello world!\t',
|
||||
[
|
||||
createPart(4, 0),
|
||||
createPart(6, 1),
|
||||
createPart(14, 2)
|
||||
],
|
||||
0,
|
||||
'selection',
|
||||
[new LineRange(0, 5), new LineRange(9, 14)],
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk0">Hel</span>',
|
||||
'<span class="mtk1">lo</span>',
|
||||
'<span class="mtk2">\u00a0world!</span>',
|
||||
'<span class="vs-whitespace" style="width:30px">\u2192\u00a0\u00a0</span>',
|
||||
'</span>',
|
||||
].join('')
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
test('createLineParts render whitespace for selection with multiple, initially unsorted selections', () => {
|
||||
testCreateLineParts(
|
||||
false,
|
||||
' Hello world!\t',
|
||||
[
|
||||
createPart(4, 0),
|
||||
createPart(6, 1),
|
||||
createPart(14, 2)
|
||||
],
|
||||
0,
|
||||
'selection',
|
||||
[new LineRange(9, 14), new LineRange(0, 5)],
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk0">Hel</span>',
|
||||
'<span class="mtk1">lo</span>',
|
||||
'<span class="mtk2">\u00a0world!</span>',
|
||||
'<span class="vs-whitespace" style="width:30px">\u2192\u00a0\u00a0</span>',
|
||||
'</span>',
|
||||
].join('')
|
||||
);
|
||||
});
|
||||
|
||||
test('createLineParts render whitespace for selection with selections next to each other', () => {
|
||||
testCreateLineParts(
|
||||
false,
|
||||
' * S',
|
||||
[
|
||||
createPart(4, 0)
|
||||
],
|
||||
0,
|
||||
'selection',
|
||||
[new LineRange(0, 1), new LineRange(1, 2), new LineRange(2, 3)],
|
||||
[
|
||||
'<span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk0">*</span>',
|
||||
'<span class="vs-whitespace" style="width:10px">\u00b7</span>',
|
||||
'<span class="mtk0">S</span>',
|
||||
'</span>',
|
||||
].join('')
|
||||
);
|
||||
});
|
||||
|
||||
test('createLineParts can handle unsorted inline decorations', () => {
|
||||
let actual = renderViewLine(new RenderLineInput(
|
||||
false,
|
||||
@@ -1047,7 +1213,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
// 01234567890
|
||||
@@ -1087,7 +1254,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'all',
|
||||
false,
|
||||
true
|
||||
true,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1119,7 +1287,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'all',
|
||||
false,
|
||||
true
|
||||
true,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1152,7 +1321,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'all',
|
||||
false,
|
||||
true
|
||||
true,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1181,7 +1351,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1214,7 +1385,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1246,7 +1418,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1276,7 +1449,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1305,7 +1479,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'all',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1340,7 +1515,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1369,7 +1545,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1400,7 +1577,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1430,7 +1608,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'boundary',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1458,7 +1637,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
true
|
||||
true,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1490,7 +1670,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
10000,
|
||||
'none',
|
||||
false,
|
||||
true
|
||||
true,
|
||||
null
|
||||
));
|
||||
|
||||
let expected = [
|
||||
@@ -1518,7 +1699,8 @@ suite('viewLineRenderer.renderLine 2', () => {
|
||||
-1,
|
||||
'none',
|
||||
false,
|
||||
false
|
||||
false,
|
||||
null
|
||||
));
|
||||
|
||||
return (partIndex: number, partLength: number, offset: number, expected: number) => {
|
||||
|
||||
Reference in New Issue
Block a user