dispose method
Stops watching and cancels any pending debounce timer.
Implementation
Future<void> dispose() async {
if (_disposed) return;
_disposed = true;
_debounceTimer?.cancel();
for (final subscription in _subscriptions) {
await subscription.cancel();
}
_subscriptions.clear();
_pendingPaths.clear();
}