@@ -10,7 +10,8 @@ local Listitem = require('orgmode.files.elements.listitem')
10
10
11
11
--- @class OrgFiles
12
12
--- @field paths string[]
13
- --- @field files table<string , OrgFile>
13
+ --- @field files table<string , OrgFile> table with files that are part of paths
14
+ --- @field all_files table<string , OrgFile> all loaded files , no matter if they are part of paths
14
15
--- @field load_state ' loading' | ' loaded' | nil
15
16
local OrgFiles = {}
16
17
@@ -19,6 +20,7 @@ function OrgFiles:new(opts)
19
20
local data = {
20
21
paths = opts .paths or {},
21
22
files = {},
23
+ all_files = {},
22
24
load_state = nil ,
23
25
}
24
26
setmetatable (data , self )
79
81
80
82
function OrgFiles :unload ()
81
83
self .files = {}
84
+ self .all_files = {}
82
85
self .paths = {}
83
86
self .load_state = nil
84
87
return self
@@ -125,12 +128,19 @@ end
125
128
126
129
--- @return OrgPromise<OrgFile>
127
130
function OrgFiles :load_file (filename )
128
- local file = self .files [filename ]
131
+ local file = self .all_files [filename ]
129
132
if file then
130
133
return file :reload ()
131
134
end
132
135
133
- return OrgFile .load (filename )
136
+ local promise = OrgFile .load (filename ):next (function (orgfile )
137
+ if orgfile then
138
+ self .all_files [filename ] = orgfile
139
+ end
140
+ return orgfile
141
+ end )
142
+
143
+ return promise
134
144
end
135
145
136
146
--- @return OrgFile | nil
@@ -145,7 +155,6 @@ function OrgFiles:get(filename)
145
155
end
146
156
147
157
function OrgFiles :reload (filename )
148
- local prev_file = self .files [filename ]
149
158
self :load_file (filename ):next (function (orgfile )
150
159
return orgfile
151
160
end )
0 commit comments