diff options
| author | Iain Clarke <unknown> | 2020-04-08 09:27:43 +1000 |
|---|---|---|
| committer | Iain Clarke <unknown> | 2020-04-08 09:27:43 +1000 |
| commit | 48e716a6bc32736c1035f3f9edc78eba2987fc39 (patch) | |
| tree | dfdc40802f7869684697a0d257b3e6ceb1692b7c /src/PerLine.cxx | |
| parent | 2ebe1a97728f3d29671b3312e395bf0fb880caa6 (diff) | |
| download | scintilla-mirror-48e716a6bc32736c1035f3f9edc78eba2987fc39.tar.gz | |
Backport: Feature [feature-requests:1344]. Add methods for iterating through the marker
handles and marker numbers on a line.
Backport of changeset 8129:665c31051e3c.
Diffstat (limited to 'src/PerLine.cxx')
| -rw-r--r-- | src/PerLine.cxx | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/PerLine.cxx b/src/PerLine.cxx index 33e6aabf1..53e0827c4 100644 --- a/src/PerLine.cxx +++ b/src/PerLine.cxx @@ -54,6 +54,15 @@ bool MarkerHandleSet::Contains(int handle) const noexcept { return false; } +MarkerHandleNumber const *MarkerHandleSet::GetMarkerHandleNumber(int which) const noexcept { + for (const MarkerHandleNumber &mhn : mhList) { + if (which == 0) + return &mhn; + which--; + } + return nullptr; +} + bool MarkerHandleSet::InsertHandle(int handle, int markerNum) { mhList.push_front(MarkerHandleNumber(handle, markerNum)); return true; @@ -115,6 +124,22 @@ Sci::Line LineMarkers::LineFromHandle(int markerHandle) { return -1; } +int LineMarkers::HandleFromLine(Sci::Line line, int which) const { + if (markers.Length() && (line >= 0) && (line < markers.Length()) && markers[line]) { + MarkerHandleNumber const *pnmh = markers[line]->GetMarkerHandleNumber(which); + return pnmh ? pnmh->handle : -1; + } + return -1; +} + +int LineMarkers::NumberFromLine(Sci::Line line, int which) const { + if (markers.Length() && (line >= 0) && (line < markers.Length()) && markers[line]) { + MarkerHandleNumber const *pnmh = markers[line]->GetMarkerHandleNumber(which); + return pnmh ? pnmh->number : -1; + } + return -1; +} + void LineMarkers::MergeMarkers(Sci::Line line) { if (markers[line + 1]) { if (!markers[line]) |
