vim-prose 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/LICENSE +21 -0
- package/README.md +264 -0
- package/dist/extensions/vim/commands.d.ts +26 -0
- package/dist/extensions/vim/commands.js +231 -0
- package/dist/extensions/vim/commands.js.map +1 -0
- package/dist/extensions/vim/index.d.ts +3 -0
- package/dist/extensions/vim/index.js +2 -0
- package/dist/extensions/vim/index.js.map +1 -0
- package/dist/extensions/vim/keyHandler.d.ts +6 -0
- package/dist/extensions/vim/keyHandler.js +1400 -0
- package/dist/extensions/vim/keyHandler.js.map +1 -0
- package/dist/extensions/vim/motions.d.ts +80 -0
- package/dist/extensions/vim/motions.js +437 -0
- package/dist/extensions/vim/motions.js.map +1 -0
- package/dist/extensions/vim/operators.d.ts +36 -0
- package/dist/extensions/vim/operators.js +350 -0
- package/dist/extensions/vim/operators.js.map +1 -0
- package/dist/extensions/vim/state.d.ts +8 -0
- package/dist/extensions/vim/state.js +174 -0
- package/dist/extensions/vim/state.js.map +1 -0
- package/dist/extensions/vim/tiptap.d.ts +17 -0
- package/dist/extensions/vim/tiptap.js +49 -0
- package/dist/extensions/vim/types.d.ts +55 -0
- package/dist/extensions/vim/types.js +29 -0
- package/dist/extensions/vim/types.js.map +1 -0
- package/dist/extensions/vim/utils.d.ts +76 -0
- package/dist/extensions/vim/utils.js +224 -0
- package/dist/extensions/vim/utils.js.map +1 -0
- package/dist/extensions/vim/vim-mode.css +81 -0
- package/dist/extensions/vim/visual.d.ts +15 -0
- package/dist/extensions/vim/visual.js +58 -0
- package/dist/extensions/vim/visual.js.map +1 -0
- package/package.json +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyHandler.js","sourceRoot":"","sources":["../../../src/extensions/vim/keyHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { EditorState } from 'prosemirror-state';
|
|
2
|
+
/**
|
|
3
|
+
* Move left by one character; wraps to end of previous line at line start.
|
|
4
|
+
*/
|
|
5
|
+
export declare function motionLeft(state: EditorState, pos: number): number;
|
|
6
|
+
/**
|
|
7
|
+
* Move right by one character; wraps to start of next line at line end.
|
|
8
|
+
*/
|
|
9
|
+
export declare function motionRight(state: EditorState, pos: number): number;
|
|
10
|
+
/**
|
|
11
|
+
* Move down by one line, trying to preserve column offset.
|
|
12
|
+
* Uses Selection.findFrom to correctly traverse nested structures
|
|
13
|
+
* (lists, blockquotes, etc.) and skip leaf nodes (hr).
|
|
14
|
+
*/
|
|
15
|
+
export declare function motionDown(state: EditorState, pos: number, goalColumn?: number): number;
|
|
16
|
+
/**
|
|
17
|
+
* Move up by one line, trying to preserve column offset.
|
|
18
|
+
* Uses Selection.findFrom to correctly traverse nested structures.
|
|
19
|
+
*/
|
|
20
|
+
export declare function motionUp(state: EditorState, pos: number, goalColumn?: number): number;
|
|
21
|
+
/**
|
|
22
|
+
* Move to start of line (position 0 of text content).
|
|
23
|
+
*/
|
|
24
|
+
export declare function motionLineStart(state: EditorState, pos: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* Move to first non-blank character of line.
|
|
27
|
+
*/
|
|
28
|
+
export declare function motionFirstNonBlank(state: EditorState): number;
|
|
29
|
+
/**
|
|
30
|
+
* Move to end of line (last character position).
|
|
31
|
+
*/
|
|
32
|
+
export declare function motionLineEnd(state: EditorState, pos: number): number;
|
|
33
|
+
/**
|
|
34
|
+
* Move to start of document.
|
|
35
|
+
*/
|
|
36
|
+
export declare function motionDocStart(state: EditorState): number;
|
|
37
|
+
/**
|
|
38
|
+
* Move to end of document.
|
|
39
|
+
*/
|
|
40
|
+
export declare function motionDocEnd(state: EditorState): number;
|
|
41
|
+
/**
|
|
42
|
+
* Move forward by one word.
|
|
43
|
+
*/
|
|
44
|
+
export declare function motionWordForward(state: EditorState, pos: number): number;
|
|
45
|
+
/**
|
|
46
|
+
* Move backward by one word.
|
|
47
|
+
*/
|
|
48
|
+
export declare function motionWordBackward(state: EditorState, pos: number): number;
|
|
49
|
+
/**
|
|
50
|
+
* Forward find char on current line (f motion).
|
|
51
|
+
*/
|
|
52
|
+
export declare function motionFindCharForward(state: EditorState, pos: number, char: string): number | null;
|
|
53
|
+
/**
|
|
54
|
+
* Backward find char on current line (F motion).
|
|
55
|
+
*/
|
|
56
|
+
export declare function motionFindCharBackward(state: EditorState, pos: number, char: string): number | null;
|
|
57
|
+
/**
|
|
58
|
+
* Forward till char on current line (t motion) — stops one before the char.
|
|
59
|
+
*/
|
|
60
|
+
export declare function motionTillCharForward(state: EditorState, pos: number, char: string): number | null;
|
|
61
|
+
/**
|
|
62
|
+
* Backward till char on current line (T motion) — stops one after the char.
|
|
63
|
+
*/
|
|
64
|
+
export declare function motionTillCharBackward(state: EditorState, pos: number, char: string): number | null;
|
|
65
|
+
/**
|
|
66
|
+
* Half-page down motion.
|
|
67
|
+
*/
|
|
68
|
+
export declare function motionHalfPageDown(state: EditorState, pos: number): number;
|
|
69
|
+
/**
|
|
70
|
+
* Half-page up motion.
|
|
71
|
+
*/
|
|
72
|
+
export declare function motionHalfPageUp(state: EditorState, pos: number): number;
|
|
73
|
+
/**
|
|
74
|
+
* Full-page down motion.
|
|
75
|
+
*/
|
|
76
|
+
export declare function motionFullPageDown(state: EditorState, pos: number): number;
|
|
77
|
+
/**
|
|
78
|
+
* Full-page up motion.
|
|
79
|
+
*/
|
|
80
|
+
export declare function motionFullPageUp(state: EditorState, pos: number): number;
|
|
@@ -0,0 +1,437 @@
|
|
|
1
|
+
import { Selection } from 'prosemirror-state';
|
|
2
|
+
import { firstNonBlank, isWordChar, isWhitespace, charAt, lineStartAt, lineEndAt, } from './utils';
|
|
3
|
+
/**
|
|
4
|
+
* Find the next valid text cursor position searching forward from pos.
|
|
5
|
+
*/
|
|
6
|
+
function findNextTextPos(state, pos) {
|
|
7
|
+
try {
|
|
8
|
+
const $pos = state.doc.resolve(Math.min(pos, state.doc.content.size));
|
|
9
|
+
const sel = Selection.findFrom($pos, 1, true);
|
|
10
|
+
return sel ? sel.$from.pos : null;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Find the previous valid text cursor position searching backward from pos.
|
|
18
|
+
*/
|
|
19
|
+
function findPrevTextPos(state, pos) {
|
|
20
|
+
try {
|
|
21
|
+
const $pos = state.doc.resolve(Math.max(pos, 0));
|
|
22
|
+
const sel = Selection.findFrom($pos, -1, true);
|
|
23
|
+
return sel ? sel.$from.pos : null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Move left by one character; wraps to end of previous line at line start.
|
|
31
|
+
*/
|
|
32
|
+
export function motionLeft(state, pos) {
|
|
33
|
+
const $pos = state.doc.resolve(pos);
|
|
34
|
+
if ($pos.depth === 0)
|
|
35
|
+
return pos;
|
|
36
|
+
const start = lineStartAt(state, pos);
|
|
37
|
+
if (pos > start)
|
|
38
|
+
return pos - 1;
|
|
39
|
+
// At line start, find the end of the previous textblock
|
|
40
|
+
try {
|
|
41
|
+
const beforeTextblock = $pos.before($pos.depth);
|
|
42
|
+
if (beforeTextblock <= 0)
|
|
43
|
+
return pos;
|
|
44
|
+
const $before = state.doc.resolve(beforeTextblock);
|
|
45
|
+
const prevSel = Selection.findFrom($before, -1, true);
|
|
46
|
+
if (!prevSel)
|
|
47
|
+
return pos;
|
|
48
|
+
const $prev = prevSel.$from;
|
|
49
|
+
return $prev.end($prev.depth);
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
return pos;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Move right by one character; wraps to start of next line at line end.
|
|
57
|
+
*/
|
|
58
|
+
export function motionRight(state, pos) {
|
|
59
|
+
const $pos = state.doc.resolve(pos);
|
|
60
|
+
if ($pos.depth === 0)
|
|
61
|
+
return pos;
|
|
62
|
+
const end = lineEndAt(state, pos);
|
|
63
|
+
if (pos < end)
|
|
64
|
+
return pos + 1;
|
|
65
|
+
// At line end, find the start of the next textblock
|
|
66
|
+
try {
|
|
67
|
+
const afterTextblock = $pos.after($pos.depth);
|
|
68
|
+
if (afterTextblock >= state.doc.content.size)
|
|
69
|
+
return pos;
|
|
70
|
+
const $after = state.doc.resolve(afterTextblock);
|
|
71
|
+
const nextSel = Selection.findFrom($after, 1, true);
|
|
72
|
+
if (!nextSel)
|
|
73
|
+
return pos;
|
|
74
|
+
const $next = nextSel.$from;
|
|
75
|
+
return $next.start($next.depth);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return pos;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Move down by one line, trying to preserve column offset.
|
|
83
|
+
* Uses Selection.findFrom to correctly traverse nested structures
|
|
84
|
+
* (lists, blockquotes, etc.) and skip leaf nodes (hr).
|
|
85
|
+
*/
|
|
86
|
+
export function motionDown(state, pos, goalColumn) {
|
|
87
|
+
const $pos = state.doc.resolve(pos);
|
|
88
|
+
if ($pos.depth === 0) {
|
|
89
|
+
// At document root, try to find a textblock forward
|
|
90
|
+
const next = findNextTextPos(state, pos);
|
|
91
|
+
return next ?? pos;
|
|
92
|
+
}
|
|
93
|
+
const currentLineStart = $pos.start($pos.depth);
|
|
94
|
+
const currentOffset = goalColumn !== undefined ? goalColumn : pos - currentLineStart;
|
|
95
|
+
// Find the next textblock after the current one
|
|
96
|
+
try {
|
|
97
|
+
const afterTextblock = $pos.after($pos.depth);
|
|
98
|
+
if (afterTextblock >= state.doc.content.size)
|
|
99
|
+
return pos;
|
|
100
|
+
const $after = state.doc.resolve(afterTextblock);
|
|
101
|
+
const nextSel = Selection.findFrom($after, 1, true);
|
|
102
|
+
if (!nextSel)
|
|
103
|
+
return pos;
|
|
104
|
+
const $next = nextSel.$from;
|
|
105
|
+
const nextLineStart = $next.start($next.depth);
|
|
106
|
+
const nextLineEnd = $next.end($next.depth);
|
|
107
|
+
const nextLineLen = nextLineEnd - nextLineStart;
|
|
108
|
+
return nextLineStart + Math.min(currentOffset, nextLineLen);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return pos;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Move up by one line, trying to preserve column offset.
|
|
116
|
+
* Uses Selection.findFrom to correctly traverse nested structures.
|
|
117
|
+
*/
|
|
118
|
+
export function motionUp(state, pos, goalColumn) {
|
|
119
|
+
const $pos = state.doc.resolve(pos);
|
|
120
|
+
if ($pos.depth === 0) {
|
|
121
|
+
const prev = findPrevTextPos(state, pos);
|
|
122
|
+
return prev ?? pos;
|
|
123
|
+
}
|
|
124
|
+
const currentLineStart = $pos.start($pos.depth);
|
|
125
|
+
const currentOffset = goalColumn !== undefined ? goalColumn : pos - currentLineStart;
|
|
126
|
+
// Find the previous textblock before the current one
|
|
127
|
+
try {
|
|
128
|
+
const beforeTextblock = $pos.before($pos.depth);
|
|
129
|
+
if (beforeTextblock <= 0)
|
|
130
|
+
return pos;
|
|
131
|
+
const $before = state.doc.resolve(beforeTextblock);
|
|
132
|
+
const prevSel = Selection.findFrom($before, -1, true);
|
|
133
|
+
if (!prevSel)
|
|
134
|
+
return pos;
|
|
135
|
+
const $prev = prevSel.$from;
|
|
136
|
+
const prevLineStart = $prev.start($prev.depth);
|
|
137
|
+
const prevLineEnd = $prev.end($prev.depth);
|
|
138
|
+
const prevLineLen = prevLineEnd - prevLineStart;
|
|
139
|
+
return prevLineStart + Math.min(currentOffset, prevLineLen);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return pos;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Move to start of line (position 0 of text content).
|
|
147
|
+
*/
|
|
148
|
+
export function motionLineStart(state, pos) {
|
|
149
|
+
return lineStartAt(state, pos);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Move to first non-blank character of line.
|
|
153
|
+
*/
|
|
154
|
+
export function motionFirstNonBlank(state) {
|
|
155
|
+
return firstNonBlank(state);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Move to end of line (last character position).
|
|
159
|
+
*/
|
|
160
|
+
export function motionLineEnd(state, pos) {
|
|
161
|
+
const end = lineEndAt(state, pos);
|
|
162
|
+
return end;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Move to start of document.
|
|
166
|
+
*/
|
|
167
|
+
export function motionDocStart(state) {
|
|
168
|
+
// Position at the start of the first text node
|
|
169
|
+
try {
|
|
170
|
+
const $start = state.doc.resolve(0);
|
|
171
|
+
// Find the first text position
|
|
172
|
+
let pos = 0;
|
|
173
|
+
state.doc.nodesBetween(0, state.doc.content.size, (node, nodePos) => {
|
|
174
|
+
if (pos > 0)
|
|
175
|
+
return false;
|
|
176
|
+
if (node.isTextblock) {
|
|
177
|
+
pos = nodePos + 1;
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
180
|
+
return true;
|
|
181
|
+
});
|
|
182
|
+
return pos || 1;
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return 1;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Move to end of document.
|
|
190
|
+
*/
|
|
191
|
+
export function motionDocEnd(state) {
|
|
192
|
+
// Position at the end of the last text node
|
|
193
|
+
let lastPos = state.doc.content.size;
|
|
194
|
+
let found = 0;
|
|
195
|
+
state.doc.nodesBetween(0, state.doc.content.size, (node, nodePos) => {
|
|
196
|
+
if (node.isTextblock) {
|
|
197
|
+
found = nodePos + 1 + node.content.size;
|
|
198
|
+
}
|
|
199
|
+
return true;
|
|
200
|
+
});
|
|
201
|
+
return found || lastPos;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Helper: cross to the start of the next textblock from after the current one.
|
|
205
|
+
*/
|
|
206
|
+
function crossToNextTextblock(state, $pos) {
|
|
207
|
+
try {
|
|
208
|
+
const afterNode = $pos.after($pos.depth);
|
|
209
|
+
if (afterNode >= state.doc.content.size)
|
|
210
|
+
return null;
|
|
211
|
+
const $after = state.doc.resolve(afterNode);
|
|
212
|
+
const nextSel = Selection.findFrom($after, 1, true);
|
|
213
|
+
if (!nextSel)
|
|
214
|
+
return null;
|
|
215
|
+
return nextSel.$from.start(nextSel.$from.depth);
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Helper: cross to the end of the previous textblock from before the current one.
|
|
223
|
+
*/
|
|
224
|
+
function crossToPrevTextblock(state, $pos) {
|
|
225
|
+
try {
|
|
226
|
+
const beforeNode = $pos.before($pos.depth);
|
|
227
|
+
if (beforeNode <= 0)
|
|
228
|
+
return null;
|
|
229
|
+
const $before = state.doc.resolve(beforeNode);
|
|
230
|
+
const prevSel = Selection.findFrom($before, -1, true);
|
|
231
|
+
if (!prevSel)
|
|
232
|
+
return null;
|
|
233
|
+
return prevSel.$from.end(prevSel.$from.depth);
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Move forward by one word.
|
|
241
|
+
*/
|
|
242
|
+
export function motionWordForward(state, pos) {
|
|
243
|
+
const docSize = state.doc.content.size;
|
|
244
|
+
const $pos = state.doc.resolve(pos);
|
|
245
|
+
if ($pos.depth === 0) {
|
|
246
|
+
const next = findNextTextPos(state, pos);
|
|
247
|
+
return next ?? pos;
|
|
248
|
+
}
|
|
249
|
+
const lineEndPos = $pos.end($pos.depth);
|
|
250
|
+
// First check if we're at the end of a line and need to cross to next
|
|
251
|
+
if (pos >= lineEndPos) {
|
|
252
|
+
return crossToNextTextblock(state, $pos) ?? pos;
|
|
253
|
+
}
|
|
254
|
+
// Walk through text to find next word boundary
|
|
255
|
+
let current = pos;
|
|
256
|
+
const ch = charAt(state, current);
|
|
257
|
+
if (isWordChar(ch)) {
|
|
258
|
+
// Skip rest of current word
|
|
259
|
+
while (current < lineEndPos && isWordChar(charAt(state, current))) {
|
|
260
|
+
current++;
|
|
261
|
+
}
|
|
262
|
+
// Skip whitespace
|
|
263
|
+
while (current < lineEndPos && isWhitespace(charAt(state, current))) {
|
|
264
|
+
current++;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else if (isWhitespace(ch)) {
|
|
268
|
+
// Skip whitespace
|
|
269
|
+
while (current < lineEndPos && isWhitespace(charAt(state, current))) {
|
|
270
|
+
current++;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
// Non-word, non-whitespace (punctuation)
|
|
275
|
+
while (current < lineEndPos &&
|
|
276
|
+
!isWordChar(charAt(state, current)) &&
|
|
277
|
+
!isWhitespace(charAt(state, current))) {
|
|
278
|
+
current++;
|
|
279
|
+
}
|
|
280
|
+
// Skip whitespace
|
|
281
|
+
while (current < lineEndPos && isWhitespace(charAt(state, current))) {
|
|
282
|
+
current++;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (current >= lineEndPos) {
|
|
286
|
+
// Move to next textblock start
|
|
287
|
+
return crossToNextTextblock(state, $pos) ?? lineEndPos;
|
|
288
|
+
}
|
|
289
|
+
return current;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Move backward by one word.
|
|
293
|
+
*/
|
|
294
|
+
export function motionWordBackward(state, pos) {
|
|
295
|
+
const $pos = state.doc.resolve(pos);
|
|
296
|
+
if ($pos.depth === 0) {
|
|
297
|
+
const prev = findPrevTextPos(state, pos);
|
|
298
|
+
return prev ?? pos;
|
|
299
|
+
}
|
|
300
|
+
const lineStartPos = $pos.start($pos.depth);
|
|
301
|
+
if (pos <= lineStartPos) {
|
|
302
|
+
// We're at the start of the line, cross to end of previous textblock
|
|
303
|
+
return crossToPrevTextblock(state, $pos) ?? pos;
|
|
304
|
+
}
|
|
305
|
+
let current = pos - 1;
|
|
306
|
+
// Skip whitespace backward
|
|
307
|
+
while (current > lineStartPos && isWhitespace(charAt(state, current))) {
|
|
308
|
+
current--;
|
|
309
|
+
}
|
|
310
|
+
if (current <= lineStartPos) {
|
|
311
|
+
return lineStartPos;
|
|
312
|
+
}
|
|
313
|
+
const ch = charAt(state, current);
|
|
314
|
+
if (isWordChar(ch)) {
|
|
315
|
+
while (current > lineStartPos && isWordChar(charAt(state, current - 1))) {
|
|
316
|
+
current--;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
// Non-word, non-whitespace (punctuation)
|
|
321
|
+
while (current > lineStartPos &&
|
|
322
|
+
!isWordChar(charAt(state, current - 1)) &&
|
|
323
|
+
!isWhitespace(charAt(state, current - 1))) {
|
|
324
|
+
current--;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
return current;
|
|
328
|
+
}
|
|
329
|
+
/**
|
|
330
|
+
* Forward find char on current line (f motion).
|
|
331
|
+
*/
|
|
332
|
+
export function motionFindCharForward(state, pos, char) {
|
|
333
|
+
const $pos = state.doc.resolve(pos);
|
|
334
|
+
if ($pos.depth === 0)
|
|
335
|
+
return null;
|
|
336
|
+
const end = $pos.end($pos.depth);
|
|
337
|
+
for (let i = pos + 1; i <= end; i++) {
|
|
338
|
+
if (charAt(state, i) === char) {
|
|
339
|
+
return i;
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
return null;
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Backward find char on current line (F motion).
|
|
346
|
+
*/
|
|
347
|
+
export function motionFindCharBackward(state, pos, char) {
|
|
348
|
+
const $pos = state.doc.resolve(pos);
|
|
349
|
+
if ($pos.depth === 0)
|
|
350
|
+
return null;
|
|
351
|
+
const start = $pos.start($pos.depth);
|
|
352
|
+
for (let i = pos - 1; i >= start; i--) {
|
|
353
|
+
if (charAt(state, i) === char) {
|
|
354
|
+
return i;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Forward till char on current line (t motion) — stops one before the char.
|
|
361
|
+
*/
|
|
362
|
+
export function motionTillCharForward(state, pos, char) {
|
|
363
|
+
const found = motionFindCharForward(state, pos, char);
|
|
364
|
+
if (found !== null && found > pos + 1) {
|
|
365
|
+
return found - 1;
|
|
366
|
+
}
|
|
367
|
+
else if (found !== null && found === pos + 1) {
|
|
368
|
+
return found - 1; // still move, landing on pos itself might be same spot — return it anyway
|
|
369
|
+
}
|
|
370
|
+
return found !== null ? found - 1 : null;
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Backward till char on current line (T motion) — stops one after the char.
|
|
374
|
+
*/
|
|
375
|
+
export function motionTillCharBackward(state, pos, char) {
|
|
376
|
+
const found = motionFindCharBackward(state, pos, char);
|
|
377
|
+
if (found !== null) {
|
|
378
|
+
return found + 1;
|
|
379
|
+
}
|
|
380
|
+
return null;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* Half-page down motion.
|
|
384
|
+
*/
|
|
385
|
+
export function motionHalfPageDown(state, pos) {
|
|
386
|
+
let current = pos;
|
|
387
|
+
const lines = 15; // approximate half-page
|
|
388
|
+
for (let i = 0; i < lines; i++) {
|
|
389
|
+
const next = motionDown(state, current);
|
|
390
|
+
if (next === current)
|
|
391
|
+
break;
|
|
392
|
+
current = next;
|
|
393
|
+
}
|
|
394
|
+
return current;
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Half-page up motion.
|
|
398
|
+
*/
|
|
399
|
+
export function motionHalfPageUp(state, pos) {
|
|
400
|
+
let current = pos;
|
|
401
|
+
const lines = 15;
|
|
402
|
+
for (let i = 0; i < lines; i++) {
|
|
403
|
+
const next = motionUp(state, current);
|
|
404
|
+
if (next === current)
|
|
405
|
+
break;
|
|
406
|
+
current = next;
|
|
407
|
+
}
|
|
408
|
+
return current;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Full-page down motion.
|
|
412
|
+
*/
|
|
413
|
+
export function motionFullPageDown(state, pos) {
|
|
414
|
+
let current = pos;
|
|
415
|
+
const lines = 30;
|
|
416
|
+
for (let i = 0; i < lines; i++) {
|
|
417
|
+
const next = motionDown(state, current);
|
|
418
|
+
if (next === current)
|
|
419
|
+
break;
|
|
420
|
+
current = next;
|
|
421
|
+
}
|
|
422
|
+
return current;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Full-page up motion.
|
|
426
|
+
*/
|
|
427
|
+
export function motionFullPageUp(state, pos) {
|
|
428
|
+
let current = pos;
|
|
429
|
+
const lines = 30;
|
|
430
|
+
for (let i = 0; i < lines; i++) {
|
|
431
|
+
const next = motionUp(state, current);
|
|
432
|
+
if (next === current)
|
|
433
|
+
break;
|
|
434
|
+
current = next;
|
|
435
|
+
}
|
|
436
|
+
return current;
|
|
437
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motions.js","sourceRoot":"","sources":["../../../src/extensions/vim/motions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EditorState, Transaction } from 'prosemirror-state';
|
|
2
|
+
import { VimState } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a text object, returning { from, to } positions.
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolveTextObject(state: EditorState, pos: number, type: 'i' | 'a', object: string): {
|
|
7
|
+
from: number;
|
|
8
|
+
to: number;
|
|
9
|
+
} | null;
|
|
10
|
+
/**
|
|
11
|
+
* Execute a delete operation on the given range.
|
|
12
|
+
* Returns the transaction and the deleted text.
|
|
13
|
+
*/
|
|
14
|
+
export declare function executeDelete(state: EditorState, from: number, to: number, vimState: VimState, linewise?: boolean): Transaction;
|
|
15
|
+
/**
|
|
16
|
+
* Execute a yank operation on the given range.
|
|
17
|
+
* Does not modify the document.
|
|
18
|
+
*/
|
|
19
|
+
export declare function executeYank(state: EditorState, from: number, to: number, vimState: VimState, linewise?: boolean): void;
|
|
20
|
+
/**
|
|
21
|
+
* Execute a change operation: delete range, then enter insert mode.
|
|
22
|
+
* Returns the transaction.
|
|
23
|
+
*/
|
|
24
|
+
export declare function executeChange(state: EditorState, from: number, to: number, vimState: VimState, linewise?: boolean): Transaction;
|
|
25
|
+
/**
|
|
26
|
+
* Delete a number of lines starting from the current cursor position.
|
|
27
|
+
*/
|
|
28
|
+
export declare function deleteLines(state: EditorState, pos: number, count: number, vimState: VimState): Transaction;
|
|
29
|
+
/**
|
|
30
|
+
* Yank a number of lines starting from the current cursor position.
|
|
31
|
+
*/
|
|
32
|
+
export declare function yankLines(state: EditorState, pos: number, count: number, vimState: VimState): void;
|
|
33
|
+
/**
|
|
34
|
+
* Change a number of lines (clear content, enter insert mode).
|
|
35
|
+
*/
|
|
36
|
+
export declare function changeLines(state: EditorState, pos: number, count: number, vimState: VimState): Transaction;
|