From 66f54388680a2617144e2bd3b4610f431c37fc02 Mon Sep 17 00:00:00 2001 From: Neil Date: Thu, 19 Jan 2023 13:28:57 +1100 Subject: Feature [feature-requests:#1444] Move GetFoldParent from Document to LineLevels as better modularity. Add LineLevels::GetFoldLevel for better type safety. Simplify bounds checks in GetLevel and GetFoldLevel. --- src/Document.cxx | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) (limited to 'src/Document.cxx') diff --git a/src/Document.cxx b/src/Document.cxx index 95777278c..9d1bf1d3b 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -559,7 +559,7 @@ int SCI_METHOD Document::GetLevel(Sci_Position line) const { } FoldLevel Document::GetFoldLevel(Sci_Position line) const noexcept { - return static_cast(Levels()->GetLevel(line)); + return Levels()->GetFoldLevel(line); } void Document::ClearLevels() { @@ -598,14 +598,7 @@ Sci::Line Document::GetLastChild(Sci::Line lineParent, std::optional } Sci::Line Document::GetFoldParent(Sci::Line line) const noexcept { - const FoldLevel level = LevelNumberPart(GetFoldLevel(line)); - for (Sci::Line lineLook = line - 1; lineLook >= 0; lineLook--) { - const FoldLevel levelTry = GetFoldLevel(lineLook); - if (LevelIsHeader(levelTry) && LevelNumberPart(levelTry) < level) { - return lineLook; - } - } - return -1; + return Levels()->GetFoldParent(line); } void Document::GetHighlightDelimiters(HighlightDelimiter &highlightDelimiter, Sci::Line line, Sci::Line lastLine) { -- cgit v1.2.3