@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":"keymap.js","sourceRoot":"","sources":["../src/keymap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { EditorState } from "@codemirror/state";
2
+ export type CharClass = "space" | "word" | "punct";
3
+ export declare function charAt(state: EditorState, i: number): string;
4
+ export declare function classOf(ch: string): CharClass;
5
+ /** Helix `w`/`W`: move to the start of the next word. */
6
+ export declare function nextWordStart(state: EditorState, pos: number, big: boolean): number;
7
+ /** Helix `b`/`B`: move to the start of the previous word. */
8
+ export declare function prevWordStart(state: EditorState, pos: number, big: boolean): number;
9
+ /** Helix `e`/`E`: move to the end of the next word. */
10
+ export declare function nextWordEnd(state: EditorState, pos: number, big: boolean): number;
11
+ export declare function firstNonBlank(state: EditorState, line: number): number;
12
+ /** f/t/F/T: find `target` from `pos`. Returns null if not found on the line. */
13
+ export declare function findCharOnLine(state: EditorState, pos: number, target: string, kind: "f" | "t" | "F" | "T"): number | null;
14
+ export declare function pairFor(ch: string): {
15
+ open: string;
16
+ close: string;
17
+ } | null;
18
+ /** Scan forward for the close that matches an open at/after `pos` (nesting-aware). */
19
+ export declare function findClose(state: EditorState, from: number, open: string, close: string): number | null;
20
+ /** Scan backward for the open that matches a close at/before `pos` (nesting-aware). */
21
+ export declare function findOpen(state: EditorState, from: number, open: string, close: string): number | null;
22
+ /** `mm`: position of the bracket matching the one at/under `pos`, or null. */
23
+ export declare function matchingBracket(state: EditorState, pos: number): number | null;
24
+ /** Paragraph bounds (blank-line delimited) containing `pos`. */
25
+ export declare function paragraphAt(state: EditorState, pos: number): {
26
+ from: number;
27
+ to: number;
28
+ };
29
+ //# sourceMappingURL=motions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motions.d.ts","sourceRoot":"","sources":["../src/motions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAI7C;AAYD,yDAAyD;AACzD,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAYnF;AAED,6DAA6D;AAC7D,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAQnF;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAOjF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAC1B,MAAM,GAAG,IAAI,CAoBf;AAaD,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE1E;AAED,sFAAsF;AACtF,wBAAgB,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYtG;AAED,uFAAuF;AACvF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWrG;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS9E;AAuBD,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAQzF"}
@@ -0,0 +1,184 @@
1
+ export function charAt(state, i) {
2
+ return i >= 0 && i < state.doc.length ? state.doc.sliceString(i, i + 1) : "";
3
+ }
4
+ export function classOf(ch) {
5
+ if (ch === "" || /\s/.test(ch))
6
+ return "space";
7
+ if (/[\p{L}\p{N}_]/u.test(ch))
8
+ return "word";
9
+ return "punct";
10
+ }
11
+ // For WORD (big) motions only whitespace separates tokens.
12
+ function bigClassOf(ch) {
13
+ return ch === "" || /\s/.test(ch) ? "space" : "word";
14
+ }
15
+ function classAt(state, i, big) {
16
+ const ch = charAt(state, i);
17
+ return big ? bigClassOf(ch) : classOf(ch);
18
+ }
19
+ /** Helix `w`/`W`: move to the start of the next word. */
20
+ export function nextWordStart(state, pos, big) {
21
+ const len = state.doc.length;
22
+ let i = pos;
23
+ if (i >= len)
24
+ return len;
25
+ if (classAt(state, i, big) === "space") {
26
+ while (i < len && classAt(state, i, big) === "space")
27
+ i++;
28
+ }
29
+ else {
30
+ const cls = classAt(state, i, big);
31
+ while (i < len && classAt(state, i, big) === cls)
32
+ i++;
33
+ while (i < len && classAt(state, i, big) === "space")
34
+ i++;
35
+ }
36
+ return i;
37
+ }
38
+ /** Helix `b`/`B`: move to the start of the previous word. */
39
+ export function prevWordStart(state, pos, big) {
40
+ let i = pos;
41
+ if (i <= 0)
42
+ return 0;
43
+ i--;
44
+ while (i > 0 && classAt(state, i, big) === "space")
45
+ i--;
46
+ const cls = classAt(state, i, big);
47
+ while (i > 0 && classAt(state, i - 1, big) === cls)
48
+ i--;
49
+ return i;
50
+ }
51
+ /** Helix `e`/`E`: move to the end of the next word. */
52
+ export function nextWordEnd(state, pos, big) {
53
+ const len = state.doc.length;
54
+ let i = pos + 1;
55
+ while (i < len && classAt(state, i, big) === "space")
56
+ i++;
57
+ const cls = classAt(state, i, big);
58
+ while (i < len && classAt(state, i, big) === cls)
59
+ i++;
60
+ return Math.min(i, len);
61
+ }
62
+ export function firstNonBlank(state, line) {
63
+ const l = state.doc.line(line);
64
+ return l.from + (l.text.match(/^\s*/)?.[0].length ?? 0);
65
+ }
66
+ /** f/t/F/T: find `target` from `pos`. Returns null if not found on the line. */
67
+ export function findCharOnLine(state, pos, target, kind) {
68
+ const line = state.doc.lineAt(pos);
69
+ const forward = kind === "f" || kind === "t";
70
+ const till = kind === "t" || kind === "T";
71
+ if (forward) {
72
+ let i = pos + 1;
73
+ // `t` should skip an adjacent target so repeated presses advance.
74
+ if (till && charAt(state, i) === target)
75
+ i++;
76
+ for (; i <= line.to; i++) {
77
+ if (charAt(state, i) === target)
78
+ return till ? i - 1 : i;
79
+ }
80
+ }
81
+ else {
82
+ let i = pos - 1;
83
+ if (till && charAt(state, i) === target)
84
+ i--;
85
+ for (; i >= line.from; i--) {
86
+ if (charAt(state, i) === target)
87
+ return till ? i + 1 : i;
88
+ }
89
+ }
90
+ return null;
91
+ }
92
+ const PAIRS = {
93
+ "(": { open: "(", close: ")" },
94
+ ")": { open: "(", close: ")" },
95
+ "[": { open: "[", close: "]" },
96
+ "]": { open: "[", close: "]" },
97
+ "{": { open: "{", close: "}" },
98
+ "}": { open: "{", close: "}" },
99
+ "<": { open: "<", close: ">" },
100
+ ">": { open: "<", close: ">" },
101
+ };
102
+ export function pairFor(ch) {
103
+ return PAIRS[ch] ?? null;
104
+ }
105
+ /** Scan forward for the close that matches an open at/after `pos` (nesting-aware). */
106
+ export function findClose(state, from, open, close) {
107
+ const len = state.doc.length;
108
+ let depth = 0;
109
+ for (let i = from; i < len; i++) {
110
+ const ch = charAt(state, i);
111
+ if (ch === open)
112
+ depth++;
113
+ else if (ch === close) {
114
+ depth--;
115
+ if (depth === 0)
116
+ return i;
117
+ }
118
+ }
119
+ return null;
120
+ }
121
+ /** Scan backward for the open that matches a close at/before `pos` (nesting-aware). */
122
+ export function findOpen(state, from, open, close) {
123
+ let depth = 0;
124
+ for (let i = from; i >= 0; i--) {
125
+ const ch = charAt(state, i);
126
+ if (ch === close)
127
+ depth++;
128
+ else if (ch === open) {
129
+ depth--;
130
+ if (depth === 0)
131
+ return i;
132
+ }
133
+ }
134
+ return null;
135
+ }
136
+ /** `mm`: position of the bracket matching the one at/under `pos`, or null. */
137
+ export function matchingBracket(state, pos) {
138
+ for (const probe of [pos, pos - 1]) {
139
+ const ch = charAt(state, probe);
140
+ const pair = pairFor(ch);
141
+ if (!pair)
142
+ continue;
143
+ if (ch === pair.open)
144
+ return findClose2(state, probe, pair.open, pair.close);
145
+ return findOpen2(state, probe, pair.open, pair.close);
146
+ }
147
+ return null;
148
+ }
149
+ function findClose2(state, openPos, open, close) {
150
+ const len = state.doc.length;
151
+ let depth = 0;
152
+ for (let i = openPos; i < len; i++) {
153
+ const ch = charAt(state, i);
154
+ if (ch === open)
155
+ depth++;
156
+ else if (ch === close && --depth === 0)
157
+ return i;
158
+ }
159
+ return null;
160
+ }
161
+ function findOpen2(state, closePos, open, close) {
162
+ let depth = 0;
163
+ for (let i = closePos; i >= 0; i--) {
164
+ const ch = charAt(state, i);
165
+ if (ch === close)
166
+ depth++;
167
+ else if (ch === open && --depth === 0)
168
+ return i;
169
+ }
170
+ return null;
171
+ }
172
+ /** Paragraph bounds (blank-line delimited) containing `pos`. */
173
+ export function paragraphAt(state, pos) {
174
+ const { doc } = state;
175
+ let startLine = doc.lineAt(pos).number;
176
+ let endLine = startLine;
177
+ const blank = (n) => doc.line(n).text.trim() === "";
178
+ while (startLine > 1 && !blank(startLine - 1))
179
+ startLine--;
180
+ while (endLine < doc.lines && !blank(endLine + 1))
181
+ endLine++;
182
+ return { from: doc.line(startLine).from, to: doc.line(endLine).to };
183
+ }
184
+ //# sourceMappingURL=motions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motions.js","sourceRoot":"","sources":["../src/motions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { StateField } from "@codemirror/state";
2
+ import { EditorView } from "@codemirror/view";
3
+ export interface PromptConfig {
4
+ label: string;
5
+ initial?: string;
6
+ onSubmit: (value: string, view: EditorView) => void;
7
+ onChange?: (value: string, view: EditorView) => void;
8
+ onCancel?: (view: EditorView) => void;
9
+ }
10
+ export declare function openPrompt(view: EditorView, config: PromptConfig): void;
11
+ export declare const helixPrompt: (import("@codemirror/state").Extension | StateField<PromptConfig | null>)[];
12
+ export declare function isPromptOpen(view: EditorView): boolean;
13
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAyB,MAAM,kBAAkB,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IACrD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACvC;AAgBD,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,QAQhE;AA0CD,eAAO,MAAM,WAAW,6EAGvB,CAAC;AAEF,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAEtD"}
package/dist/prompt.js ADDED
@@ -0,0 +1,68 @@
1
+ import { StateEffect, StateField } from "@codemirror/state";
2
+ import { showPanel } from "@codemirror/view";
3
+ const openPromptEffect = StateEffect.define();
4
+ const closePromptEffect = StateEffect.define();
5
+ const promptState = StateField.define({
6
+ create: () => null,
7
+ update(value, tr) {
8
+ for (const effect of tr.effects) {
9
+ if (effect.is(openPromptEffect))
10
+ return effect.value;
11
+ if (effect.is(closePromptEffect))
12
+ return null;
13
+ }
14
+ return value;
15
+ },
16
+ });
17
+ export function openPrompt(view, config) {
18
+ view.dispatch({ effects: openPromptEffect.of(config) });
19
+ // Focus after the panel mounts.
20
+ requestAnimationFrame(() => {
21
+ const input = view.dom.querySelector(".cm-helix-prompt input");
22
+ input?.focus();
23
+ input?.select();
24
+ });
25
+ }
26
+ function closePrompt(view) {
27
+ view.dispatch({ effects: closePromptEffect.of(null) });
28
+ view.focus();
29
+ }
30
+ function promptPanel(view) {
31
+ const config = view.state.field(promptState);
32
+ const dom = document.createElement("form");
33
+ dom.className = "cm-helix-prompt";
34
+ const label = document.createElement("label");
35
+ label.textContent = config?.label ?? "";
36
+ const input = document.createElement("input");
37
+ input.type = "text";
38
+ input.value = config?.initial ?? "";
39
+ input.spellcheck = false;
40
+ input.autocomplete = "off";
41
+ dom.append(label, input);
42
+ input.addEventListener("input", () => {
43
+ view.state.field(promptState)?.onChange?.(input.value, view);
44
+ });
45
+ input.addEventListener("keydown", (event) => {
46
+ if (event.key === "Enter") {
47
+ event.preventDefault();
48
+ const current = view.state.field(promptState);
49
+ closePrompt(view);
50
+ current?.onSubmit(input.value, view);
51
+ }
52
+ else if (event.key === "Escape") {
53
+ event.preventDefault();
54
+ const current = view.state.field(promptState);
55
+ closePrompt(view);
56
+ current?.onCancel?.(view);
57
+ }
58
+ });
59
+ return { dom, top: false };
60
+ }
61
+ export const helixPrompt = [
62
+ promptState,
63
+ showPanel.from(promptState, (config) => (config ? promptPanel : null)),
64
+ ];
65
+ export function isPromptOpen(view) {
66
+ return view.state.field(promptState) !== null;
67
+ }
68
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../src/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { StateField, type EditorState } from "@codemirror/state";
2
+ export type HelixMode = "normal" | "insert" | "select";
3
+ /** A multi-key prefix or a command waiting for one more keystroke. */
4
+ export type Pending = {
5
+ type: "g";
6
+ } | {
7
+ type: "m";
8
+ } | {
9
+ type: "z";
10
+ } | {
11
+ type: "space";
12
+ } | {
13
+ type: "find";
14
+ kind: "f" | "t" | "F" | "T";
15
+ } | {
16
+ type: "replace";
17
+ } | {
18
+ type: "register";
19
+ } | {
20
+ type: "textobject";
21
+ around: boolean;
22
+ } | {
23
+ type: "surround-add";
24
+ } | {
25
+ type: "surround-delete";
26
+ } | {
27
+ type: "surround-replace";
28
+ from?: string;
29
+ };
30
+ export interface LastFind {
31
+ kind: "f" | "t" | "F" | "T";
32
+ char: string;
33
+ }
34
+ export interface HelixStateValue {
35
+ mode: HelixMode;
36
+ pending: Pending | null;
37
+ count: number;
38
+ register: string | null;
39
+ lastFind: LastFind | null;
40
+ }
41
+ /** Patch the transient Helix state. */
42
+ export declare const helixEffect: import("@codemirror/state").StateEffectType<Partial<HelixStateValue>>;
43
+ export declare const helixState: StateField<HelixStateValue>;
44
+ export declare function getHelix(state: EditorState): HelixStateValue;
45
+ export declare function getMode(state: EditorState): HelixMode;
46
+ export declare const setRegister: import("@codemirror/state").StateEffectType<{
47
+ name: string;
48
+ text: string;
49
+ }>;
50
+ export declare const registersField: StateField<Map<string, string>>;
51
+ export declare function readRegister(state: EditorState, name: string | null): string;
52
+ /** Clear any pending prefix / count / register selection. */
53
+ export declare function clearPending(): Partial<HelixStateValue>;
54
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE9E,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvD,sEAAsE;AACtE,MAAM,MAAM,OAAO,GACf;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GACb;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CAC3B;AAUD,uCAAuC;AACvC,eAAO,MAAM,WAAW,uEAAiD,CAAC;AAE1E,eAAO,MAAM,UAAU,6BASrB,CAAC;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,CAE5D;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAErD;AAID,eAAO,MAAM,WAAW;UAA8B,MAAM;UAAQ,MAAM;EAAK,CAAC;AAEhF,eAAO,MAAM,cAAc,iCAYzB,CAAC;AAEH,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE5E;AAED,6DAA6D;AAC7D,wBAAgB,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC,CAEvD"}
package/dist/state.js ADDED
@@ -0,0 +1,50 @@
1
+ import { StateEffect, StateField } from "@codemirror/state";
2
+ const initial = {
3
+ mode: "normal",
4
+ pending: null,
5
+ count: 0,
6
+ register: null,
7
+ lastFind: null,
8
+ };
9
+ /** Patch the transient Helix state. */
10
+ export const helixEffect = StateEffect.define();
11
+ export const helixState = StateField.define({
12
+ create: () => initial,
13
+ update(value, tr) {
14
+ let next = value;
15
+ for (const effect of tr.effects) {
16
+ if (effect.is(helixEffect))
17
+ next = { ...next, ...effect.value };
18
+ }
19
+ return next;
20
+ },
21
+ });
22
+ export function getHelix(state) {
23
+ return state.field(helixState);
24
+ }
25
+ export function getMode(state) {
26
+ return state.field(helixState).mode;
27
+ }
28
+ // --- registers ---------------------------------------------------------------
29
+ export const setRegister = StateEffect.define();
30
+ export const registersField = StateField.define({
31
+ create: () => new Map(),
32
+ update(value, tr) {
33
+ let next = value;
34
+ for (const effect of tr.effects) {
35
+ if (effect.is(setRegister)) {
36
+ next = new Map(next);
37
+ next.set(effect.value.name, effect.value.text);
38
+ }
39
+ }
40
+ return next;
41
+ },
42
+ });
43
+ export function readRegister(state, name) {
44
+ return state.field(registersField).get(name ?? '"') ?? "";
45
+ }
46
+ /** Clear any pending prefix / count / register selection. */
47
+ export function clearPending() {
48
+ return { pending: null, count: 0, register: null };
49
+ }
50
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AA+B9E,MAAM,OAAO,GAAoB;IAC/B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,IAAI;IACb,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;CACf,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAA4B,CAAC;AAE1E,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAkB;IAC3D,MAAM,EAAE,GAAG,EAAE,CAAC,OAAO;IACrB,MAAM,CAAC,KAAK,EAAE,EAAE;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC;gBAAE,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAClE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,QAAQ,CAAC,KAAkB;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAAkB;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,gFAAgF;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAkC,CAAC;AAEhF,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAsB;IACnE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE;IACvB,MAAM,CAAC,KAAK,EAAE,EAAE;QACd,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,KAAK,MAAM,MAAM,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC3B,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,KAAkB,EAAE,IAAmB;IAClE,OAAO,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,YAAY;IAC1B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACrD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { EditorState, SelectionRange } from "@codemirror/state";
2
+ export interface Span {
3
+ from: number;
4
+ to: number;
5
+ }
6
+ /**
7
+ * Resolve a Helix textobject for `mi{obj}` / `ma{obj}`.
8
+ * Returns null when nothing sensible encloses the cursor.
9
+ */
10
+ export declare function textObject(state: EditorState, range: SelectionRange, obj: string, around: boolean): Span | null;
11
+ export { pairFor } from "./motions";
12
+ //# sourceMappingURL=textobjects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textobjects.d.ts","sourceRoot":"","sources":["../src/textobjects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AA4ED;;;GAGG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,GACd,IAAI,GAAG,IAAI,CAiCb;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,116 @@
1
+ import { charAt, classOf, findClose, findOpen, pairFor, paragraphAt } from "./motions";
2
+ function wordSpan(state, pos, around) {
3
+ const cls = classOf(charAt(state, pos));
4
+ if (cls === "space")
5
+ return null;
6
+ let from = pos;
7
+ let to = pos;
8
+ while (from > 0 && classOf(charAt(state, from - 1)) === cls)
9
+ from--;
10
+ while (to < state.doc.length && classOf(charAt(state, to)) === cls)
11
+ to++;
12
+ if (around) {
13
+ const start = to;
14
+ while (to < state.doc.length && classOf(charAt(state, to)) === "space")
15
+ to++;
16
+ if (to === start)
17
+ while (from > 0 && classOf(charAt(state, from - 1)) === "space")
18
+ from--;
19
+ }
20
+ return { from, to };
21
+ }
22
+ function pairSpan(state, pos, open, close, around) {
23
+ // If we sit on a bracket, anchor the search to it.
24
+ const here = charAt(state, pos);
25
+ const openPos = here === open ? pos : findOpen(state, here === close ? pos - 1 : pos, open, close);
26
+ if (openPos === null)
27
+ return null;
28
+ const closePos = findClose(state, openPos, open, close);
29
+ if (closePos === null)
30
+ return null;
31
+ return around ? { from: openPos, to: closePos + 1 } : { from: openPos + 1, to: closePos };
32
+ }
33
+ function quoteSpan(state, pos, quote, around) {
34
+ const line = state.doc.lineAt(pos);
35
+ const positions = [];
36
+ for (let i = line.from; i <= line.to; i++)
37
+ if (charAt(state, i) === quote)
38
+ positions.push(i);
39
+ for (let i = 0; i + 1 < positions.length; i += 2) {
40
+ const a = positions[i];
41
+ const b = positions[i + 1];
42
+ if (pos >= a && pos <= b + 1) {
43
+ return around ? { from: a, to: b + 1 } : { from: a + 1, to: b };
44
+ }
45
+ }
46
+ return null;
47
+ }
48
+ function paragraphSpan(state, pos, around) {
49
+ const span = paragraphAt(state, pos);
50
+ if (!around)
51
+ return span;
52
+ let to = span.to;
53
+ while (to < state.doc.length && state.doc.lineAt(to + 1).text.trim() === "") {
54
+ to = state.doc.lineAt(to + 1).to;
55
+ }
56
+ return { from: span.from, to };
57
+ }
58
+ const QUOTES = new Set(['"', "'", "`"]);
59
+ /** Innermost enclosing bracket/quote pair (Helix `mi m` / `ma m`). */
60
+ function nearestPair(state, pos, around) {
61
+ const candidates = [];
62
+ for (const ch of ["(", "[", "{", "<"]) {
63
+ const span = pairSpan(state, pos, ch, pairFor(ch).close, around);
64
+ if (span)
65
+ candidates.push(span);
66
+ }
67
+ for (const q of QUOTES) {
68
+ const span = quoteSpan(state, pos, q, around);
69
+ if (span)
70
+ candidates.push(span);
71
+ }
72
+ if (!candidates.length)
73
+ return null;
74
+ // Smallest enclosing span wins.
75
+ return candidates.sort((a, b) => b.from - a.from || a.to - b.to)[0];
76
+ }
77
+ /**
78
+ * Resolve a Helix textobject for `mi{obj}` / `ma{obj}`.
79
+ * Returns null when nothing sensible encloses the cursor.
80
+ */
81
+ export function textObject(state, range, obj, around) {
82
+ const pos = range.head > range.from ? range.head - 1 : range.head;
83
+ switch (obj) {
84
+ case "w":
85
+ case "W":
86
+ return wordSpan(state, range.head, around);
87
+ case "p":
88
+ return paragraphSpan(state, range.head, around);
89
+ case "(":
90
+ case ")":
91
+ case "b":
92
+ return pairSpan(state, pos, "(", ")", around);
93
+ case "{":
94
+ case "}":
95
+ case "B":
96
+ return pairSpan(state, pos, "{", "}", around);
97
+ case "[":
98
+ case "]":
99
+ return pairSpan(state, pos, "[", "]", around);
100
+ case "<":
101
+ case ">":
102
+ return pairSpan(state, pos, "<", ">", around);
103
+ case '"':
104
+ return quoteSpan(state, range.head, '"', around);
105
+ case "'":
106
+ return quoteSpan(state, range.head, "'", around);
107
+ case "`":
108
+ return quoteSpan(state, range.head, "`", around);
109
+ case "m":
110
+ return nearestPair(state, pos, around);
111
+ default:
112
+ return null;
113
+ }
114
+ }
115
+ export { pairFor } from "./motions";
116
+ //# sourceMappingURL=textobjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textobjects.js","sourceRoot":"","sources":["../src/textobjects.ts"],"names":[],"mappings":"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"}
package/dist/view.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ import { EditorView, ViewPlugin, type DecorationSet, type ViewUpdate } from "@codemirror/view";
2
+ export declare const blockCursor: ViewPlugin<{
3
+ decorations: DecorationSet;
4
+ update(update: ViewUpdate): void;
5
+ build(view: EditorView): DecorationSet;
6
+ }, undefined>;
7
+ export declare const modeEditorClass: import("@codemirror/state").Extension;
8
+ export declare const helixStatusPanel: import("@codemirror/state").Extension;
9
+ export declare const helixTheme: import("@codemirror/state").Extension;
10
+ //# sourceMappingURL=view.d.ts.map