logProjectChanges logs information about projects that have changed between snapshots
(oldSnapshot *Snapshot, newSnapshot *Snapshot)
| 1456 | |
| 1457 | // logProjectChanges logs information about projects that have changed between snapshots |
| 1458 | func (s *Session) logProjectChanges(oldSnapshot *Snapshot, newSnapshot *Snapshot) { |
| 1459 | var loggedProjectChanges bool |
| 1460 | logProject := func(project *Project) { |
| 1461 | var builder strings.Builder |
| 1462 | project.print(s.logger.IsVerbose() /*writeFileNames*/, s.logger.IsVerbose() /*writeFileExplanation*/, &builder) |
| 1463 | s.logger.Log(builder.String()) |
| 1464 | loggedProjectChanges = true |
| 1465 | } |
| 1466 | collections.DiffOrderedMaps( |
| 1467 | oldSnapshot.ProjectCollection.ProjectsByPath(), |
| 1468 | newSnapshot.ProjectCollection.ProjectsByPath(), |
| 1469 | func(path tspath.Path, addedProject *Project) { |
| 1470 | // New project added |
| 1471 | logProject(addedProject) |
| 1472 | }, |
| 1473 | func(path tspath.Path, removedProject *Project) { |
| 1474 | // Project removed |
| 1475 | s.logger.Logf("\nProject '%s' removed\n%s", removedProject.Name(), hr) |
| 1476 | }, |
| 1477 | func(path tspath.Path, oldProject, newProject *Project) { |
| 1478 | // Project updated |
| 1479 | if newProject.ProgramUpdateKind == ProgramUpdateKindNewFiles { |
| 1480 | logProject(newProject) |
| 1481 | } |
| 1482 | }, |
| 1483 | ) |
| 1484 | |
| 1485 | if loggedProjectChanges || s.logger.IsVerbose() { |
| 1486 | s.logCacheStats(newSnapshot) |
| 1487 | } |
| 1488 | } |
| 1489 | |
| 1490 | func (s *Session) logCacheStats(snapshot *Snapshot) { |
| 1491 | var parseCacheSize int |
no test coverage detected