Skip to content

Commit e8ef581

Browse files
Add directions
1 parent 61e5e3a commit e8ef581

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

packages/cursorless-engine/src/customCommandGrammar/generated/grammar.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ function id(d: any[]): any { return d[0]; }
66
declare var simpleActionName: any;
77
declare var bringMove: any;
88
declare var insertionMode: any;
9+
declare var direction: any;
910
declare var simpleScopeTypeType: any;
1011
declare var pairedDelimiter: any;
1112
declare var simpleMarkType: any;
@@ -81,16 +82,12 @@ const grammar: Grammar = {
8182
{"name": "primitiveTarget", "symbols": ["primitiveTarget$ebnf$2", "mark"], "postprocess":
8283
([modifiers, mark]) => partialPrimitiveTargetDescriptor(modifiers, mark)
8384
},
84-
{"name": "modifier", "symbols": ["containingScopeModifier"], "postprocess":
85-
([containingScopeModifier]) => containingScopeModifier
86-
},
87-
{"name": "modifier", "symbols": ["relativeScopeModifier"], "postprocess":
88-
([relativeScopeModifier]) => relativeScopeModifier
89-
},
85+
{"name": "modifier", "symbols": ["containingScopeModifier"], "postprocess": id},
86+
{"name": "modifier", "symbols": ["relativeScopeModifier"], "postprocess": id},
9087
{"name": "containingScopeModifier", "symbols": ["scopeType"], "postprocess":
9188
([scopeType]) => containingScopeModifier(scopeType)
9289
},
93-
{"name": "relativeScopeModifier", "symbols": ["direction", "scopeType"], "postprocess":
90+
{"name": "relativeScopeModifier", "symbols": [(lexer.has("direction") ? {type: "direction"} : direction), "scopeType"], "postprocess":
9491
([direction, scopeType]) => relativeScopeModifier(scopeType, direction)
9592
},
9693
{"name": "scopeType", "symbols": [(lexer.has("simpleScopeTypeType") ? {type: "simpleScopeTypeType"} : simpleScopeTypeType)], "postprocess":
@@ -99,8 +96,6 @@ const grammar: Grammar = {
9996
{"name": "scopeType", "symbols": [(lexer.has("pairedDelimiter") ? {type: "pairedDelimiter"} : pairedDelimiter)], "postprocess":
10097
([delimiter]) => surroundingPairScopeType(delimiter)
10198
},
102-
{"name": "direction", "symbols": [{"literal":"next"}], "postprocess": ([]) => "forward"},
103-
{"name": "direction", "symbols": [{"literal":"previous"}], "postprocess": ([]) => "backward"},
10499
{"name": "mark", "symbols": [(lexer.has("simpleMarkType") ? {type: "simpleMarkType"} : simpleMarkType)], "postprocess":
105100
([simpleMarkType]) => simplePartialMark(simpleMarkType)
106101
},

packages/cursorless-engine/src/customCommandGrammar/grammar.ne

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,15 @@ primitiveTarget -> modifier:+ mark {%
5555

5656
# --------------------------- Modifiers ---------------------------
5757

58-
modifier -> containingScopeModifier {%
59-
([containingScopeModifier]) => containingScopeModifier
60-
%}
58+
modifier -> containingScopeModifier {% id %}
6159

62-
modifier -> relativeScopeModifier {%
63-
([relativeScopeModifier]) => relativeScopeModifier
64-
%}
60+
modifier -> relativeScopeModifier {% id %}
6561

6662
containingScopeModifier -> scopeType {%
6763
([scopeType]) => containingScopeModifier(scopeType)
6864
%}
6965

70-
relativeScopeModifier -> direction scopeType {%
66+
relativeScopeModifier -> %direction scopeType {%
7167
([direction, scopeType]) => relativeScopeModifier(scopeType, direction)
7268
%}
7369

@@ -81,11 +77,6 @@ scopeType -> %pairedDelimiter {%
8177
([delimiter]) => surroundingPairScopeType(delimiter)
8278
%}
8379

84-
# --------------------------- Directions ---------------------------
85-
86-
direction -> "next" {% ([]) => "forward" %}
87-
88-
direction -> "previous" {% ([]) => "backward" %}
8980

9081
# --------------------------- Marks ---------------------------
9182

packages/cursorless-engine/src/customCommandGrammar/lexer.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,22 @@ for (const [mark, spokenForm] of Object.entries(marks)) {
8989
}
9090
}
9191

92+
defaultSpokenFormMap.modifierExtra.next.spokenForms.forEach((spokenForm) => {
93+
tokens[spokenForm] = {
94+
type: "direction",
95+
value: "forward",
96+
};
97+
});
98+
99+
defaultSpokenFormMap.modifierExtra.previous.spokenForms.forEach(
100+
(spokenForm) => {
101+
tokens[spokenForm] = {
102+
type: "direction",
103+
value: "backward",
104+
};
105+
},
106+
);
107+
92108
export const lexer = new CommandLexer({
93109
ws: /[ \t]+/,
94110
placeholderTarget: {

0 commit comments

Comments
 (0)