fix(filetype): ensure directory bufname ends w/ slash sep #40552

Problem:
`vim.filetype.match()` needs a cheap way to recognize directory buffers
without doing filesystem stat work.

Solution:
Ensure full buffer names for directories end in a trailing slash. Now
directory buffers can proceed through the normal 'filetype' path.

Note side-effects: session and ShaDa buffer-list restore behavior must
be compatible, so those + corresponding tests must be updated.
This commit is contained in:
Barrett Ruth
2026-07-10 11:40:13 -05:00
committed by GitHub
parent 20a4b1bc5e
commit 3b88a8a65d
14 changed files with 122 additions and 9 deletions

View File

@@ -942,6 +942,9 @@ void nvim_buf_del_var(Buffer buf, String name, Error *err)
/// Gets the full/absolute filepath of the buffer, or the buffer name for non-file buffers.
///
/// If the buffer represents a directory, the name ends with a path separator,
/// unless it was changed by |:file| or |nvim_buf_set_name()|.
///
/// @param buf Buffer id, or 0 for current buffer
/// @param[out] err Error details, if any
/// @return Buffer name