Update TODO.txt and refine VFS watch logic in ServeSession

- Added a new entry in TODO.txt to follow up with Coelho on outstanding tasks.
- Simplified VFS watch logic to ensure both files and directories are monitored, addressing potential conflicts on macOS and improving overall watch reliability.
This commit is contained in:
Joe 2026-03-07 10:30:09 -06:00
parent 372b605fb5
commit c19b249657
2 changed files with 10 additions and 10 deletions

View file

@ -107,3 +107,5 @@ and make luau-lsp actually use the 'atlas' cli...
[two way sync]
so the plugin isnt respecting two-way sync for glob ignore
basically if a new script is on studio that isn't in atlas but even though it's glob ignored, it still tries to two-way sync it over and say there has been a change
[hit up coelho]

View file

@ -402,18 +402,16 @@ impl ServeSession {
.filter_entry(&passes_ignore)
.flatten()
{
// On macOS kqueue, non-recursive directory watches only
// fire for structural changes (child added/removed), NOT
// for child file content modifications. Individual file
// watches are required to detect edits. On Linux/Windows,
// directory watches already cover child file events so
// file watches would be redundant.
if entry.file_type().is_dir() || cfg!(target_os = "macos") {
// Watch both files and directories. On macOS kqueue,
// file watches are required because directory watches
// only fire for structural changes. On Linux/Windows,
// file watches prevent a debouncer race where read_raw's
// auto-registered file watch conflicts with the directory
// watch during rename-overwrite (atomic save pattern).
let _ = vfs.watch(entry.path());
watch_count += 1;
}
}
}
// Watch project folder non-recursively for project file edits.
let _ = vfs.watch(&project_folder);
watch_count += 1;