@@ -120,15 +120,24 @@ extension Docc.ProcessArchive {
120
120
frameworkName = potentialFrameworkName ?? " No_Framework_Name "
121
121
}
122
122
123
- var additionLinks : String = " "
124
- for addition in additionsExternalURLs {
125
- additionLinks. append ( " \n - < \( addition) > " )
126
- }
127
123
128
- var removalLinks : String = " "
129
- for removal in removalsExternalURLs {
130
- removalLinks. append ( " \n - < \( removal) > " )
131
- }
124
+ let additionLinks = groupSeparateSymbols ( symbolLinks: additionsExternalURLs)
125
+ let removalLinks = groupSeparateSymbols ( symbolLinks: removalsExternalURLs)
126
+
127
+
128
+
129
+ // let sortedAdditionSymbols = groupSeparateSymbols(symbolLinks: additionsExternalURLs)
130
+ // let sortedRemovalSymbols = groupSeparateSymbols(symbolLinks: removalsExternalURLs)
131
+ //
132
+ // var additionLinks: String = ""
133
+ // for addition in sortedAdditionSymbols {
134
+ // additionLinks.append("\n- <\(addition)>")
135
+ // }
136
+ //
137
+ // var removalLinks: String = ""
138
+ // for removal in sortedRemovalSymbols {
139
+ // removalLinks.append("\n- <\(removal)>")
140
+ // }
132
141
133
142
// Create markdown file with changes in the newer DocC Archive that do not exist in the initial DocC Archive.
134
143
for fileNameAndContent in Docc . ProcessArchive. DiffDocCArchive. changeLogTemplateFileContent ( frameworkName: frameworkName, initialDocCArchiveVersion: initialDocCArchiveVersion, newerDocCArchiveVersion: newerDocCArchiveVersion, additionLinks: additionLinks, removalLinks: removalLinks) {
@@ -232,6 +241,33 @@ extension Docc.ProcessArchive {
232
241
return nil
233
242
}
234
243
}
244
+
245
+ /// Process lists of symbols to group them according to the highest level path component.
246
+ ///
247
+ /// If a class didn't exist in the old version but now exists in the new version:
248
+ /// - print that a new class was added,
249
+ /// - display the number of symbols added within that class beside it.
250
+ ///
251
+ /// Otherwise, group symbols by their highest path component below a header, and then print a nested list.
252
+ func groupSeparateSymbols( symbolLinks: Set < String > ) -> String {
253
+
254
+ // Sort list alphabetically
255
+ let sortedSymbols : [ String ] = symbolLinks. sorted { $0. localizedCompare ( $1) == . orderedAscending }
256
+
257
+ // Check matching path components
258
+ // for each path component after the initial path component....
259
+ // for symbol in sortedSymbols {
260
+ // // example path components: ["/", "documentation", "accelerate", "vdsp", "vector-scalar_real_arithmetic_functions"]
261
+ // print(symbol.pathComponents)
262
+ // }
263
+
264
+ var links : String = " "
265
+ for symbol in sortedSymbols {
266
+ links. append ( " \n - < \( symbol) > " )
267
+ }
268
+
269
+ return links // TODO: STUB
270
+ }
235
271
236
272
}
237
273
}
0 commit comments