145 references to ChangeKind
dotnet-watch (41)
Build\FilePathExclusions.cs (1)
85internal bool IsExcluded(string fullPath, ChangeKind changeKind, ILogger logger)
FileWatcher\ChangeKind.cs (2)
13internal readonly record struct ChangedFile(FileItem Item, ChangeKind Kind); 15internal readonly record struct ChangedPath(string Path, ChangeKind Kind);
FileWatcher\DirectoryWatcher.cs (1)
23protected void NotifyChange(string fullPath, ChangeKind kind)
FileWatcher\EventBasedDirectoryWatcher.cs (7)
69NotifyChange(oldLocation, ChangeKind.Delete); 70NotifyChange(newLocation, ChangeKind.Add); 75NotifyChange(e.OldFullPath, ChangeKind.Delete); 76NotifyChange(e.FullPath, ChangeKind.Add); 97NotifyChange(e.FullPath, ChangeKind.Delete); 117NotifyChange(e.FullPath, ChangeKind.Update); 136NotifyChange(e.FullPath, ChangeKind.Add);
FileWatcher\PollingDirectoryWatcher.cs (5)
20private readonly Dictionary<string, ChangeKind> _changesBuilder = new(PathUtilities.OSSpecificPathComparer); 106_changesBuilder.TryAdd(filePath, ChangeKind.Add); 110_changesBuilder.TryAdd(filePath, ChangeKind.Update); 120_changesBuilder.TryAdd(filePath, ChangeKind.Delete); 179private void NotifyChanges(Dictionary<string, ChangeKind> changes)
HotReload\HotReloadDotNetWatcher.cs (23)
233if (!extendTimeout && changedFilesAccumulator.Any(change => change.Kind is ChangeKind.Add or ChangeKind.Delete)) 430var changeKind = changedPath.Kind == ChangeKind.Add ? ChangeKind.Update : changedPath.Kind; 449var fileAdded = changedFiles.Any(f => f.Kind is ChangeKind.Add); 742if (item.Kind == ChangeKind.Add) 749lastUpdate ??= item with { Kind = ChangeKind.Update }; 756else if (item.Kind == ChangeKind.Delete) 772else if (item.Kind == ChangeKind.Update) 799Report(kind: ChangeKind.Add); 800Report(kind: ChangeKind.Update); 801Report(kind: ChangeKind.Delete); 803void Report(ChangeKind kind) 812string GetMessage(IReadOnlyList<ChangedFile> items, ChangeKind kind) 817static string GetSingularMessage(ChangeKind kind) 820ChangeKind.Update => "File updated", 821ChangeKind.Add => "File added", 822ChangeKind.Delete => "File deleted", 826static string GetPluralMessage(ChangeKind kind) 829ChangeKind.Update => "Files updated", 830ChangeKind.Add => "Files added", 831ChangeKind.Delete => "Files deleted",
HotReload\IncrementalMSBuildWorkspace.cs (2)
128Debug.Assert(change != ChangeKind.Add); 131if (change == ChangeKind.Delete)
dotnet-watch.Tests (104)
FileWatcher\FileWatcherTests.cs (33)
161new(file, ChangeKind.Add), 165new(file, ChangeKind.Update), 166new(file, ChangeKind.Add), 195new(fileInSubdir, ChangeKind.Add), 199new(fileInSubdir, ChangeKind.Update), 200new(fileInSubdir, ChangeKind.Add), 228expectedChanges: [new(file, ChangeKind.Update)], 249new(srcFile, ChangeKind.Update), 250new(srcFile, ChangeKind.Add), 251new(srcFile, ChangeKind.Delete), 252new(dstFile, ChangeKind.Add), 256new(srcFile, ChangeKind.Delete), 257new(dstFile, ChangeKind.Add), 285new(fileInDir, ChangeKind.Update), 286new(fileInSubdir, ChangeKind.Update) 290new(fileInDir, ChangeKind.Update), 291new(fileInDir, ChangeKind.Add), 292new(fileInSubdir, ChangeKind.Update), 293new(fileInSubdir, ChangeKind.Add), 300new(fileInDir, ChangeKind.Update), 388expectedChanges: [new(file3, ChangeKind.Update)], 479new(f1, ChangeKind.Update), 480new(f1, ChangeKind.Add), 481new(f1, ChangeKind.Delete), 482new(f2, ChangeKind.Update), 483new(f2, ChangeKind.Add), 484new(f2, ChangeKind.Delete), 485new(f3, ChangeKind.Update), 486new(f3, ChangeKind.Add), 487new(f3, ChangeKind.Delete), 491new(f1, ChangeKind.Delete), 492new(f2, ChangeKind.Delete), 493new(f3, ChangeKind.Delete),
HotReload\HotReloadDotNetWatcherTests.cs (67)
9[InlineData(new[] { ChangeKind.Update }, new[] { ChangeKind.Update })] 10[InlineData(new[] { ChangeKind.Add }, new[] { ChangeKind.Add })] 11[InlineData(new[] { ChangeKind.Delete }, new[] { ChangeKind.Delete })] 13[InlineData(new[] { ChangeKind.Update, ChangeKind.Update }, new[] { ChangeKind.Update })] 14[InlineData(new[] { ChangeKind.Update, ChangeKind.Delete }, new[] { ChangeKind.Delete })] 15[InlineData(new[] { ChangeKind.Add, ChangeKind.Update }, new[] { ChangeKind.Add })] 16[InlineData(new[] { ChangeKind.Add, ChangeKind.Delete }, new ChangeKind[] { })] 17[InlineData(new[] { ChangeKind.Delete, ChangeKind.Add}, new[] { ChangeKind.Update })] 18[InlineData(new[] { ChangeKind.Add, ChangeKind.Add }, new[] { ChangeKind.Add })] 19[InlineData(new[] { ChangeKind.Delete, ChangeKind.Delete }, new[] { ChangeKind.Delete })] 21[InlineData(new[] { ChangeKind.Add, ChangeKind.Delete, ChangeKind.Add, ChangeKind.Delete }, new ChangeKind[] { })] 22[InlineData(new[] { ChangeKind.Update, ChangeKind.Delete, ChangeKind.Add, ChangeKind.Update }, new[] { ChangeKind.Update })] 23[InlineData(new[] { ChangeKind.Update, ChangeKind.Delete, ChangeKind.Update, ChangeKind.Add, ChangeKind.Update }, new[] { ChangeKind.Update })] 24[InlineData(new[] { ChangeKind.Add, ChangeKind.Delete, ChangeKind.Delete }, new ChangeKind[] { })] 25[InlineData(new[] { ChangeKind.Add, ChangeKind.Add, ChangeKind.Delete }, new ChangeKind[] { })] 26[InlineData(new[] { ChangeKind.Add, ChangeKind.Update, ChangeKind.Delete }, new ChangeKind[] { })] 27[InlineData(new[] { ChangeKind.Update, ChangeKind.Add, ChangeKind.Delete }, new[] { ChangeKind.Update })] 30[InlineData(new[] { ChangeKind.Update, ChangeKind.Add }, new[] { ChangeKind.Add })] 33[InlineData(new[] { ChangeKind.Delete, ChangeKind.Update }, new[] { ChangeKind.Delete })] 34internal void NormalizeFileChanges(ChangeKind[] changes, ChangeKind[] expected)
Watch\BuildEvaluatorTests.cs (4)
46await evaluator.EvaluateAsync(changedFile: new(new() { FilePath = "Test.csproj", ContainingProjectPaths = [] }, ChangeKind.Update), CancellationToken.None); 64await evaluator.EvaluateAsync(changedFile: new(new() { FilePath = "Controller.cs", ContainingProjectPaths = [] }, ChangeKind.Update), CancellationToken.None); 84await evaluator.EvaluateAsync(changedFile: new(new() { FilePath = "Controller.cs", ContainingProjectPaths = [] }, ChangeKind.Update), CancellationToken.None); 121await evaluator.EvaluateAsync(new(new() { FilePath = "Controller.cs", ContainingProjectPaths = [] }, ChangeKind.Update), CancellationToken.None);