Style-heavy files: a repeated name keeps its first place, and one more lookup uses the id set

This commit is contained in:
bflatastic committed 2026-11-07 08:24:02 +07:00
1 parent 03aa619fba
commit 7eac937acc
2 files changed
+2 -2

No files matched your search

+1 -1
View File
@@ -2157,7 +2157,7 @@ fn import_themed_tokens(
}
// Each set's place in the order once: a position search per comparison was quadratic in
// the order's length for every one of the sort's comparisons.
let place: BTreeMap<&str, usize> = order.iter().enumerate().map(|(i, o)| (*o, i)).collect();
let place: BTreeMap<&str, usize> = order.iter().enumerate().rev().map(|(i, o)| (*o, i)).collect();
set_names.sort_by_key(|name| place.get(name).copied().unwrap_or(usize::MAX));
let set_names: Vec<&str> = set_names.into_iter().take(512).collect();
let mut tokens: BTreeMap<&str, BTreeMap<String, &Value>> = BTreeMap::new();
+1 -1
View File
@@ -922,7 +922,7 @@ impl<'a> Ctx<'a> {
fn style_definitions(&mut self, v: &'a Value) {
for d in list(v, "styleDefinitions").iter().take(MAX_STYLES) {
let (Some(id), Some(node)) = (text(d, "id").filter(|i| !i.is_empty()).map(clip_str), d.get("node")) else { continue };
if self.doc.styles.iter().any(|s| s.id == id) {
if self.style_ids.contains(id) {
continue;
}
let kind = match text(d, "styleType") {