@@ -130,6 +130,12 @@ function Calendar:open()
130
130
vim .keymap .set (' n' , ' <Left>' , function ()
131
131
return self :cursor_left ()
132
132
end , map_opts )
133
+ vim .keymap .set (' n' , ' 0' , function ()
134
+ return self :beginning ()
135
+ end , map_opts )
136
+ vim .keymap .set (' n' , ' $' , function ()
137
+ return self :ending ()
138
+ end , map_opts )
133
139
vim .keymap .set (' n' , ' <Right>' , function ()
134
140
return self :cursor_right ()
135
141
end , map_opts )
@@ -436,6 +442,27 @@ function Calendar:cursor_left()
436
442
self :render ()
437
443
end
438
444
445
+ function Calendar :beginning ()
446
+ if self .select_state ~= SelState .DAY then
447
+ return
448
+ end
449
+ local line = vim .fn .line (' .' )
450
+ vim .fn .cursor (line , vim .fn .getline (' .' ):match (' ^%s*' ):len () + 1 )
451
+ self .date = self :get_selected_date ()
452
+ self :render ()
453
+ end
454
+
455
+ function Calendar :ending ()
456
+ if self .select_state ~= SelState .DAY then
457
+ return
458
+ end
459
+ local line = vim .fn .line (' .' )
460
+ local line_no_trailing_space = vim .fn .getline (' .' ):gsub (' %s*$' , ' ' )
461
+ vim .fn .cursor (line , line_no_trailing_space :len ())
462
+ self .date = self :get_selected_date ()
463
+ self :render ()
464
+ end
465
+
439
466
--- @param direction string
440
467
--- @param step_size number
441
468
--- @param current number
0 commit comments