File tree Expand file tree Collapse file tree 4 files changed +21
-15
lines changed Expand file tree Collapse file tree 4 files changed +21
-15
lines changed Original file line number Diff line number Diff line change @@ -15,7 +15,6 @@ function Config:new(opts)
1515 opts = vim .tbl_deep_extend (' force' , defaults , opts or {}),
1616 todo_keywords = nil ,
1717 ts_hl_enabled = nil ,
18- old_cr_mapping = nil ,
1918 }
2019 setmetatable (data , self )
2120 return data
@@ -261,12 +260,12 @@ function Config:get_todo_keywords()
261260end
262261
263262--- Setup mappings for a given category and buffer
264- --- @param category string Mapping category name (e.g. ` agenda` , ` capture ` , ` node ` )
263+ --- @param category string Mapping category name (e.g. ` agenda` , ` capture ` , ` org ` )
265264--- @param buffer number ? Buffer id
266265--- @see orgmode.config.mappings
267266function Config :setup_mappings (category , buffer )
268- if not self . old_cr_mapping then
269- self . old_cr_mapping = utils .get_keymap ({
267+ if category == ' org ' and vim . bo . filetype == ' org ' and not vim . b . org_old_cr_mapping then
268+ vim . b . org_old_cr_mapping = utils .get_keymap ({
270269 mode = ' i' ,
271270 lhs = ' <CR>' ,
272271 buffer = buffer ,
Original file line number Diff line number Diff line change @@ -21,9 +21,9 @@ function MapEntry.action(handler, opts)
2121 opts .args = nil
2222 end
2323
24- action = (' <cmd>lua require("orgmode").action(%s)<CR>' ):format (table.concat (action , ' ,' ))
24+ local formatted_action = (' <cmd>lua require("orgmode").action(%s)<CR>' ):format (table.concat (action , ' ,' ))
2525
26- return MapEntry :new (action , opts )
26+ return MapEntry :new (formatted_action , opts )
2727end
2828
2929function MapEntry .text_object (handler )
Original file line number Diff line number Diff line change @@ -505,7 +505,7 @@ function OrgMappings:org_return()
505505 end
506506 end
507507
508- local old_mapping = config . old_cr_mapping
508+ local old_mapping = vim . b . org_old_cr_mapping
509509
510510 -- No other mapping for <CR>, just reproduce it.
511511 if not old_mapping or vim .tbl_isempty (old_mapping ) then
Original file line number Diff line number Diff line change @@ -175,18 +175,25 @@ end
175175--- @param data KeymapData
176176--- @return table ? map Mapping definition
177177function utils .get_keymap (data )
178- local keymaps
178+ local find_keymap = function (list )
179+ for _ , map in ipairs (list ) do
180+ if map .lhs == data .lhs then
181+ return map
182+ end
183+ end
184+ end
185+
186+ local keymap = nil
187+
179188 if data .buffer then
180- keymaps = vim .api .nvim_buf_get_keymap (data .buffer , data .mode )
181- else
182- keymaps = vim .api .nvim_get_keymap (data .mode )
189+ keymap = find_keymap (vim .api .nvim_buf_get_keymap (data .buffer , data .mode ))
183190 end
184191
185- for _ , map in ipairs (keymaps ) do
186- if map .lhs == data .lhs then
187- return map
188- end
192+ if not keymap then
193+ keymap = find_keymap (vim .api .nvim_get_keymap (data .mode ))
189194 end
195+
196+ return keymap
190197end
191198
192199function utils .esc (cmd )
You can’t perform that action at this time.
0 commit comments