@@ -283,32 +283,35 @@ function M.load_project_status(path)
283283 end
284284end
285285
286+ --- Git file and directory status for an absolute path with optional file fallback
286287--- @param parent_ignored boolean
287288--- @param status table | nil
288- --- @param absolute_path string
289+ --- @param path string
290+ --- @param path_file string ? alternative file path when no other file status
289291--- @return GitStatus | nil
290- function M .git_status_dir (parent_ignored , status , absolute_path )
292+ function M .git_status_dir (parent_ignored , status , path , path_file )
291293 if parent_ignored then
292294 return { file = " !!" }
293295 end
294296
295297 if status then
296298 return {
297- file = status .files and status .files [absolute_path ],
299+ file = status .files and status .files [path ] or path_file and status . files [ path_file ],
298300 dir = status .dirs and {
299- direct = status .dirs .direct [absolute_path ],
300- indirect = status .dirs .indirect [absolute_path ],
301+ direct = status .dirs .direct [path ],
302+ indirect = status .dirs .indirect [path ],
301303 },
302304 }
303305 end
304306end
305307
306- --- Git file status for an absolute path
308+ --- Git file status for an absolute path with optional fallback
307309--- @param parent_ignored boolean
308310--- @param status table | nil
309- --- @param absolute_paths string[] status for first match is returned
311+ --- @param path string
312+ --- @param path_fallback string ?
310313--- @return GitStatus
311- function M .git_status_file (parent_ignored , status , absolute_paths )
314+ function M .git_status_file (parent_ignored , status , path , path_fallback )
312315 if parent_ignored then
313316 return { file = " !!" }
314317 end
@@ -317,14 +320,9 @@ function M.git_status_file(parent_ignored, status, absolute_paths)
317320 return {}
318321 end
319322
320- for _ , p in ipairs (absolute_paths ) do
321- local s = status .files [p ]
322- if s then
323- return { file = s }
324- end
325- end
326-
327- return {}
323+ return {
324+ file = status .files [path ] or status .files [path_fallback ]
325+ }
328326end
329327
330328function M .purge_state ()
0 commit comments