提交 96af1d44 编写于 作者: I isidor

fix accessibility word operatoins and tests

上级 cf7fb776
...@@ -40,7 +40,7 @@ export const enum WordNavigationType { ...@@ -40,7 +40,7 @@ export const enum WordNavigationType {
WordStart = 0, WordStart = 0,
WordStartFast = 1, WordStartFast = 1,
WordEnd = 2, WordEnd = 2,
WordAcessibility = 3 // Respect chrome defintion of a word WordAccessibility = 3 // Respect chrome defintion of a word
} }
export class WordOperations { export class WordOperations {
...@@ -203,13 +203,12 @@ export class WordOperations { ...@@ -203,13 +203,12 @@ export class WordOperations {
return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1); return new Position(lineNumber, prevWordOnLine ? prevWordOnLine.start + 1 : 1);
} }
if (wordNavigationType === WordNavigationType.WordAcessibility) { if (wordNavigationType === WordNavigationType.WordAccessibility) {
while ( while (
prevWordOnLine prevWordOnLine
&& prevWordOnLine.wordType === WordType.Separator && prevWordOnLine.wordType === WordType.Separator
&& prevWordOnLine.end - prevWordOnLine.start === 1
) { ) {
// Skip over a word made up of one single separator // Skip over words made up of only separators
prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1)); prevWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, prevWordOnLine.start + 1));
} }
...@@ -289,19 +288,18 @@ export class WordOperations { ...@@ -289,19 +288,18 @@ export class WordOperations {
} else { } else {
column = model.getLineMaxColumn(lineNumber); column = model.getLineMaxColumn(lineNumber);
} }
} else if (wordNavigationType === WordNavigationType.WordAcessibility) { } else if (wordNavigationType === WordNavigationType.WordAccessibility) {
while ( while (
nextWordOnLine nextWordOnLine
&& nextWordOnLine.wordType === WordType.Separator && nextWordOnLine.wordType === WordType.Separator
&& nextWordOnLine.end - nextWordOnLine.start === 1
) { ) {
// Skip over a word made up of one single separator // Skip over a word made up of one single separator
nextWordOnLine = WordOperations._findPreviousWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1)); nextWordOnLine = WordOperations._findNextWordOnLine(wordSeparators, model, new Position(lineNumber, nextWordOnLine.end + 1));
} }
if (nextWordOnLine) { if (nextWordOnLine) {
column = nextWordOnLine.start + 1; column = nextWordOnLine.end + 1;
} else { } else {
column = model.getLineMaxColumn(lineNumber); column = model.getLineMaxColumn(lineNumber);
} }
......
...@@ -337,7 +337,7 @@ suite('WordOperations', () => { ...@@ -337,7 +337,7 @@ suite('WordOperations', () => {
}); });
test('cursorWordAccessibilityLeft', () => { test('cursorWordAccessibilityLeft', () => {
const EXPECTED = ['| |/* |Just |some |more |text |a|+= |3 |+|5|-|3 |+ |7 |*/| '].join('\n'); const EXPECTED = ['| /* |Just |some |more |text |a+= |3 +|5-|3 + |7 */ '].join('\n');
const [text,] = deserializePipePositions(EXPECTED); const [text,] = deserializePipePositions(EXPECTED);
const actualStops = testRepeatedActionAndExtractPositions( const actualStops = testRepeatedActionAndExtractPositions(
text, text,
...@@ -351,16 +351,14 @@ suite('WordOperations', () => { ...@@ -351,16 +351,14 @@ suite('WordOperations', () => {
}); });
test('cursorWordAccessibilityRight', () => { test('cursorWordAccessibilityRight', () => {
const EXPECTED = [ const EXPECTED = [' /* Just| some| more| text| a|+= 3| +5|-3| + 7| */ |'].join('\n');
'console|.log|(err|)|',
].join('\n');
const [text,] = deserializePipePositions(EXPECTED); const [text,] = deserializePipePositions(EXPECTED);
const actualStops = testRepeatedActionAndExtractPositions( const actualStops = testRepeatedActionAndExtractPositions(
text, text,
new Position(1, 1), new Position(1, 1),
ed => cursorWordAccessibilityRight(ed), ed => cursorWordAccessibilityRight(ed),
ed => ed.getPosition()!, ed => ed.getPosition()!,
ed => ed.getPosition()!.equals(new Position(1, 17)) ed => ed.getPosition()!.equals(new Position(1, 50))
); );
const actual = serializePipePositions(text, actualStops); const actual = serializePipePositions(text, actualStops);
assert.deepEqual(actual, EXPECTED); assert.deepEqual(actual, EXPECTED);
......
...@@ -177,7 +177,7 @@ export class CursorWordAccessibilityLeft extends WordLeftCommand { ...@@ -177,7 +177,7 @@ export class CursorWordAccessibilityLeft extends WordLeftCommand {
constructor() { constructor() {
super({ super({
inSelectionMode: false, inSelectionMode: false,
wordNavigationType: WordNavigationType.WordAcessibility, wordNavigationType: WordNavigationType.WordAccessibility,
id: 'cursorWordAccessibilityLeft', id: 'cursorWordAccessibilityLeft',
precondition: undefined, precondition: undefined,
kbOpts: { kbOpts: {
...@@ -198,7 +198,7 @@ export class CursorWordAccessibilityLeftSelect extends WordLeftCommand { ...@@ -198,7 +198,7 @@ export class CursorWordAccessibilityLeftSelect extends WordLeftCommand {
constructor() { constructor() {
super({ super({
inSelectionMode: true, inSelectionMode: true,
wordNavigationType: WordNavigationType.WordAcessibility, wordNavigationType: WordNavigationType.WordAccessibility,
id: 'cursorWordAccessibilitLeftSelecty', id: 'cursorWordAccessibilitLeftSelecty',
precondition: undefined, precondition: undefined,
kbOpts: { kbOpts: {
...@@ -297,7 +297,7 @@ export class CursorWordAccessibilityRight extends WordRightCommand { ...@@ -297,7 +297,7 @@ export class CursorWordAccessibilityRight extends WordRightCommand {
constructor() { constructor() {
super({ super({
inSelectionMode: false, inSelectionMode: false,
wordNavigationType: WordNavigationType.WordAcessibility, wordNavigationType: WordNavigationType.WordAccessibility,
id: 'cursorWordAccessibilityRight', id: 'cursorWordAccessibilityRight',
precondition: undefined, precondition: undefined,
kbOpts: { kbOpts: {
...@@ -318,7 +318,7 @@ export class CursorWordAccessibilityRightSelect extends WordRightCommand { ...@@ -318,7 +318,7 @@ export class CursorWordAccessibilityRightSelect extends WordRightCommand {
constructor() { constructor() {
super({ super({
inSelectionMode: true, inSelectionMode: true,
wordNavigationType: WordNavigationType.WordAcessibility, wordNavigationType: WordNavigationType.WordAccessibility,
id: 'cursorWordAccessibilityRightSelect', id: 'cursorWordAccessibilityRightSelect',
precondition: undefined, precondition: undefined,
kbOpts: { kbOpts: {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册