@gregorlohaus/codemirror-helix 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { type Extension } from "@codemirror/state";
2
+ import { type HelixOptions } from "./keymap";
3
+ export interface HelixConfig extends HelixOptions {
4
+ /** Render the bottom status line. Default: true. */
5
+ statusBar?: boolean;
6
+ /** Start the editor in Insert mode instead of Normal. Default: false. */
7
+ startInInsert?: boolean;
8
+ }
9
+ /**
10
+ * Helix-style modal editing for CodeMirror 6.
11
+ *
12
+ * Add to a CodeMirror instance's `extensions`. Requires a selection drawer
13
+ * (CodeMirror's `basicSetup` or `drawSelection()`) for multi-cursor rendering.
14
+ *
15
+ * ```ts
16
+ * import { basicSetup } from "codemirror";
17
+ * import { helix } from "codemirror-helix";
18
+ *
19
+ * new EditorView({ extensions: [basicSetup, helix()], parent });
20
+ * ```
21
+ */
22
+ export declare function helix(config?: HelixConfig): Extension;
23
+ export { getMode, getHelix, helixState } from "./state";
24
+ export type { HelixMode, HelixStateValue } from "./state";
25
+ export type { HelixOptions } from "./keymap";
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKhE,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,oDAAoD;IACpD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yEAAyE;IACzE,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,MAAM,GAAE,WAAgB,GAAG,SAAS,CAmBzD;AAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,41 @@
1
+ import { EditorState } from "@codemirror/state";
2
+ import { search } from "@codemirror/search";
3
+ import { helixState, registersField } from "./state";
4
+ import { blockCursor, helixStatusPanel, helixTheme, modeEditorClass } from "./view";
5
+ import { helixPrompt } from "./prompt";
6
+ import { helixKeymap } from "./keymap";
7
+ /**
8
+ * Helix-style modal editing for CodeMirror 6.
9
+ *
10
+ * Add to a CodeMirror instance's `extensions`. Requires a selection drawer
11
+ * (CodeMirror's `basicSetup` or `drawSelection()`) for multi-cursor rendering.
12
+ *
13
+ * ```ts
14
+ * import { basicSetup } from "codemirror";
15
+ * import { helix } from "codemirror-helix";
16
+ *
17
+ * new EditorView({ extensions: [basicSetup, helix()], parent });
18
+ * ```
19
+ */
20
+ export function helix(config = {}) {
21
+ return [
22
+ EditorState.allowMultipleSelections.of(true),
23
+ helixState.init(() => ({
24
+ mode: config.startInInsert ? "insert" : "normal",
25
+ pending: null,
26
+ count: 0,
27
+ register: null,
28
+ lastFind: null,
29
+ })),
30
+ registersField,
31
+ search(),
32
+ helixKeymap(config),
33
+ blockCursor,
34
+ modeEditorClass,
35
+ helixTheme,
36
+ ...(config.statusBar === false ? [] : [helixStatusPanel]),
37
+ helixPrompt,
38
+ ];
39
+ }
40
+ export { getMode, getHelix, helixState } from "./state";
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAqB,MAAM,UAAU,CAAC;AAS1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,KAAK,CAAC,SAAsB,EAAE;IAC5C,OAAO;QACL,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC,IAAI,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACrB,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YAChD,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QACH,cAAc;QACd,MAAM,EAAE;QACR,WAAW,CAAC,MAAM,CAAC;QACnB,WAAW;QACX,eAAe;QACf,UAAU;QACV,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACzD,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type EditorState, type Extension } from "@codemirror/state";
2
+ export interface HelixOptions {
3
+ /**
4
+ * Return true to let a pressed Escape fall through to other handlers instead
5
+ * of leaving Insert mode — e.g. when an autocompletion popup is open.
6
+ */
7
+ escapeGuard?: (state: EditorState) => boolean;
8
+ }
9
+ export declare function helixKeymap(options?: HelixOptions): Extension;
10
+ //# sourceMappingURL=keymap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keymap.d.ts","sourceRoot":"","sources":["../src/keymap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAc5F,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,OAAO,CAAC;CAC/C;AA6cD,wBAAgB,WAAW,CAAC,OAAO,GAAE,YAAiB,GAAG,SAAS,CAgFjE"}
package/dist/keymap.js ADDED
@@ -0,0 +1,521 @@
1
+ import { EditorSelection, Prec } from "@codemirror/state";
2
+ import { EditorView } from "@codemirror/view";
3
+ import { clearPending, getHelix, helixEffect, } from "./state";
4
+ import * as C from "./commands";
5
+ import * as M from "./motions";
6
+ import { textObject } from "./textobjects";
7
+ import { openPrompt } from "./prompt";
8
+ function reset(view, extra = {}) {
9
+ view.dispatch({ effects: helixEffect.of({ ...clearPending(), ...extra }) });
10
+ }
11
+ function setPending(view, pending) {
12
+ view.dispatch({ effects: helixEffect.of({ pending }) });
13
+ }
14
+ // --- find char ---------------------------------------------------------------
15
+ function doFind(view, kind, char, helix) {
16
+ const fn = (state, pos) => {
17
+ const found = M.findCharOnLine(state, pos, char, kind);
18
+ return found === null ? pos : found;
19
+ };
20
+ C.moveByPoint(view, fn, { extend: helix.mode === "select", span: false, count: helix.count || 1 });
21
+ }
22
+ // --- goto mode ---------------------------------------------------------------
23
+ function gotoAbsolute(view, pos, select) {
24
+ const anchor = select ? view.state.selection.main.anchor : pos;
25
+ view.dispatch({ selection: EditorSelection.range(anchor, pos), scrollIntoView: true });
26
+ }
27
+ function doGoto(view, key, helix) {
28
+ const select = helix.mode === "select";
29
+ const { state } = view;
30
+ switch (key) {
31
+ case "h":
32
+ C.moveByPoint(view, (s, p) => s.doc.lineAt(p).from, { extend: select, span: false, count: 1 });
33
+ break;
34
+ case "l":
35
+ C.moveByPoint(view, (s, p) => s.doc.lineAt(p).to, { extend: select, span: false, count: 1 });
36
+ break;
37
+ case "s":
38
+ C.moveByPoint(view, (s, p) => M.firstNonBlank(s, s.doc.lineAt(p).number), {
39
+ extend: select,
40
+ span: false,
41
+ count: 1,
42
+ });
43
+ break;
44
+ case "g":
45
+ gotoAbsolute(view, helix.count > 0 ? state.doc.line(Math.min(helix.count, state.doc.lines)).from : 0, select);
46
+ break;
47
+ case "e":
48
+ gotoAbsolute(view, state.doc.length, select);
49
+ break;
50
+ case "t":
51
+ gotoAbsolute(view, state.doc.lineAt(view.viewport.from).from, select);
52
+ break;
53
+ case "b":
54
+ gotoAbsolute(view, state.doc.lineAt(view.viewport.to).from, select);
55
+ break;
56
+ case "c":
57
+ gotoAbsolute(view, state.doc.lineAt(Math.floor((view.viewport.from + view.viewport.to) / 2)).from, select);
58
+ break;
59
+ default:
60
+ break;
61
+ }
62
+ }
63
+ // --- match mode --------------------------------------------------------------
64
+ function doMatch(view, key, helix) {
65
+ switch (key) {
66
+ case "m":
67
+ C.moveByPoint(view, (s, p) => {
68
+ const m = M.matchingBracket(s, p);
69
+ return m === null ? p : m;
70
+ }, { extend: helix.mode === "select", span: false, count: 1 });
71
+ reset(view);
72
+ return;
73
+ case "i":
74
+ setPending(view, { type: "textobject", around: false });
75
+ return;
76
+ case "a":
77
+ setPending(view, { type: "textobject", around: true });
78
+ return;
79
+ case "s":
80
+ setPending(view, { type: "surround-add" });
81
+ return;
82
+ case "d":
83
+ setPending(view, { type: "surround-delete" });
84
+ return;
85
+ case "r":
86
+ setPending(view, { type: "surround-replace" });
87
+ return;
88
+ default:
89
+ reset(view);
90
+ }
91
+ }
92
+ function doTextObject(view, key, around) {
93
+ const { state } = view;
94
+ const ranges = state.selection.ranges.map((r) => {
95
+ const span = textObject(state, r, key, around);
96
+ return span ? EditorSelection.range(span.from, span.to) : r;
97
+ });
98
+ view.dispatch({
99
+ selection: EditorSelection.create(ranges, state.selection.mainIndex),
100
+ scrollIntoView: true,
101
+ });
102
+ }
103
+ // --- view mode (z) -----------------------------------------------------------
104
+ function doView(view, key) {
105
+ if (key === "z")
106
+ C.scrollTo(view, "center");
107
+ else if (key === "t")
108
+ C.scrollTo(view, "start");
109
+ else if (key === "b")
110
+ C.scrollTo(view, "end");
111
+ }
112
+ // --- space menu (clipboard subset) ------------------------------------------
113
+ function doSpace(view, key) {
114
+ const text = view.state.sliceDoc(view.state.selection.main.from, view.state.selection.main.to);
115
+ if (key === "y") {
116
+ if (typeof navigator !== "undefined" && navigator.clipboard && text) {
117
+ void navigator.clipboard.writeText(text).catch(() => { });
118
+ }
119
+ }
120
+ else if (key === "p" || key === "P") {
121
+ if (typeof navigator !== "undefined" && navigator.clipboard) {
122
+ void navigator.clipboard.readText().then((clip) => {
123
+ if (!clip)
124
+ return;
125
+ const changes = view.state.selection.ranges.map((r) => {
126
+ const at = key === "P" ? r.from : r.to;
127
+ return { from: at, to: at, insert: clip };
128
+ });
129
+ const set = view.state.changes(changes);
130
+ view.dispatch({ changes: set, selection: view.state.selection.map(set) });
131
+ });
132
+ }
133
+ }
134
+ }
135
+ // --- pending dispatch --------------------------------------------------------
136
+ function handlePending(view, pending, key, helix) {
137
+ switch (pending.type) {
138
+ case "register":
139
+ if (key.length === 1)
140
+ view.dispatch({ effects: helixEffect.of({ register: key, pending: null }) });
141
+ else
142
+ reset(view);
143
+ return;
144
+ case "find":
145
+ if (key.length === 1) {
146
+ doFind(view, pending.kind, key, helix);
147
+ reset(view, { lastFind: { kind: pending.kind, char: key } });
148
+ }
149
+ else
150
+ reset(view);
151
+ return;
152
+ case "replace":
153
+ if (key.length === 1)
154
+ C.replaceChar(view, key);
155
+ reset(view);
156
+ return;
157
+ case "g":
158
+ doGoto(view, key, helix);
159
+ reset(view);
160
+ return;
161
+ case "z":
162
+ doView(view, key);
163
+ reset(view);
164
+ return;
165
+ case "space":
166
+ doSpace(view, key);
167
+ reset(view);
168
+ return;
169
+ case "m":
170
+ doMatch(view, key, helix);
171
+ return;
172
+ case "textobject":
173
+ doTextObject(view, key, pending.around);
174
+ reset(view);
175
+ return;
176
+ case "surround-add":
177
+ if (key.length === 1)
178
+ C.surroundAdd(view, key);
179
+ reset(view);
180
+ return;
181
+ case "surround-delete":
182
+ if (key.length === 1)
183
+ C.surroundDelete(view, key);
184
+ reset(view);
185
+ return;
186
+ case "surround-replace":
187
+ if (pending.from === undefined) {
188
+ view.dispatch({ effects: helixEffect.of({ pending: { type: "surround-replace", from: key } }) });
189
+ }
190
+ else {
191
+ C.surroundReplace(view, pending.from, key);
192
+ reset(view);
193
+ }
194
+ return;
195
+ }
196
+ }
197
+ // --- terminal commands -------------------------------------------------------
198
+ function handleAlt(view, key, helix) {
199
+ switch (key) {
200
+ case ";":
201
+ C.flipSelections(view);
202
+ return true;
203
+ case ":":
204
+ C.ensureForward(view);
205
+ return true;
206
+ case ",":
207
+ C.removePrimary(view);
208
+ return true;
209
+ case "c":
210
+ case "C":
211
+ C.copySelectionToLine(view, false);
212
+ return true;
213
+ case "`":
214
+ C.changeCase(view, "upper");
215
+ return true;
216
+ case ".":
217
+ if (helix.lastFind)
218
+ doFind(view, helix.lastFind.kind, helix.lastFind.char, helix);
219
+ return true;
220
+ case "k":
221
+ case "K": {
222
+ const base = view.state.selection;
223
+ openPrompt(view, {
224
+ label: "remove:",
225
+ onChange: (p) => C.filterSelections(view, p, false, base),
226
+ onSubmit: (p) => C.filterSelections(view, p, false, base),
227
+ onCancel: () => view.dispatch({ selection: base }),
228
+ });
229
+ return true;
230
+ }
231
+ default:
232
+ return false;
233
+ }
234
+ }
235
+ function handleCommand(view, key, event, helix) {
236
+ const extend = helix.mode === "select";
237
+ const count = helix.count || 1;
238
+ if (event.altKey)
239
+ return handleAlt(view, key, helix);
240
+ switch (key) {
241
+ // movement
242
+ case "h":
243
+ case "ArrowLeft":
244
+ C.moveByPoint(view, (_s, p) => Math.max(0, p - 1), { extend, span: false, count });
245
+ return true;
246
+ case "l":
247
+ case "ArrowRight":
248
+ C.moveByPoint(view, (s, p) => Math.min(s.doc.length, p + 1), { extend, span: false, count });
249
+ return true;
250
+ case "j":
251
+ case "ArrowDown":
252
+ C.moveVertical(view, true, { extend, count });
253
+ return true;
254
+ case "k":
255
+ case "ArrowUp":
256
+ C.moveVertical(view, false, { extend, count });
257
+ return true;
258
+ case "w":
259
+ C.moveByPoint(view, (s, p) => M.nextWordStart(s, p, false), { extend, span: true, count });
260
+ return true;
261
+ case "W":
262
+ C.moveByPoint(view, (s, p) => M.nextWordStart(s, p, true), { extend, span: true, count });
263
+ return true;
264
+ case "b":
265
+ C.moveByPoint(view, (s, p) => M.prevWordStart(s, p, false), { extend, span: true, count });
266
+ return true;
267
+ case "B":
268
+ C.moveByPoint(view, (s, p) => M.prevWordStart(s, p, true), { extend, span: true, count });
269
+ return true;
270
+ case "e":
271
+ C.moveByPoint(view, (s, p) => M.nextWordEnd(s, p, false), { extend, span: true, count });
272
+ return true;
273
+ case "E":
274
+ C.moveByPoint(view, (s, p) => M.nextWordEnd(s, p, true), { extend, span: true, count });
275
+ return true;
276
+ case "Home":
277
+ C.moveByPoint(view, (s, p) => s.doc.lineAt(p).from, { extend, span: false, count: 1 });
278
+ return true;
279
+ case "End":
280
+ C.moveByPoint(view, (s, p) => s.doc.lineAt(p).to, { extend, span: false, count: 1 });
281
+ return true;
282
+ // selection manipulation
283
+ case "x":
284
+ C.selectLine(view, count);
285
+ return true;
286
+ case "X":
287
+ C.extendToLineBounds(view);
288
+ return true;
289
+ case "%":
290
+ C.selectAll(view);
291
+ return true;
292
+ case ";":
293
+ C.collapseToCursor(view);
294
+ return true;
295
+ case ",":
296
+ C.keepPrimary(view);
297
+ return true;
298
+ case "(":
299
+ C.rotatePrimary(view, false);
300
+ return true;
301
+ case ")":
302
+ C.rotatePrimary(view, true);
303
+ return true;
304
+ case "_":
305
+ C.trimSelections(view);
306
+ return true;
307
+ case "C":
308
+ C.copySelectionToLine(view, true);
309
+ return true;
310
+ // mode switches
311
+ case "v":
312
+ view.dispatch({ effects: helixEffect.of({ mode: extend ? "normal" : "select" }) });
313
+ return true;
314
+ case "i":
315
+ C.enterInsert(view, (_s, r) => r.from);
316
+ return true;
317
+ case "a":
318
+ C.enterInsert(view, (_s, r) => r.to);
319
+ return true;
320
+ case "I":
321
+ C.enterInsert(view, (s, r) => M.firstNonBlank(s, s.doc.lineAt(r.head).number));
322
+ return true;
323
+ case "A":
324
+ C.enterInsert(view, (s, r) => s.doc.lineAt(r.head).to);
325
+ return true;
326
+ case "o":
327
+ C.openLine(view, false);
328
+ return true;
329
+ case "O":
330
+ C.openLine(view, true);
331
+ return true;
332
+ // edits
333
+ case "d":
334
+ case "Delete":
335
+ C.deleteSelection(view);
336
+ return true;
337
+ case "c":
338
+ C.deleteSelection(view, { insert: true });
339
+ return true;
340
+ case "y":
341
+ C.yankSelection(view);
342
+ return true;
343
+ case "p":
344
+ C.paste(view, false);
345
+ return true;
346
+ case "P":
347
+ C.paste(view, true);
348
+ return true;
349
+ case "R":
350
+ C.replaceWithYank(view);
351
+ return true;
352
+ case "~":
353
+ C.changeCase(view, "toggle");
354
+ return true;
355
+ case "`":
356
+ C.changeCase(view, "lower");
357
+ return true;
358
+ case "J":
359
+ C.joinLines(view);
360
+ return true;
361
+ case ">":
362
+ C.indent(view, false);
363
+ return true;
364
+ case "<":
365
+ C.indent(view, true);
366
+ return true;
367
+ case "u":
368
+ C.undoCmd(view);
369
+ return true;
370
+ case "U":
371
+ C.redoCmd(view);
372
+ return true;
373
+ // search
374
+ case "/":
375
+ openPrompt(view, { label: "/", onSubmit: (q) => C.runSearch(view, q, false) });
376
+ return true;
377
+ case "?":
378
+ openPrompt(view, { label: "?", onSubmit: (q) => C.runSearch(view, q, true) });
379
+ return true;
380
+ case "n":
381
+ C.searchNext(view, false);
382
+ return true;
383
+ case "N":
384
+ C.searchNext(view, true);
385
+ return true;
386
+ case "*":
387
+ C.searchSelection(view, false);
388
+ return true;
389
+ // regex selection (live preview against the selection captured here)
390
+ case "s": {
391
+ const base = view.state.selection;
392
+ openPrompt(view, {
393
+ label: "select:",
394
+ onChange: (p) => C.selectRegexInSelections(view, p, base),
395
+ onSubmit: (p) => C.selectRegexInSelections(view, p, base),
396
+ onCancel: () => view.dispatch({ selection: base }),
397
+ });
398
+ return true;
399
+ }
400
+ case "S": {
401
+ const base = view.state.selection;
402
+ openPrompt(view, {
403
+ label: "split:",
404
+ onChange: (p) => C.splitOnRegex(view, p, base),
405
+ onSubmit: (p) => C.splitOnRegex(view, p, base),
406
+ onCancel: () => view.dispatch({ selection: base }),
407
+ });
408
+ return true;
409
+ }
410
+ case "K": {
411
+ const base = view.state.selection;
412
+ openPrompt(view, {
413
+ label: "keep:",
414
+ onChange: (p) => C.filterSelections(view, p, true, base),
415
+ onSubmit: (p) => C.filterSelections(view, p, true, base),
416
+ onCancel: () => view.dispatch({ selection: base }),
417
+ });
418
+ return true;
419
+ }
420
+ case "Escape":
421
+ C.collapseToCursor(view);
422
+ view.dispatch({ effects: helixEffect.of({ mode: "normal", ...clearPending() }) });
423
+ return true;
424
+ default:
425
+ return false;
426
+ }
427
+ }
428
+ function handleCtrl(view, key, helix) {
429
+ const extend = helix.mode === "select";
430
+ switch (key) {
431
+ case "d":
432
+ C.halfPage(view, true, extend);
433
+ return true;
434
+ case "u":
435
+ C.halfPage(view, false, extend);
436
+ return true;
437
+ case "f":
438
+ C.moveVertical(view, true, { extend, count: 20 });
439
+ return true;
440
+ case "b":
441
+ C.moveVertical(view, false, { extend, count: 20 });
442
+ return true;
443
+ default:
444
+ return false;
445
+ }
446
+ }
447
+ // --- top-level keydown -------------------------------------------------------
448
+ export function helixKeymap(options = {}) {
449
+ return Prec.highest(EditorView.domEventHandlers({
450
+ keydown(event, view) {
451
+ if (event.isComposing)
452
+ return false;
453
+ const helix = getHelix(view.state);
454
+ if (helix.mode === "insert") {
455
+ if (event.key === "Escape") {
456
+ if (options.escapeGuard?.(view.state))
457
+ return false;
458
+ view.dispatch({ effects: helixEffect.of({ mode: "normal", ...clearPending() }) });
459
+ event.preventDefault();
460
+ return true;
461
+ }
462
+ return false;
463
+ }
464
+ if (event.metaKey)
465
+ return false;
466
+ const key = event.key;
467
+ if (helix.pending) {
468
+ event.preventDefault();
469
+ handlePending(view, helix.pending, key, helix);
470
+ return true;
471
+ }
472
+ if (event.ctrlKey) {
473
+ if (handleCtrl(view, key, helix)) {
474
+ event.preventDefault();
475
+ reset(view);
476
+ return true;
477
+ }
478
+ return false;
479
+ }
480
+ // count digits (0 only continues an existing count)
481
+ if (!event.altKey && /^[0-9]$/.test(key) && !(key === "0" && helix.count === 0)) {
482
+ event.preventDefault();
483
+ view.dispatch({ effects: helixEffect.of({ count: helix.count * 10 + Number(key) }) });
484
+ return true;
485
+ }
486
+ // prefixes awaiting another key
487
+ if (!event.altKey) {
488
+ const prefix = {
489
+ g: { type: "g" },
490
+ m: { type: "m" },
491
+ z: { type: "z" },
492
+ " ": { type: "space" },
493
+ '"': { type: "register" },
494
+ f: { type: "find", kind: "f" },
495
+ t: { type: "find", kind: "t" },
496
+ F: { type: "find", kind: "F" },
497
+ T: { type: "find", kind: "T" },
498
+ r: { type: "replace" },
499
+ };
500
+ const pending = prefix[key];
501
+ if (pending) {
502
+ setPending(view, pending);
503
+ event.preventDefault();
504
+ return true;
505
+ }
506
+ }
507
+ if (handleCommand(view, key, event, helix)) {
508
+ event.preventDefault();
509
+ reset(view);
510
+ return true;
511
+ }
512
+ // Swallow stray printable keys so Normal/Select mode never types.
513
+ if (key.length === 1 || ["Enter", "Backspace", "Tab", "Delete"].includes(key)) {
514
+ event.preventDefault();
515
+ return true;
516
+ }
517
+ return false;
518
+ },
519
+ }));
520
+ }
521
+ //# sourceMappingURL=keymap.js.map