Show source of missing page links

This commit is contained in:
Christoph Hagen 2025-05-04 11:47:20 +02:00
parent dd720d6646
commit d6502fb09c
3 changed files with 26 additions and 1 deletions

View File

@ -260,6 +260,18 @@ final class GenerationResults: ObservableObject {
let unused = existingFiles.subtracting(outputFiles)
update { self.unusedFilesInOutput = unused }
}
func sources(forMissingPage page: String) -> [(page: LocalizedItemId, source: String)] {
var all = [(page: LocalizedItemId, source: String)]()
for (id, results) in cache {
guard let sources = results.missingLinkedPages[page]?.sorted() else {
continue
}
let additions = sources.map { (page: id, source: $0) }
all.append(contentsOf: additions)
}
return all
}
}
private extension Dictionary where Value == Set<LocalizedItemId> {

View File

@ -31,3 +31,10 @@ extension LocalizedItemId: Comparable {
return lhs.language < rhs.language
}
}
extension LocalizedItemId: CustomStringConvertible {
var description: String {
"\(itemType) (\(language))"
}
}

View File

@ -110,7 +110,13 @@ struct GenerationContentView: View {
items: content.results.missingTags)
GenerationStringIssuesView(
text: "missing pages",
items: content.results.missingPages)
items: content.results.missingPages) { pageId in
let sources = content.results.sources(forMissingPage: pageId)
.map { "\($0.page): \($0.source)"}
.joined(separator: ", ")
return "\(pageId) (\(sources))"
}
GenerationStringIssuesView(
text: "invalid commands",
items: content.results.invalidCommands)