From 9fb13ee7e52aabd3f414227981420aec629729cf Mon Sep 17 00:00:00 2001 From: Celso Benedetti Date: Sat, 24 May 2025 10:44:36 -0300 Subject: [PATCH 1/3] fix: config =$= and =0= motions for calendar view --- lua/orgmode/objects/calendar.lua | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lua/orgmode/objects/calendar.lua b/lua/orgmode/objects/calendar.lua index 8a440ae84..4b3e90c68 100644 --- a/lua/orgmode/objects/calendar.lua +++ b/lua/orgmode/objects/calendar.lua @@ -130,6 +130,12 @@ function Calendar:open() vim.keymap.set('n', '', function() return self:cursor_left() end, map_opts) + vim.keymap.set('n', '0', function() + return self:beginning() + end, map_opts) + vim.keymap.set('n', '$', function() + return self:ending() + end, map_opts) vim.keymap.set('n', '', function() return self:cursor_right() end, map_opts) @@ -436,6 +442,26 @@ function Calendar:cursor_left() self:render() end +function Calendar:beginning() + if self.select_state ~= SelState.DAY then + return + end + local line = vim.fn.line('.') + vim.fn.cursor(line, 2) + self.date = self:get_selected_date() + self:render() +end + +function Calendar:ending() + if self.select_state ~= SelState.DAY then + return + end + local line = vim.fn.line('.') + vim.fn.cursor(line, vim.fn.winwidth(0) - 3) + self.date = self:get_selected_date() + self:render() +end + ---@param direction string ---@param step_size number ---@param current number From 9645480157c3919fb4614c642bdb6e4b95ee0859 Mon Sep 17 00:00:00 2001 From: Celso Benedetti Date: Tue, 27 May 2025 12:17:31 -0300 Subject: [PATCH 2/3] fix: line string beginning index Co-authored-by: Kristijan Husak --- lua/orgmode/objects/calendar.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/orgmode/objects/calendar.lua b/lua/orgmode/objects/calendar.lua index 4b3e90c68..9e71a1371 100644 --- a/lua/orgmode/objects/calendar.lua +++ b/lua/orgmode/objects/calendar.lua @@ -447,7 +447,7 @@ function Calendar:beginning() return end local line = vim.fn.line('.') - vim.fn.cursor(line, 2) + vim.fn.cursor(line, vim.fn.getline('.'):match('^%s*'):len() + 1) self.date = self:get_selected_date() self:render() end From 49bfc834e81a5b465be2d00f5d576d8911c5ab81 Mon Sep 17 00:00:00 2001 From: Celso Benedetti Date: Tue, 27 May 2025 12:17:39 -0300 Subject: [PATCH 3/3] fix: line string ending index Co-authored-by: Kristijan Husak --- lua/orgmode/objects/calendar.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lua/orgmode/objects/calendar.lua b/lua/orgmode/objects/calendar.lua index 9e71a1371..7c3f4d907 100644 --- a/lua/orgmode/objects/calendar.lua +++ b/lua/orgmode/objects/calendar.lua @@ -457,7 +457,8 @@ function Calendar:ending() return end local line = vim.fn.line('.') - vim.fn.cursor(line, vim.fn.winwidth(0) - 3) + local line_no_trailing_space = vim.fn.getline('.'):gsub('%s*$', '') + vim.fn.cursor(line, line_no_trailing_space:len()) self.date = self:get_selected_date() self:render() end