From 668ff04cda7a2d42ffe2e681850df5bb9c154bf7 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 31 Aug 2016 15:14:16 +0200 Subject: [PATCH] Merge model.brackets.test.ts into textModelWithTokens.test.ts --- .../test/common/model/model.brackets.test.ts | 130 ------------------ .../common/model/textModelWithTokens.test.ts | 123 +++++++++++++++++ 2 files changed, 123 insertions(+), 130 deletions(-) delete mode 100644 src/vs/editor/test/common/model/model.brackets.test.ts diff --git a/src/vs/editor/test/common/model/model.brackets.test.ts b/src/vs/editor/test/common/model/model.brackets.test.ts deleted file mode 100644 index e3433c2b514..00000000000 --- a/src/vs/editor/test/common/model/model.brackets.test.ts +++ /dev/null @@ -1,130 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import * as assert from 'assert'; -import {Range} from 'vs/editor/common/core/range'; -import {IFoundBracket} from 'vs/editor/common/editorCommon'; -import {TextModel} from 'vs/editor/common/model/textModel'; -import {TextModelWithTokens} from 'vs/editor/common/model/textModelWithTokens'; - -suite('TextModelWithTokens', () => { - - function toRelaxedFoundBracket(a:IFoundBracket) { - if (!a) { - return null; - } - return { - range: a.range.toString(), - open: a.open, - close: a.close, - isOpen: a.isOpen - }; - } - - function testBrackets(contents: string[], brackets:string[][]): void { - let charIsBracket: {[char:string]:boolean} = {}; - let charIsOpenBracket: {[char:string]:boolean} = {}; - let openForChar: {[char:string]:string} = {}; - let closeForChar: {[char:string]:string} = {}; - brackets.forEach((b) => { - charIsBracket[b[0]] = true; - charIsBracket[b[1]] = true; - - charIsOpenBracket[b[0]] = true; - charIsOpenBracket[b[1]] = false; - - openForChar[b[0]] = b[0]; - closeForChar[b[0]] = b[1]; - - openForChar[b[1]] = b[0]; - closeForChar[b[1]] = b[1]; - }); - - let expectedBrackets:IFoundBracket[] = []; - for (let lineIndex = 0; lineIndex < contents.length; lineIndex++) { - let lineText = contents[lineIndex]; - - for (let charIndex = 0; charIndex < lineText.length; charIndex++) { - let ch = lineText.charAt(charIndex); - if (charIsBracket[ch]) { - expectedBrackets.push({ - open: openForChar[ch], - close: closeForChar[ch], - isOpen: charIsOpenBracket[ch], - range: new Range(lineIndex + 1, charIndex + 1, lineIndex + 1, charIndex + 2) - }); - } - } - } - - let model = new TextModelWithTokens([], TextModel.toRawText(contents.join('\n'), TextModel.DEFAULT_CREATION_OPTIONS), null); - - // findPrevBracket - { - let expectedBracketIndex = expectedBrackets.length - 1; - let currentExpectedBracket = expectedBracketIndex >= 0 ? expectedBrackets[expectedBracketIndex] : null; - for (let lineNumber = contents.length; lineNumber >= 1; lineNumber--) { - let lineText = contents[lineNumber - 1]; - - for (let column = lineText.length + 1; column >= 1; column--) { - - if (currentExpectedBracket) { - if (lineNumber === currentExpectedBracket.range.startLineNumber && column < currentExpectedBracket.range.endColumn) { - expectedBracketIndex--; - currentExpectedBracket = expectedBracketIndex >= 0 ? expectedBrackets[expectedBracketIndex] : null; - } - } - - let actual = model.findPrevBracket({ - lineNumber: lineNumber, - column: column - }); - - assert.deepEqual(toRelaxedFoundBracket(actual), toRelaxedFoundBracket(currentExpectedBracket), 'findPrevBracket of ' + lineNumber + ', ' + column); - } - } - } - - // findNextBracket - { - let expectedBracketIndex = 0; - let currentExpectedBracket = expectedBracketIndex < expectedBrackets.length ? expectedBrackets[expectedBracketIndex] : null; - for (let lineNumber = 1; lineNumber <= contents.length; lineNumber++) { - let lineText = contents[lineNumber - 1]; - - for (let column = 1; column <= lineText.length + 1; column++) { - - if (currentExpectedBracket) { - if (lineNumber === currentExpectedBracket.range.startLineNumber && column > currentExpectedBracket.range.startColumn) { - expectedBracketIndex++; - currentExpectedBracket = expectedBracketIndex < expectedBrackets.length ? expectedBrackets[expectedBracketIndex] : null; - } - } - - let actual = model.findNextBracket({ - lineNumber: lineNumber, - column: column - }); - - assert.deepEqual(toRelaxedFoundBracket(actual), toRelaxedFoundBracket(currentExpectedBracket), 'findNextBracket of ' + lineNumber + ', ' + column); - } - } - } - - model.dispose(); - } - - test('brackets', () => { - testBrackets([ - 'if (a == 3) { return (7 * (a + 5)); }' - ], [ - ['{', '}'], - ['[', ']'], - ['(', ')'] - ]); - }); - -}); diff --git a/src/vs/editor/test/common/model/textModelWithTokens.test.ts b/src/vs/editor/test/common/model/textModelWithTokens.test.ts index 880e35eacb2..107d4b22c88 100644 --- a/src/vs/editor/test/common/model/textModelWithTokens.test.ts +++ b/src/vs/editor/test/common/model/textModelWithTokens.test.ts @@ -10,6 +10,10 @@ import {ViewLineToken} from 'vs/editor/common/core/viewLineToken'; import {ITokenizationSupport} from 'vs/editor/common/modes'; import {MockMode} from 'vs/editor/test/common/mocks/mockMode'; import {Token} from 'vs/editor/common/core/token'; +import {Range} from 'vs/editor/common/core/range'; +import {IFoundBracket} from 'vs/editor/common/editorCommon'; +import {TextModel} from 'vs/editor/common/model/textModel'; +import {TextModelWithTokens} from 'vs/editor/common/model/textModelWithTokens'; suite('TextModelWithTokens', () => { @@ -61,3 +65,122 @@ suite('TextModelWithTokens', () => { }); }); + +suite('TextModelWithTokens', () => { + + function toRelaxedFoundBracket(a:IFoundBracket) { + if (!a) { + return null; + } + return { + range: a.range.toString(), + open: a.open, + close: a.close, + isOpen: a.isOpen + }; + } + + function testBrackets(contents: string[], brackets:string[][]): void { + let charIsBracket: {[char:string]:boolean} = {}; + let charIsOpenBracket: {[char:string]:boolean} = {}; + let openForChar: {[char:string]:string} = {}; + let closeForChar: {[char:string]:string} = {}; + brackets.forEach((b) => { + charIsBracket[b[0]] = true; + charIsBracket[b[1]] = true; + + charIsOpenBracket[b[0]] = true; + charIsOpenBracket[b[1]] = false; + + openForChar[b[0]] = b[0]; + closeForChar[b[0]] = b[1]; + + openForChar[b[1]] = b[0]; + closeForChar[b[1]] = b[1]; + }); + + let expectedBrackets:IFoundBracket[] = []; + for (let lineIndex = 0; lineIndex < contents.length; lineIndex++) { + let lineText = contents[lineIndex]; + + for (let charIndex = 0; charIndex < lineText.length; charIndex++) { + let ch = lineText.charAt(charIndex); + if (charIsBracket[ch]) { + expectedBrackets.push({ + open: openForChar[ch], + close: closeForChar[ch], + isOpen: charIsOpenBracket[ch], + range: new Range(lineIndex + 1, charIndex + 1, lineIndex + 1, charIndex + 2) + }); + } + } + } + + let model = new TextModelWithTokens([], TextModel.toRawText(contents.join('\n'), TextModel.DEFAULT_CREATION_OPTIONS), null); + + // findPrevBracket + { + let expectedBracketIndex = expectedBrackets.length - 1; + let currentExpectedBracket = expectedBracketIndex >= 0 ? expectedBrackets[expectedBracketIndex] : null; + for (let lineNumber = contents.length; lineNumber >= 1; lineNumber--) { + let lineText = contents[lineNumber - 1]; + + for (let column = lineText.length + 1; column >= 1; column--) { + + if (currentExpectedBracket) { + if (lineNumber === currentExpectedBracket.range.startLineNumber && column < currentExpectedBracket.range.endColumn) { + expectedBracketIndex--; + currentExpectedBracket = expectedBracketIndex >= 0 ? expectedBrackets[expectedBracketIndex] : null; + } + } + + let actual = model.findPrevBracket({ + lineNumber: lineNumber, + column: column + }); + + assert.deepEqual(toRelaxedFoundBracket(actual), toRelaxedFoundBracket(currentExpectedBracket), 'findPrevBracket of ' + lineNumber + ', ' + column); + } + } + } + + // findNextBracket + { + let expectedBracketIndex = 0; + let currentExpectedBracket = expectedBracketIndex < expectedBrackets.length ? expectedBrackets[expectedBracketIndex] : null; + for (let lineNumber = 1; lineNumber <= contents.length; lineNumber++) { + let lineText = contents[lineNumber - 1]; + + for (let column = 1; column <= lineText.length + 1; column++) { + + if (currentExpectedBracket) { + if (lineNumber === currentExpectedBracket.range.startLineNumber && column > currentExpectedBracket.range.startColumn) { + expectedBracketIndex++; + currentExpectedBracket = expectedBracketIndex < expectedBrackets.length ? expectedBrackets[expectedBracketIndex] : null; + } + } + + let actual = model.findNextBracket({ + lineNumber: lineNumber, + column: column + }); + + assert.deepEqual(toRelaxedFoundBracket(actual), toRelaxedFoundBracket(currentExpectedBracket), 'findNextBracket of ' + lineNumber + ', ' + column); + } + } + } + + model.dispose(); + } + + test('brackets', () => { + testBrackets([ + 'if (a == 3) { return (7 * (a + 5)); }' + ], [ + ['{', '}'], + ['[', ']'], + ['(', ')'] + ]); + }); + +});