@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.
- package/README.md +69 -0
- package/dist/commands.d.ts +72 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +506 -0
- package/dist/commands.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +41 -0
- package/dist/index.js.map +1 -0
- package/dist/keymap.d.ts +10 -0
- package/dist/keymap.d.ts.map +1 -0
- package/dist/keymap.js +521 -0
- package/dist/keymap.js.map +1 -0
- package/dist/motions.d.ts +29 -0
- package/dist/motions.d.ts.map +1 -0
- package/dist/motions.js +184 -0
- package/dist/motions.js.map +1 -0
- package/dist/prompt.d.ts +13 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +68 -0
- package/dist/prompt.js.map +1 -0
- package/dist/state.d.ts +54 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +50 -0
- package/dist/state.js.map +1 -0
- package/dist/textobjects.d.ts +12 -0
- package/dist/textobjects.d.ts.map +1 -0
- package/dist/textobjects.js +116 -0
- package/dist/textobjects.js.map +1 -0
- package/dist/view.d.ts +10 -0
- package/dist/view.d.ts.map +1 -0
- package/dist/view.js +105 -0
- package/dist/view.js.map +1 -0
- package/package.json +51 -0
|
@@ -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"}
|
package/dist/motions.js
ADDED
|
@@ -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":"AAIA,MAAM,UAAU,MAAM,CAAC,KAAkB,EAAE,CAAS;IAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,OAAO,CAAC;IAC/C,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2DAA2D;AAC3D,SAAS,UAAU,CAAC,EAAU;IAC5B,OAAO,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACvD,CAAC;AAED,SAAS,OAAO,CAAC,KAAkB,EAAE,CAAS,EAAE,GAAY;IAC1D,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,GAAW,EAAE,GAAY;IACzE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,IAAI,CAAC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC;IACzB,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO;YAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG;YAAE,CAAC,EAAE,CAAC;QACtD,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO;YAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,GAAW,EAAE,GAAY;IACzE,IAAI,CAAC,GAAG,GAAG,CAAC;IACZ,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO;QAAE,CAAC,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG;QAAE,CAAC,EAAE,CAAC;IACxD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,KAAkB,EAAE,GAAW,EAAE,GAAY;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,OAAO;QAAE,CAAC,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,GAAG;QAAE,CAAC,EAAE,CAAC;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAkB,EAAE,IAAY;IAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,cAAc,CAC5B,KAAkB,EAClB,GAAW,EACX,MAAc,EACd,IAA2B;IAE3B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;IAE1C,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,kEAAkE;QAClE,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;YAAE,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YACzB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QAChB,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;YAAE,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,KAAK,GAAoD;IAC7D,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;IAC9B,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE;CAC/B,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,EAAU;IAChC,OAAO,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;AAC3B,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,SAAS,CAAC,KAAkB,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa;IACrF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC;aACpB,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACtB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,QAAQ,CAAC,KAAkB,EAAE,IAAY,EAAE,IAAY,EAAE,KAAa;IACpF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,KAAK;YAAE,KAAK,EAAE,CAAC;aACrB,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACrB,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,KAAkB,EAAE,GAAW;IAC7D,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,MAAM,IAAI,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7E,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAkB,EAAE,OAAe,EAAE,IAAY,EAAE,KAAa;IAClF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC;IAC7B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,IAAI;YAAE,KAAK,EAAE,CAAC;aACpB,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB,EAAE,QAAgB,EAAE,IAAY,EAAE,KAAa;IAClF,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,KAAK;YAAE,KAAK,EAAE,CAAC;aACrB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,WAAW,CAAC,KAAkB,EAAE,GAAW;IACzD,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,OAAO,GAAG,SAAS,CAAC;IACxB,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5D,OAAO,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QAAE,SAAS,EAAE,CAAC;IAC3D,OAAO,OAAO,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAC7D,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC;AACtE,CAAC"}
|
package/dist/prompt.d.ts
ADDED
|
@@ -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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"}
|
package/dist/state.d.ts
ADDED
|
@@ -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":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOvF,SAAS,QAAQ,CAAC,KAAkB,EAAE,GAAW,EAAE,MAAe;IAChE,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACjC,IAAI,IAAI,GAAG,GAAG,CAAC;IACf,IAAI,EAAE,GAAG,GAAG,CAAC;IACb,OAAO,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,IAAI,EAAE,CAAC;IACpE,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG;QAAE,EAAE,EAAE,CAAC;IACzE,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO;YAAE,EAAE,EAAE,CAAC;QAC7E,IAAI,EAAE,KAAK,KAAK;YAAE,OAAO,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,OAAO;gBAAE,IAAI,EAAE,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,QAAQ,CACf,KAAkB,EAClB,GAAW,EACX,IAAY,EACZ,KAAa,EACb,MAAe;IAEf,mDAAmD;IACnD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GACX,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACrF,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACxD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACnC,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,SAAS,CAAC,KAAkB,EAAE,GAAW,EAAE,KAAa,EAAE,MAAe;IAChF,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE;QAAE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK;YAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;QACxB,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC;QAClE,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CAAC,KAAkB,EAAE,GAAW,EAAE,MAAe;IACrE,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACjB,OAAO,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC5E,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAExC,sEAAsE;AACtE,SAAS,WAAW,CAAC,KAAkB,EAAE,GAAW,EAAE,MAAe;IACnE,MAAM,UAAU,GAAW,EAAE,CAAC;IAC9B,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAClE,IAAI,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,gCAAgC;IAChC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;AACvE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CACxB,KAAkB,EAClB,KAAqB,EACrB,GAAW,EACX,MAAe;IAEf,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IAClE,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,KAAK,GAAG;YACN,OAAO,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,KAAK,GAAG,CAAC;QACT,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAChD,KAAK,GAAG;YACN,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,GAAG;YACN,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,GAAG;YACN,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACnD,KAAK,GAAG;YACN,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
|
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
|