Apply Ui::Text::String modifications in highlighting.

This commit is contained in:
John Preston 2023-11-10 17:43:58 +04:00
parent f7ea0e1d00
commit c530d7cc89

View file

@ -1673,21 +1673,27 @@ TextSelection Element::FindSelectionFromQuote(
}
offset = i + 1;
}
//for (const auto &modification : text.modifications()) {
// if (modification.position >= selection.to) {
// break;
// } else if (modification.position <= selection.from) {
// modified.from += modification.skipped;
// if (modification.added
// && modification.position < selection.from) {
// --modified.from;
// }
// }
// modified.to += modification.skipped;
// if (modification.added && modified.to > modified.from) {
// --modified.to;
// }
//}
for (const auto &modification : text.modifications()) {
if (modification.position >= result.to) {
break;
}
if (modification.added) {
++result.to;
}
const auto shiftTo = std::min(
int(modification.skipped),
result.to - modification.position);
result.to -= shiftTo;
if (modification.position <= result.from) {
if (modification.added) {
++result.from;
}
const auto shiftFrom = std::min(
int(modification.skipped),
result.from - modification.position);
result.from -= shiftFrom;
}
}
return result;
}