205
205
--- Refile a headline from a regular org file (non-capture)
206
206
--- @private
207
207
--- @param opts OrgProcessRefileOpts
208
+ --- @return number
208
209
function Capture :_refile_from_org_file (opts )
209
210
local source_headline = opts .source_headline
210
211
local source_file = source_headline .file
@@ -242,6 +243,7 @@ function Capture:_refile_from_org_file(opts)
242
243
end
243
244
244
245
local range = self :_get_destination_range_without_empty_lines (Range .from_line (target_line ))
246
+ target_line = range .start_line
245
247
vim .api .nvim_buf_set_lines (0 , range .start_line , range .end_line , false , lines )
246
248
end )
247
249
:wait ()
@@ -252,7 +254,7 @@ function Capture:_refile_from_org_file(opts)
252
254
end
253
255
254
256
utils .echo_info (opts .message or (' Wrote %s' ):format (destination_file .filename ))
255
- return true
257
+ return target_line + 1
256
258
end
257
259
258
260
--- @param headline OrgHeadline
@@ -278,20 +280,19 @@ function Capture:refile_file_headline_to_archive(headline)
278
280
279
281
local destination_file = self .files :get (archive_location )
280
282
281
- self :_refile_from_org_file ({
283
+ local target_line = self :_refile_from_org_file ({
282
284
source_headline = headline ,
283
285
destination_file = destination_file ,
284
286
message = (' Archived to %s' ):format (destination_file .filename ),
285
287
})
286
288
287
289
destination_file = self .files :get (archive_location )
288
290
self .files :update_file (destination_file .filename , function (archive_file )
289
- local headlines = archive_file :get_headlines_including_archived ()
290
- local last_headline = headlines [# headlines ]
291
- last_headline :set_property (' ARCHIVE_TIME' , Date .now ():to_string ())
292
- last_headline :set_property (' ARCHIVE_FILE' , file .filename )
293
- last_headline :set_property (' ARCHIVE_CATEGORY' , headline :get_category ())
294
- last_headline :set_property (' ARCHIVE_TODO' , headline :get_todo () or ' ' )
291
+ local archived_headline = archive_file :get_closest_headline ({ target_line , 0 })
292
+ archived_headline :set_property (' ARCHIVE_TIME' , Date .now ():to_string ())
293
+ archived_headline :set_property (' ARCHIVE_FILE' , file .filename )
294
+ archived_headline :set_property (' ARCHIVE_CATEGORY' , headline :get_category ())
295
+ archived_headline :set_property (' ARCHIVE_TODO' , headline :get_todo () or ' ' )
295
296
end )
296
297
end
297
298
0 commit comments