@google/gemini-cli 0.1.13-nightly.250726.fb751c54 → 0.1.14

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.
Files changed (48) hide show
  1. package/dist/google-gemini-cli-0.1.13.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/config/settings.d.ts +0 -1
  4. package/dist/src/config/settings.js.map +1 -1
  5. package/dist/src/generated/git-commit.d.ts +1 -1
  6. package/dist/src/generated/git-commit.js +1 -1
  7. package/dist/src/services/BuiltinCommandLoader.js +1 -3
  8. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  9. package/dist/src/ui/App.js +31 -42
  10. package/dist/src/ui/App.js.map +1 -1
  11. package/dist/src/ui/commands/mcpCommand.js +8 -53
  12. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  13. package/dist/src/ui/commands/types.d.ts +1 -3
  14. package/dist/src/ui/commands/types.js +0 -1
  15. package/dist/src/ui/commands/types.js.map +1 -1
  16. package/dist/src/ui/components/Footer.d.ts +0 -1
  17. package/dist/src/ui/components/Footer.js +2 -2
  18. package/dist/src/ui/components/Footer.js.map +1 -1
  19. package/dist/src/ui/components/InputPrompt.d.ts +0 -2
  20. package/dist/src/ui/components/InputPrompt.js +1 -5
  21. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  22. package/dist/src/ui/components/shared/text-buffer.d.ts +2 -270
  23. package/dist/src/ui/components/shared/text-buffer.js +70 -415
  24. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  25. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  26. package/dist/src/ui/hooks/slashCommandProcessor.js +62 -75
  27. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  28. package/dist/src/ui/hooks/useCompletion.js +2 -7
  29. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  30. package/dist/src/ui/hooks/useKeypress.js +2 -5
  31. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  32. package/dist/tsconfig.tsbuildinfo +1 -1
  33. package/package.json +3 -3
  34. package/dist/src/services/McpPromptLoader.d.ts +0 -25
  35. package/dist/src/services/McpPromptLoader.js +0 -192
  36. package/dist/src/services/McpPromptLoader.js.map +0 -1
  37. package/dist/src/ui/commands/vimCommand.d.ts +0 -7
  38. package/dist/src/ui/commands/vimCommand.js +0 -23
  39. package/dist/src/ui/commands/vimCommand.js.map +0 -1
  40. package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +0 -72
  41. package/dist/src/ui/components/shared/vim-buffer-actions.js +0 -565
  42. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +0 -1
  43. package/dist/src/ui/contexts/VimModeContext.d.ts +0 -19
  44. package/dist/src/ui/contexts/VimModeContext.js +0 -48
  45. package/dist/src/ui/contexts/VimModeContext.js.map +0 -1
  46. package/dist/src/ui/hooks/vim.d.ts +0 -28
  47. package/dist/src/ui/hooks/vim.js +0 -630
  48. package/dist/src/ui/hooks/vim.js.map +0 -1
