append some tags to existing tags instead of overwrite

This commit is contained in:
yggverse 2026-03-10 20:03:25 +02:00
parent 0eebd1c85d
commit c64f2d9a9b
4 changed files with 30 additions and 4 deletions

View file

@ -35,8 +35,15 @@ impl Bold {
let mut start_iter = buffer.iter_at_offset(start_char_offset);
let mut end_iter = buffer.iter_at_offset(end_char_offset);
let mut tags = start_iter.tags();
tags.push(self.0.clone());
buffer.delete(&mut start_iter, &mut end_iter);
buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0])
buffer.insert_with_tags(
&mut start_iter,
&cap["text"],
&tags.iter().collect::<Vec<&TextTag>>(),
)
}
}
}

View file

@ -95,7 +95,12 @@ impl Reference {
.build()
};
assert!(buffer.tag_table().add(&a));
buffer.insert_with_tags(position, &self.alt, &[&a]);
let mut tags = position.tags(); // @TODO seems does not work :)
tags.push(a.clone());
buffer.insert_with_tags(position, &self.alt, &tags.iter().collect::<Vec<&TextTag>>());
links.insert(a, self.uri);
}
}

View file

@ -40,8 +40,15 @@ impl Strike {
let mut start_iter = buffer.iter_at_offset(start_char_offset);
let mut end_iter = buffer.iter_at_offset(end_char_offset);
let mut tags = start_iter.tags();
tags.push(self.0.clone());
buffer.delete(&mut start_iter, &mut end_iter);
buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0])
buffer.insert_with_tags(
&mut start_iter,
&cap["text"],
&tags.iter().collect::<Vec<&TextTag>>(),
)
}
}
}

View file

@ -36,8 +36,15 @@ impl Underline {
let mut start_iter = buffer.iter_at_offset(start_char_offset);
let mut end_iter = buffer.iter_at_offset(end_char_offset);
let mut tags = start_iter.tags();
tags.push(self.0.clone());
buffer.delete(&mut start_iter, &mut end_iter);
buffer.insert_with_tags(&mut start_iter, &cap["text"], &[&self.0])
buffer.insert_with_tags(
&mut start_iter,
&cap["text"],
&tags.iter().collect::<Vec<&TextTag>>(),
)
}
}
}