Show source of missing page links
This commit is contained in:
@ -260,6 +260,18 @@ final class GenerationResults: ObservableObject {
|
|||||||
let unused = existingFiles.subtracting(outputFiles)
|
let unused = existingFiles.subtracting(outputFiles)
|
||||||
update { self.unusedFilesInOutput = unused }
|
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> {
|
private extension Dictionary where Value == Set<LocalizedItemId> {
|
||||||
|
@ -31,3 +31,10 @@ extension LocalizedItemId: Comparable {
|
|||||||
return lhs.language < rhs.language
|
return lhs.language < rhs.language
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension LocalizedItemId: CustomStringConvertible {
|
||||||
|
|
||||||
|
var description: String {
|
||||||
|
"\(itemType) (\(language))"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -110,7 +110,13 @@ struct GenerationContentView: View {
|
|||||||
items: content.results.missingTags)
|
items: content.results.missingTags)
|
||||||
GenerationStringIssuesView(
|
GenerationStringIssuesView(
|
||||||
text: "missing pages",
|
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(
|
GenerationStringIssuesView(
|
||||||
text: "invalid commands",
|
text: "invalid commands",
|
||||||
items: content.results.invalidCommands)
|
items: content.results.invalidCommands)
|
||||||
|
Reference in New Issue
Block a user