func isHidden(watchPath, keyPath string) bool {
	// When deleting a directory, watchPath might be deeper than the actual keyPath
	// For example, when deleting /foo we also need to notify watchers on /foo/bar.
	if len(watchPath) > len(keyPath) {
		return false
	}
	// if watch path is just a "/", after path will start without "/"
	// add a "/" to deal with the special case when watchPath is "/"
	afterPath := path.Clean("/" + keyPath[len(watchPath):])
	return strings.Contains(afterPath, "/_")
}
func isHidden(watchPath, keyPath string) bool {
	
	
	if len(watchPath) > len(keyPath) {
		return false
	}
	
	
	afterPath := path.Clean("/" + keyPath[len(watchPath):])
	return strings.Contains(afterPath, "/_")
}
func isHidden ( watchPath , keyPath string ) bool { // When deleting a directory, watchPath might be deeper than the actual keyPath // For example, when deleting /foo we also need to notify watchers on /foo/bar. if len ( watchPath ) > len ( keyPath ) { return false } // if watch path is just a "/", after path will start without "/" // add a "/" to deal with the special case when watchPath is "/" afterPath := path . Clean ( " " + keyPath [ len ( watchPath ) : ] ) return strings . Contains ( afterPath , " " ) }
// isHidden checks to see if key path is considered hidden to watch path i.e. the
// last element is hidden or it's within a hidden directory
isHidden checks to see if key path is considered hidden to watch path i . e . the last element is hidden or it s within a hidden directory