@@ -1,565 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { findNextWordStart, findPrevWordStart, findWordEnd, getOffsetFromPosition, getPositionFromOffsets, getLineRangeOffsets, replaceRangeInternal, pushUndo, } from './text-buffer.js';
7
- import { cpLen } from '../../utils/textUtils.js';
8
- export function handleVimAction(state, action) {
9
- const { lines, cursorRow, cursorCol } = state;
10
- // Cache text join to avoid repeated calculations for word operations
11
- let text = null;
12
- const getText = () => text ?? (text = lines.join('\n'));
13
- switch (action.type) {
14
- case 'vim_delete_word_forward': {
15
- const { count } = action.payload;
16
- const currentOffset = getOffsetFromPosition(cursorRow, cursorCol, lines);
17
- let endOffset = currentOffset;
18
- let searchOffset = currentOffset;
19
- for (let i = 0; i < count; i++) {
20
- const nextWordOffset = findNextWordStart(getText(), searchOffset);
21
- if (nextWordOffset > searchOffset) {
22
- searchOffset = nextWordOffset;
23
- endOffset = nextWordOffset;
24
- }
25
- else {
26
- // If no next word, delete to end of current word
27
- const wordEndOffset = findWordEnd(getText(), searchOffset);
28
- endOffset = Math.min(wordEndOffset + 1, getText().length);
29
- break;
30
- }
31
- }
32
- if (endOffset > currentOffset) {
33
- const nextState = pushUndo(state);
34
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(currentOffset, endOffset, nextState.lines);
35
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
36
- }
37
- return state;
38
- }
39
- case 'vim_delete_word_backward': {
40
- const { count } = action.payload;
41
- const currentOffset = getOffsetFromPosition(cursorRow, cursorCol, lines);
42
- let startOffset = currentOffset;
43
- let searchOffset = currentOffset;
44
- for (let i = 0; i < count; i++) {
45
- const prevWordOffset = findPrevWordStart(getText(), searchOffset);
46
- if (prevWordOffset < searchOffset) {
47
- searchOffset = prevWordOffset;
48
- startOffset = prevWordOffset;
49
- }
50
- else {
51
- break;
52
- }
53
- }
54
- if (startOffset < currentOffset) {
55
- const nextState = pushUndo(state);
56
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(startOffset, currentOffset, nextState.lines);
57
- const newState = replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
58
- // Cursor is already at the correct position after deletion
59
- return newState;
60
- }
61
- return state;
62
- }
63
- case 'vim_delete_word_end': {
64
- const { count } = action.payload;
65
- const currentOffset = getOffsetFromPosition(cursorRow, cursorCol, lines);
66
- let offset = currentOffset;
67
- let endOffset = currentOffset;
68
- for (let i = 0; i < count; i++) {
69
- const wordEndOffset = findWordEnd(getText(), offset);
70
- if (wordEndOffset >= offset) {
71
- endOffset = wordEndOffset + 1; // Include the character at word end
72
- // For next iteration, move to start of next word
73
- if (i < count - 1) {
74
- const nextWordStart = findNextWordStart(getText(), wordEndOffset + 1);
75
- offset = nextWordStart;
76
- if (nextWordStart <= wordEndOffset) {
77
- break; // No more words
78
- }
79
- }
80
- }
81
- else {
82
- break;
83
- }
84
- }
85
- endOffset = Math.min(endOffset, getText().length);
86
- if (endOffset > currentOffset) {
87
- const nextState = pushUndo(state);
88
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(currentOffset, endOffset, nextState.lines);
89
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
90
- }
91
- return state;
92
- }
93
- case 'vim_change_word_forward': {
94
- const { count } = action.payload;
95
- const currentOffset = getOffsetFromPosition(cursorRow, cursorCol, lines);
96
- let searchOffset = currentOffset;
97
- let endOffset = currentOffset;
98
- for (let i = 0; i < count; i++) {
99
- const nextWordOffset = findNextWordStart(getText(), searchOffset);
100
- if (nextWordOffset > searchOffset) {
101
- searchOffset = nextWordOffset;
102
- endOffset = nextWordOffset;
103
- }
104
- else {
105
- // If no next word, change to end of current word
106
- const wordEndOffset = findWordEnd(getText(), searchOffset);
107
- endOffset = Math.min(wordEndOffset + 1, getText().length);
108
- break;
109
- }
110
- }
111
- if (endOffset > currentOffset) {
112
- const nextState = pushUndo(state);
113
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(currentOffset, endOffset, nextState.lines);
114
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
115
- }
116
- return state;
117
- }
118
- case 'vim_change_word_backward': {
119
- const { count } = action.payload;
120
- const currentOffset = getOffsetFromPosition(cursorRow, cursorCol, lines);
121
- let startOffset = currentOffset;
122
- let searchOffset = currentOffset;
123
- for (let i = 0; i < count; i++) {
124
- const prevWordOffset = findPrevWordStart(getText(), searchOffset);
125
- if (prevWordOffset < searchOffset) {
126
- searchOffset = prevWordOffset;
127
- startOffset = prevWordOffset;
128
- }
129
- else {
130
- break;
131
- }
132
- }
133
- if (startOffset < currentOffset) {
134
- const nextState = pushUndo(state);
135
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(startOffset, currentOffset, nextState.lines);
136
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
137
- }
138
- return state;
139
- }
140
- case 'vim_change_word_end': {
141
- const { count } = action.payload;
142
- const currentOffset = getOffsetFromPosition(cursorRow, cursorCol, lines);
143
- let offset = currentOffset;
144
- let endOffset = currentOffset;
145
- for (let i = 0; i < count; i++) {
146
- const wordEndOffset = findWordEnd(getText(), offset);
147
- if (wordEndOffset >= offset) {
148
- endOffset = wordEndOffset + 1; // Include the character at word end
149
- // For next iteration, move to start of next word
150
- if (i < count - 1) {
151
- const nextWordStart = findNextWordStart(getText(), wordEndOffset + 1);
152
- offset = nextWordStart;
153
- if (nextWordStart <= wordEndOffset) {
154
- break; // No more words
155
- }
156
- }
157
- }
158
- else {
159
- break;
160
- }
161
- }
162
- endOffset = Math.min(endOffset, getText().length);
163
- if (endOffset !== currentOffset) {
164
- const nextState = pushUndo(state);
165
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(Math.min(currentOffset, endOffset), Math.max(currentOffset, endOffset), nextState.lines);
166
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
167
- }
168
- return state;
169
- }
170
- case 'vim_delete_line': {
171
- const { count } = action.payload;
172
- if (lines.length === 0)
173
- return state;
174
- const linesToDelete = Math.min(count, lines.length - cursorRow);
175
- const totalLines = lines.length;
176
- if (totalLines === 1 || linesToDelete >= totalLines) {
177
- // If there's only one line, or we're deleting all remaining lines,
178
- // clear the content but keep one empty line (text editors should never be completely empty)
179
- const nextState = pushUndo(state);
180
- return {
181
- ...nextState,
182
- lines: [''],
183
- cursorRow: 0,
184
- cursorCol: 0,
185
- preferredCol: null,
186
- };
187
- }
188
- const nextState = pushUndo(state);
189
- const newLines = [...nextState.lines];
190
- newLines.splice(cursorRow, linesToDelete);
191
- // Adjust cursor position
192
- const newCursorRow = Math.min(cursorRow, newLines.length - 1);
193
- const newCursorCol = 0; // Vim places cursor at beginning of line after dd
194
- return {
195
- ...nextState,
196
- lines: newLines,
197
- cursorRow: newCursorRow,
198
- cursorCol: newCursorCol,
199
- preferredCol: null,
200
- };
201
- }
202
- case 'vim_change_line': {
203
- const { count } = action.payload;
204
- if (lines.length === 0)
205
- return state;
206
- const linesToChange = Math.min(count, lines.length - cursorRow);
207
- const nextState = pushUndo(state);
208
- const { startOffset, endOffset } = getLineRangeOffsets(cursorRow, linesToChange, nextState.lines);
209
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(startOffset, endOffset, nextState.lines);
210
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
211
- }
212
- case 'vim_delete_to_end_of_line': {
213
- const currentLine = lines[cursorRow] || '';
214
- if (cursorCol < currentLine.length) {
215
- const nextState = pushUndo(state);
216
- return replaceRangeInternal(nextState, cursorRow, cursorCol, cursorRow, currentLine.length, '');
217
- }
218
- return state;
219
- }
220
- case 'vim_change_to_end_of_line': {
221
- const currentLine = lines[cursorRow] || '';
222
- if (cursorCol < currentLine.length) {
223
- const nextState = pushUndo(state);
224
- return replaceRangeInternal(nextState, cursorRow, cursorCol, cursorRow, currentLine.length, '');
225
- }
226
- return state;
227
- }
228
- case 'vim_change_movement': {
229
- const { movement, count } = action.payload;
230
- const totalLines = lines.length;
231
- switch (movement) {
232
- case 'h': {
233
- // Left
234
- // Change N characters to the left
235
- const startCol = Math.max(0, cursorCol - count);
236
- return replaceRangeInternal(pushUndo(state), cursorRow, startCol, cursorRow, cursorCol, '');
237
- }
238
- case 'j': {
239
- // Down
240
- const linesToChange = Math.min(count, totalLines - cursorRow);
241
- if (linesToChange > 0) {
242
- if (totalLines === 1) {
243
- const currentLine = state.lines[0] || '';
244
- return replaceRangeInternal(pushUndo(state), 0, 0, 0, cpLen(currentLine), '');
245
- }
246
- else {
247
- const nextState = pushUndo(state);
248
- const { startOffset, endOffset } = getLineRangeOffsets(cursorRow, linesToChange, nextState.lines);
249
- const { startRow, startCol, endRow, endCol } = getPositionFromOffsets(startOffset, endOffset, nextState.lines);
250
- return replaceRangeInternal(nextState, startRow, startCol, endRow, endCol, '');
251
- }
252
- }
253
- return state;
254
- }
255
- case 'k': {
256
- // Up
257
- const upLines = Math.min(count, cursorRow + 1);
258
- if (upLines > 0) {
259
- if (state.lines.length === 1) {
260
- const currentLine = state.lines[0] || '';
261
- return replaceRangeInternal(pushUndo(state), 0, 0, 0, cpLen(currentLine), '');
262
- }
263
- else {
264
- const startRow = Math.max(0, cursorRow - count + 1);
265
- const linesToChange = cursorRow - startRow + 1;
266
- const nextState = pushUndo(state);
267
- const { startOffset, endOffset } = getLineRangeOffsets(startRow, linesToChange, nextState.lines);
268
- const { startRow: newStartRow, startCol, endRow, endCol, } = getPositionFromOffsets(startOffset, endOffset, nextState.lines);
269
- const resultState = replaceRangeInternal(nextState, newStartRow, startCol, endRow, endCol, '');
270
- return {
271
- ...resultState,
272
- cursorRow: startRow,
273
- cursorCol: 0,
274
- };
275
- }
276
- }
277
- return state;
278
- }
279
- case 'l': {
280
- // Right
281
- // Change N characters to the right
282
- return replaceRangeInternal(pushUndo(state), cursorRow, cursorCol, cursorRow, Math.min(cpLen(lines[cursorRow] || ''), cursorCol + count), '');
283
- }
284
- default:
285
- return state;
286
- }
287
- }
288
- case 'vim_move_left': {
289
- const { count } = action.payload;
290
- const { cursorRow, cursorCol, lines } = state;
291
- let newRow = cursorRow;
292
- let newCol = cursorCol;
293
- for (let i = 0; i < count; i++) {
294
- if (newCol > 0) {
295
- newCol--;
296
- }
297
- else if (newRow > 0) {
298
- // Move to end of previous line
299
- newRow--;
300
- const prevLine = lines[newRow] || '';
301
- const prevLineLength = cpLen(prevLine);
302
- // Position on last character, or column 0 for empty lines
303
- newCol = prevLineLength === 0 ? 0 : prevLineLength - 1;
304
- }
305
- }
306
- return {
307
- ...state,
308
- cursorRow: newRow,
309
- cursorCol: newCol,
310
- preferredCol: null,
311
- };
312
- }
313
- case 'vim_move_right': {
314
- const { count } = action.payload;
315
- const { cursorRow, cursorCol, lines } = state;
316
- let newRow = cursorRow;
317
- let newCol = cursorCol;
318
- for (let i = 0; i < count; i++) {
319
- const currentLine = lines[newRow] || '';
320
- const lineLength = cpLen(currentLine);
321
- // Don't move past the last character of the line
322
- // For empty lines, stay at column 0; for non-empty lines, don't go past last character
323
- if (lineLength === 0) {
324
- // Empty line - try to move to next line
325
- if (newRow < lines.length - 1) {
326
- newRow++;
327
- newCol = 0;
328
- }
329
- }
330
- else if (newCol < lineLength - 1) {
331
- newCol++;
332
- }
333
- else if (newRow < lines.length - 1) {
334
- // At end of line - move to beginning of next line
335
- newRow++;
336
- newCol = 0;
337
- }
338
- }
339
- return {
340
- ...state,
341
- cursorRow: newRow,
342
- cursorCol: newCol,
343
- preferredCol: null,
344
- };
345
- }
346
- case 'vim_move_up': {
347
- const { count } = action.payload;
348
- const { cursorRow, cursorCol, lines } = state;
349
- const newRow = Math.max(0, cursorRow - count);
350
- const newCol = Math.min(cursorCol, cpLen(lines[newRow] || ''));
351
- return {
352
- ...state,
353
- cursorRow: newRow,
354
- cursorCol: newCol,
355
- preferredCol: null,
356
- };
357
- }
358
- case 'vim_move_down': {
359
- const { count } = action.payload;
360
- const { cursorRow, cursorCol, lines } = state;
361
- const newRow = Math.min(lines.length - 1, cursorRow + count);
362
- const newCol = Math.min(cursorCol, cpLen(lines[newRow] || ''));
363
- return {
364
- ...state,
365
- cursorRow: newRow,
366
- cursorCol: newCol,
367
- preferredCol: null,
368
- };
369
- }
370
- case 'vim_move_word_forward': {
371
- const { count } = action.payload;
372
- let offset = getOffsetFromPosition(cursorRow, cursorCol, lines);
373
- for (let i = 0; i < count; i++) {
374
- const nextWordOffset = findNextWordStart(getText(), offset);
375
- if (nextWordOffset > offset) {
376
- offset = nextWordOffset;
377
- }
378
- else {
379
- // No more words to move to
380
- break;
381
- }
382
- }
383
- const { startRow, startCol } = getPositionFromOffsets(offset, offset, lines);
384
- return {
385
- ...state,
386
- cursorRow: startRow,
387
- cursorCol: startCol,
388
- preferredCol: null,
389
- };
390
- }
391
- case 'vim_move_word_backward': {
392
- const { count } = action.payload;
393
- let offset = getOffsetFromPosition(cursorRow, cursorCol, lines);
394
- for (let i = 0; i < count; i++) {
395
- offset = findPrevWordStart(getText(), offset);
396
- }
397
- const { startRow, startCol } = getPositionFromOffsets(offset, offset, lines);
398
- return {
399
- ...state,
400
- cursorRow: startRow,
401
- cursorCol: startCol,
402
- preferredCol: null,
403
- };
404
- }
405
- case 'vim_move_word_end': {
406
- const { count } = action.payload;
407
- let offset = getOffsetFromPosition(cursorRow, cursorCol, lines);
408
- for (let i = 0; i < count; i++) {
409
- offset = findWordEnd(getText(), offset);
410
- }
411
- const { startRow, startCol } = getPositionFromOffsets(offset, offset, lines);
412
- return {
413
- ...state,
414
- cursorRow: startRow,
415
- cursorCol: startCol,
416
- preferredCol: null,
417
- };
418
- }
419
- case 'vim_delete_char': {
420
- const { count } = action.payload;
421
- const { cursorRow, cursorCol, lines } = state;
422
- const currentLine = lines[cursorRow] || '';
423
- const lineLength = cpLen(currentLine);
424
- if (cursorCol < lineLength) {
425
- const deleteCount = Math.min(count, lineLength - cursorCol);
426
- const nextState = pushUndo(state);
427
- return replaceRangeInternal(nextState, cursorRow, cursorCol, cursorRow, cursorCol + deleteCount, '');
428
- }
429
- return state;
430
- }
431
- case 'vim_insert_at_cursor': {
432
- // Just return state - mode change is handled elsewhere
433
- return state;
434
- }
435
- case 'vim_append_at_cursor': {
436
- const { cursorRow, cursorCol, lines } = state;
437
- const currentLine = lines[cursorRow] || '';
438
- const newCol = cursorCol < cpLen(currentLine) ? cursorCol + 1 : cursorCol;
439
- return {
440
- ...state,
441
- cursorCol: newCol,
442
- preferredCol: null,
443
- };
444
- }
445
- case 'vim_open_line_below': {
446
- const { cursorRow, lines } = state;
447
- const nextState = pushUndo(state);
448
- // Insert newline at end of current line
449
- const endOfLine = cpLen(lines[cursorRow] || '');
450
- return replaceRangeInternal(nextState, cursorRow, endOfLine, cursorRow, endOfLine, '\n');
451
- }
452
- case 'vim_open_line_above': {
453
- const { cursorRow } = state;
454
- const nextState = pushUndo(state);
455
- // Insert newline at beginning of current line
456
- const resultState = replaceRangeInternal(nextState, cursorRow, 0, cursorRow, 0, '\n');
457
- // Move cursor to the new line above
458
- return {
459
- ...resultState,
460
- cursorRow,
461
- cursorCol: 0,
462
- };
463
- }
464
- case 'vim_append_at_line_end': {
465
- const { cursorRow, lines } = state;
466
- const lineLength = cpLen(lines[cursorRow] || '');
467
- return {
468
- ...state,
469
- cursorCol: lineLength,
470
- preferredCol: null,
471
- };
472
- }
473
- case 'vim_insert_at_line_start': {
474
- const { cursorRow, lines } = state;
475
- const currentLine = lines[cursorRow] || '';
476
- let col = 0;
477
- // Find first non-whitespace character using proper Unicode handling
478
- const lineCodePoints = [...currentLine]; // Proper Unicode iteration
479
- while (col < lineCodePoints.length && /\s/.test(lineCodePoints[col])) {
480
- col++;
481
- }
482
- return {
483
- ...state,
484
- cursorCol: col,
485
- preferredCol: null,
486
- };
487
- }
488
- case 'vim_move_to_line_start': {
489
- return {
490
- ...state,
491
- cursorCol: 0,
492
- preferredCol: null,
493
- };
494
- }
495
- case 'vim_move_to_line_end': {
496
- const { cursorRow, lines } = state;
497
- const lineLength = cpLen(lines[cursorRow] || '');
498
- return {
499
- ...state,
500
- cursorCol: lineLength > 0 ? lineLength - 1 : 0,
501
- preferredCol: null,
502
- };
503
- }
504
- case 'vim_move_to_first_nonwhitespace': {
505
- const { cursorRow, lines } = state;
506
- const currentLine = lines[cursorRow] || '';
507
- let col = 0;
508
- // Find first non-whitespace character using proper Unicode handling
509
- const lineCodePoints = [...currentLine]; // Proper Unicode iteration
510
- while (col < lineCodePoints.length && /\s/.test(lineCodePoints[col])) {
511
- col++;
512
- }
513
- return {
514
- ...state,
515
- cursorCol: col,
516
- preferredCol: null,
517
- };
518
- }
519
- case 'vim_move_to_first_line': {
520
- return {
521
- ...state,
522
- cursorRow: 0,
523
- cursorCol: 0,
524
- preferredCol: null,
525
- };
526
- }
527
- case 'vim_move_to_last_line': {
528
- const { lines } = state;
529
- const lastRow = lines.length - 1;
530
- return {
531
- ...state,
532
- cursorRow: lastRow,
533
- cursorCol: 0,
534
- preferredCol: null,
535
- };
536
- }
537
- case 'vim_move_to_line': {
538
- const { lineNumber } = action.payload;
539
- const { lines } = state;
540
- const targetRow = Math.min(Math.max(0, lineNumber - 1), lines.length - 1);
541
- return {
542
- ...state,
543
- cursorRow: targetRow,
544
- cursorCol: 0,
545
- preferredCol: null,
546
- };
547
- }
548
- case 'vim_escape_insert_mode': {
549
- // Move cursor left if not at beginning of line (vim behavior when exiting insert mode)
550
- const { cursorCol } = state;
551
- const newCol = cursorCol > 0 ? cursorCol - 1 : 0;
552
- return {
553
- ...state,
554
- cursorCol: newCol,
555
- preferredCol: null,
556
- };
557
- }
558
- default: {
559
- // This should never happen if TypeScript is working correctly
560
- const _exhaustiveCheck = action;
561
- return state;
562
- }
563
- }
564
- }
565
- //# sourceMappingURL=vim-buffer-actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vim-buffer-actions.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/vim-buffer-actions.ts"],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { LoadedSettings } from '../../config/settings.js';
7
- export type VimMode = 'NORMAL' | 'INSERT';
8
- interface VimModeContextType {
9
- vimEnabled: boolean;
10
- vimMode: VimMode;
11
- toggleVimEnabled: () => Promise<boolean>;
12
- setVimMode: (mode: VimMode) => void;
13
- }
14
- export declare const VimModeProvider: ({ children, settings, }: {
15
- children: React.ReactNode;
16
- settings: LoadedSettings;
17
- }) => import("react/jsx-runtime").JSX.Element;
18
- export declare const useVimMode: () => VimModeContextType;
19
- export {};
@@ -1,48 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- /**
3
- * @license
4
- * Copyright 2025 Google LLC
5
- * SPDX-License-Identifier: Apache-2.0
6
- */
7
- import { createContext, useCallback, useContext, useEffect, useState, } from 'react';
8
- import { SettingScope } from '../../config/settings.js';
9
- const VimModeContext = createContext(undefined);
10
- export const VimModeProvider = ({ children, settings, }) => {
11
- const initialVimEnabled = settings.merged.vimMode ?? false;
12
- const [vimEnabled, setVimEnabled] = useState(initialVimEnabled);
13
- const [vimMode, setVimMode] = useState(initialVimEnabled ? 'NORMAL' : 'INSERT');
14
- useEffect(() => {
15
- // Initialize vimEnabled from settings on mount
16
- const enabled = settings.merged.vimMode ?? false;
17
- setVimEnabled(enabled);
18
- // When vim mode is enabled, always start in NORMAL mode
19
- if (enabled) {
20
- setVimMode('NORMAL');
21
- }
22
- }, [settings.merged.vimMode]);
23
- const toggleVimEnabled = useCallback(async () => {
24
- const newValue = !vimEnabled;
25
- setVimEnabled(newValue);
26
- // When enabling vim mode, start in NORMAL mode
27
- if (newValue) {
28
- setVimMode('NORMAL');
29
- }
30
- await settings.setValue(SettingScope.User, 'vimMode', newValue);
31
- return newValue;
32
- }, [vimEnabled, settings]);
33
- const value = {
34
- vimEnabled,
35
- vimMode,
36
- toggleVimEnabled,
37
- setVimMode,
38
- };
39
- return (_jsx(VimModeContext.Provider, { value: value, children: children }));
40
- };
41
- export const useVimMode = () => {
42
- const context = useContext(VimModeContext);
43
- if (context === undefined) {
44
- throw new Error('useVimMode must be used within a VimModeProvider');
45
- }
46
- return context;
47
- };
48
- //# sourceMappingURL=VimModeContext.js.map