aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ChangeHistory.h
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2023-10-04 14:48:19 +1100
committerNeil <nyamatongwe@gmail.com>2023-10-04 14:48:19 +1100
commit0d75d5544f21ecf2dca49af04b3467ccea4ab8db (patch)
tree1c98be77a4891db5b11dae10d677cfcfb6282e52 /src/ChangeHistory.h
parent0f6ccb7a07532cf132c621c347e89c571bf171a9 (diff)
downloadscintilla-mirror-0d75d5544f21ecf2dca49af04b3467ccea4ab8db.tar.gz
Preparatory changes for fix in next commit. Does not change Scintilla behaviour.
Add tests for contiguous deletions in forward and backward directions. Use symbolic edition values. Rename InsertionSpan to ChangeSpan and insertions to changes as holds both insertions and deletions. Add ChangeStack::Check. Add comments.
Diffstat (limited to 'src/ChangeHistory.h')
-rw-r--r--src/ChangeHistory.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/ChangeHistory.h b/src/ChangeHistory.h
index 8a6e745dc..0475a3a6e 100644
--- a/src/ChangeHistory.h
+++ b/src/ChangeHistory.h
@@ -22,27 +22,29 @@ constexpr unsigned int bitSaved = 2;
constexpr unsigned int bitModified = 4;
constexpr unsigned int bitRevertedToModified = 8;
-struct InsertionSpan {
+struct ChangeSpan {
Sci::Position start;
Sci::Position length;
int edition;
enum class Direction { insertion, deletion } direction;
};
+// EditionSet is ordered from oldest to newest, its not really a set
using EditionSet = std::vector<int>;
using EditionSetOwned = std::unique_ptr<EditionSet>;
class ChangeStack {
std::vector<size_t> steps;
- std::vector<InsertionSpan> insertions;
+ std::vector<ChangeSpan> changes;
public:
void Clear() noexcept;
void AddStep();
void PushDeletion(Sci::Position positionDeletion, int edition);
void PushInsertion(Sci::Position positionInsertion, Sci::Position length, int edition);
[[nodiscard]] size_t PopStep() noexcept;
- [[nodiscard]] InsertionSpan PopSpan() noexcept;
+ [[nodiscard]] ChangeSpan PopSpan() noexcept;
void SetSavePoint() noexcept;
+ void Check() const noexcept;
};
struct ChangeLog {