mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
Merge from vscode 2f984aad710215f4e4684a035bb02f55d1a9e2cc (#9819)
This commit is contained in:
@@ -4,12 +4,13 @@
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { MultilineTokens2, SparseEncodedTokens } from 'vs/editor/common/model/tokensStore';
|
||||
import { MultilineTokens2, SparseEncodedTokens, TokensStore2 } from 'vs/editor/common/model/tokensStore';
|
||||
import { Range } from 'vs/editor/common/core/range';
|
||||
import { TextModel } from 'vs/editor/common/model/textModel';
|
||||
import { IIdentifiedSingleEditOperation } from 'vs/editor/common/model';
|
||||
import { MetadataConsts, TokenMetadata } from 'vs/editor/common/modes';
|
||||
import { createTextModel } from 'vs/editor/test/common/editorTestUtils';
|
||||
import { LineTokens } from 'vs/editor/common/core/lineTokens';
|
||||
|
||||
suite('TokensStore', () => {
|
||||
|
||||
@@ -98,7 +99,7 @@ suite('TokensStore', () => {
|
||||
function testTokensAdjustment(rawInitialState: string[], edits: IIdentifiedSingleEditOperation[], rawFinalState: string[]) {
|
||||
const initialState = parseTokensState(rawInitialState);
|
||||
const model = createTextModel(initialState.text);
|
||||
model.setSemanticTokens([initialState.tokens]);
|
||||
model.setSemanticTokens([initialState.tokens], true);
|
||||
|
||||
model.applyEdits(edits);
|
||||
|
||||
@@ -183,7 +184,7 @@ suite('TokensStore', () => {
|
||||
0, 38, 42, 245768,
|
||||
0, 43, 47, 180232,
|
||||
])))
|
||||
]);
|
||||
], true);
|
||||
const lineTokens = model.getLineTokens(1);
|
||||
let decodedTokens: number[] = [];
|
||||
for (let i = 0, len = lineTokens.getCount(); i < len; i++) {
|
||||
@@ -212,4 +213,114 @@ suite('TokensStore', () => {
|
||||
model.dispose();
|
||||
});
|
||||
|
||||
test('partial tokens 1', () => {
|
||||
const store = new TokensStore2();
|
||||
|
||||
// setPartial: [1,1 -> 31,2], [(5,5-10),(10,5-10),(15,5-10),(20,5-10),(25,5-10),(30,5-10)]
|
||||
store.setPartial(new Range(1, 1, 31, 2), [
|
||||
new MultilineTokens2(5, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 1,
|
||||
5, 5, 10, 2,
|
||||
10, 5, 10, 3,
|
||||
15, 5, 10, 4,
|
||||
20, 5, 10, 5,
|
||||
25, 5, 10, 6,
|
||||
])))
|
||||
]);
|
||||
|
||||
// setPartial: [18,1 -> 42,1], [(20,5-10),(25,5-10),(30,5-10),(35,5-10),(40,5-10)]
|
||||
store.setPartial(new Range(18, 1, 42, 1), [
|
||||
new MultilineTokens2(20, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 4,
|
||||
5, 5, 10, 5,
|
||||
10, 5, 10, 6,
|
||||
15, 5, 10, 7,
|
||||
20, 5, 10, 8,
|
||||
])))
|
||||
]);
|
||||
|
||||
// setPartial: [1,1 -> 31,2], [(5,5-10),(10,5-10),(15,5-10),(20,5-10),(25,5-10),(30,5-10)]
|
||||
store.setPartial(new Range(1, 1, 31, 2), [
|
||||
new MultilineTokens2(5, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 1,
|
||||
5, 5, 10, 2,
|
||||
10, 5, 10, 3,
|
||||
15, 5, 10, 4,
|
||||
20, 5, 10, 5,
|
||||
25, 5, 10, 6,
|
||||
])))
|
||||
]);
|
||||
|
||||
const lineTokens = store.addSemanticTokens(10, new LineTokens(new Uint32Array([12, 1]), `enum Enum1 {`));
|
||||
assert.equal(lineTokens.getCount(), 3);
|
||||
});
|
||||
|
||||
test('partial tokens 2', () => {
|
||||
const store = new TokensStore2();
|
||||
|
||||
// setPartial: [1,1 -> 31,2], [(5,5-10),(10,5-10),(15,5-10),(20,5-10),(25,5-10),(30,5-10)]
|
||||
store.setPartial(new Range(1, 1, 31, 2), [
|
||||
new MultilineTokens2(5, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 1,
|
||||
5, 5, 10, 2,
|
||||
10, 5, 10, 3,
|
||||
15, 5, 10, 4,
|
||||
20, 5, 10, 5,
|
||||
25, 5, 10, 6,
|
||||
])))
|
||||
]);
|
||||
|
||||
// setPartial: [6,1 -> 36,2], [(10,5-10),(15,5-10),(20,5-10),(25,5-10),(30,5-10),(35,5-10)]
|
||||
store.setPartial(new Range(6, 1, 36, 2), [
|
||||
new MultilineTokens2(10, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 2,
|
||||
5, 5, 10, 3,
|
||||
10, 5, 10, 4,
|
||||
15, 5, 10, 5,
|
||||
20, 5, 10, 6,
|
||||
])))
|
||||
]);
|
||||
|
||||
// setPartial: [17,1 -> 42,1], [(20,5-10),(25,5-10),(30,5-10),(35,5-10),(40,5-10)]
|
||||
store.setPartial(new Range(17, 1, 42, 1), [
|
||||
new MultilineTokens2(20, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 4,
|
||||
5, 5, 10, 5,
|
||||
10, 5, 10, 6,
|
||||
15, 5, 10, 7,
|
||||
20, 5, 10, 8,
|
||||
])))
|
||||
]);
|
||||
|
||||
const lineTokens = store.addSemanticTokens(20, new LineTokens(new Uint32Array([12, 1]), `enum Enum1 {`));
|
||||
assert.equal(lineTokens.getCount(), 3);
|
||||
});
|
||||
|
||||
test('partial tokens 3', () => {
|
||||
const store = new TokensStore2();
|
||||
|
||||
// setPartial: [1,1 -> 31,2], [(5,5-10),(10,5-10),(15,5-10),(20,5-10),(25,5-10),(30,5-10)]
|
||||
store.setPartial(new Range(1, 1, 31, 2), [
|
||||
new MultilineTokens2(5, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 1,
|
||||
5, 5, 10, 2,
|
||||
10, 5, 10, 3,
|
||||
15, 5, 10, 4,
|
||||
20, 5, 10, 5,
|
||||
25, 5, 10, 6,
|
||||
])))
|
||||
]);
|
||||
|
||||
// setPartial: [11,1 -> 16,2], [(15,5-10),(20,5-10)]
|
||||
store.setPartial(new Range(11, 1, 16, 2), [
|
||||
new MultilineTokens2(10, new SparseEncodedTokens(new Uint32Array([
|
||||
0, 5, 10, 3,
|
||||
5, 5, 10, 4,
|
||||
])))
|
||||
]);
|
||||
|
||||
const lineTokens = store.addSemanticTokens(5, new LineTokens(new Uint32Array([12, 1]), `enum Enum1 {`));
|
||||
assert.equal(lineTokens.getCount(), 3);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
@@ -459,10 +459,10 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
]);
|
||||
|
||||
let expectedOutput = [
|
||||
'<span class="mtk6" dir="ltr">var</span>',
|
||||
'<span class="mtk1" dir="ltr">\u00a0קודמות\u00a0=\u00a0</span>',
|
||||
'<span class="mtk20" dir="ltr">"מיותר\u00a0קודמות\u00a0צ\'ט\u00a0של,\u00a0אם\u00a0לשון\u00a0העברית\u00a0שינויים\u00a0ויש,\u00a0אם"</span>',
|
||||
'<span class="mtk1" dir="ltr">;</span>'
|
||||
'<span class="mtk6">var</span>',
|
||||
'<span class="mtk1">\u00a0קודמות\u00a0=\u00a0</span>',
|
||||
'<span class="mtk20">"מיותר\u00a0קודמות\u00a0צ\'ט\u00a0של,\u00a0אם\u00a0לשון\u00a0העברית\u00a0שינויים\u00a0ויש,\u00a0אם"</span>',
|
||||
'<span class="mtk1">;</span>'
|
||||
].join('');
|
||||
|
||||
let _actual = renderViewLine(new RenderLineInput(
|
||||
@@ -487,7 +487,7 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
null
|
||||
));
|
||||
|
||||
assert.equal(_actual.html, '<span>' + expectedOutput + '</span>');
|
||||
assert.equal(_actual.html, '<span dir="ltr">' + expectedOutput + '</span>');
|
||||
assert.equal(_actual.containsRTL, true);
|
||||
});
|
||||
|
||||
@@ -676,7 +676,7 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
let lineText = 'את גרמנית בהתייחסות שמו, שנתי המשפט אל חפש, אם כתב אחרים ולחבר. של התוכן אודות בויקיפדיה כלל, של עזרה כימיה היא. על עמוד יוצרים מיתולוגיה סדר, אם שכל שתפו לעברית שינויים, אם שאלות אנגלית עזה. שמות בקלות מה סדר.';
|
||||
let lineParts = createViewLineTokens([createPart(lineText.length, 1)]);
|
||||
let expectedOutput = [
|
||||
'<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>'
|
||||
'<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>'
|
||||
];
|
||||
let actual = renderViewLine(new RenderLineInput(
|
||||
false,
|
||||
@@ -699,7 +699,7 @@ suite('viewLineRenderer.renderLine', () => {
|
||||
false,
|
||||
null
|
||||
));
|
||||
assert.equal(actual.html, '<span>' + expectedOutput.join('') + '</span>');
|
||||
assert.equal(actual.html, '<span dir="ltr">' + expectedOutput.join('') + '</span>');
|
||||
assert.equal(actual.containsRTL, true);
|
||||
});
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ function parseTest(fileName: string): ITest {
|
||||
return { content, assertions };
|
||||
}
|
||||
|
||||
// @ts-ignore
|
||||
// @ts-expect-error
|
||||
function executeTest(fileName: string, parseFunc: IParseFunc): void {
|
||||
const { content, assertions } = parseTest(fileName);
|
||||
const actual = parseFunc(content);
|
||||
|
||||
Reference in New Issue
Block a user