File tree Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Expand file tree Collapse file tree 2 files changed +51
-0
lines changed Original file line number Diff line number Diff line change @@ -35,8 +35,34 @@ local function create_file_instance(lines, filename)
35
35
return file
36
36
end
37
37
38
+ --- @return table
39
+ local function create_agenda_files (filenames , contents )
40
+ -- NOTE: content is only 1 line for 1 file
41
+ local temp_fname = vim .fn .tempname ()
42
+ local temp_dir = vim .fn .fnamemodify (temp_fname , ' :p:h' )
43
+ local files = {}
44
+ for i , filename in ipairs (filenames ) do
45
+ local fname = temp_dir .. ' /' .. filename
46
+ fname = vim .fn .fnamemodify (fname , ' :p' )
47
+ if fname then
48
+ local dir = vim .fn .fnamemodify (fname , ' :p:h' )
49
+ vim .fn .mkdir (dir , ' p' )
50
+ vim .fn .writefile ({ contents [i ] }, fname )
51
+ files [filename ] = fname
52
+ end
53
+ end
54
+ local cfg = vim .tbl_extend (' force' , {
55
+ org_agenda_files = { temp_dir .. ' /**/*' },
56
+ }, {})
57
+ local org = orgmode .setup (cfg )
58
+ org :init ()
59
+ return files
60
+ end
61
+
38
62
return {
63
+ load_file = load_file ,
39
64
create_file = create_file ,
40
65
create_file_instance = create_file_instance ,
41
66
create_agenda_file = create_agenda_file ,
67
+ create_agenda_files = create_agenda_files ,
42
68
}
Original file line number Diff line number Diff line change @@ -339,6 +339,31 @@ describe('Autocompletion', function()
339
339
{ menu = ' [Org]' , word = ' Title without anchor' },
340
340
}, result )
341
341
end )
342
+
343
+ it (' should work on relative paths' , function ()
344
+ local files = helpers .create_agenda_files ({
345
+ ' a.org' ,
346
+ ' b/c.org' ,
347
+ }, {
348
+ ' [[./ ' ,
349
+ ' [[../ ' ,
350
+ })
351
+ helpers .load_file (files [' a.org' ])
352
+ vim .fn .cursor ({ 1 , 5 })
353
+
354
+ assert .are .same ({
355
+ { menu = ' [Org]' , word = ' ./a.org' },
356
+ { menu = ' [Org]' , word = ' ./b/c.org' },
357
+ }, org .completion :omnifunc (0 , ' ./' ))
358
+
359
+ helpers .load_file (files [' b/c.org' ])
360
+ vim .fn .cursor ({ 1 , 6 })
361
+
362
+ assert .are .same ({
363
+ { menu = ' [Org]' , word = ' ../a.org' },
364
+ { menu = ' [Org]' , word = ' ../b/c.org' },
365
+ }, org .completion :omnifunc (0 , ' ../' ))
366
+ end )
342
367
end )
343
368
end )
344
369
end )
You can’t perform that action at this time.
0 commit comments