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)
15
15
opts = vim .tbl_deep_extend (' force' , defaults , opts or {}),
16
16
todo_keywords = nil ,
17
17
ts_hl_enabled = nil ,
18
- old_cr_mapping = nil ,
19
18
}
20
19
setmetatable (data , self )
21
20
return data
@@ -261,12 +260,12 @@ function Config:get_todo_keywords()
261
260
end
262
261
263
262
--- 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 ` )
265
264
--- @param buffer number ? Buffer id
266
265
--- @see orgmode.config.mappings
267
266
function 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 ({
270
269
mode = ' i' ,
271
270
lhs = ' <CR>' ,
272
271
buffer = buffer ,
Original file line number Diff line number Diff line change @@ -21,9 +21,9 @@ function MapEntry.action(handler, opts)
21
21
opts .args = nil
22
22
end
23
23
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 , ' ,' ))
25
25
26
- return MapEntry :new (action , opts )
26
+ return MapEntry :new (formatted_action , opts )
27
27
end
28
28
29
29
function MapEntry .text_object (handler )
Original file line number Diff line number Diff line change @@ -505,7 +505,7 @@ function OrgMappings:org_return()
505
505
end
506
506
end
507
507
508
- local old_mapping = config . old_cr_mapping
508
+ local old_mapping = vim . b . org_old_cr_mapping
509
509
510
510
-- No other mapping for <CR>, just reproduce it.
511
511
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
175
175
--- @param data KeymapData
176
176
--- @return table ? map Mapping definition
177
177
function 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
+
179
188
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 ))
183
190
end
184
191
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 ))
189
194
end
195
+
196
+ return keymap
190
197
end
191
198
192
199
function utils .esc (cmd )
You can’t perform that action at this time.
0 commit comments