diff options
Diffstat (limited to 'src/Document.cxx')
-rw-r--r-- | src/Document.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Document.cxx b/src/Document.cxx index afe6717a1..2c04bbaae 100644 --- a/src/Document.cxx +++ b/src/Document.cxx @@ -453,8 +453,8 @@ Range Document::LineRange(Sci::Line line) const noexcept { return {cb.LineStart(line), cb.LineStart(line + 1)}; } -bool Document::IsLineStartPosition(Sci::Position position) const { - return LineStart(LineFromPosition(position)) == position; +bool Document::IsLineStartPosition(Sci::Position position) const noexcept { + return LineStartPosition(position) == position; } Sci_Position SCI_METHOD Document::LineEnd(Sci_Position line) const { @@ -477,6 +477,10 @@ Sci::Line Document::SciLineFromPosition(Sci::Position pos) const noexcept { return cb.LineFromPosition(pos); } +Sci::Position Document::LineStartPosition(Sci::Position position) const noexcept { + return cb.LineStart(cb.LineFromPosition(position)); +} + Sci::Position Document::LineEndPosition(Sci::Position position) const noexcept { return cb.LineEnd(cb.LineFromPosition(position)); } @@ -767,7 +771,7 @@ Sci::Position Document::MovePositionOutsideChar(Sci::Position pos, Sci::Position } else { // Anchor DBCS calculations at start of line because start of line can // not be a DBCS trail byte. - const Sci::Position posStartLine = cb.LineStart(cb.LineFromPosition(pos)); + const Sci::Position posStartLine = LineStartPosition(pos); if (pos == posStartLine) return pos; @@ -850,7 +854,7 @@ Sci::Position Document::NextPosition(Sci::Position pos, int moveDir) const noexc } else { // Anchor DBCS calculations at start of line because start of line can // not be a DBCS trail byte. - const Sci::Position posStartLine = cb.LineStart(cb.LineFromPosition(pos)); + const Sci::Position posStartLine = LineStartPosition(pos); // See http://msdn.microsoft.com/en-us/library/cc194792%28v=MSDN.10%29.aspx // http://msdn.microsoft.com/en-us/library/cc194790.aspx if ((pos - 1) <= posStartLine) { @@ -3079,7 +3083,7 @@ public: #endif -std::regex_constants::match_flag_type MatchFlags(const Document *doc, Sci::Position startPos, Sci::Position endPos) { +std::regex_constants::match_flag_type MatchFlags(const Document *doc, Sci::Position startPos, Sci::Position endPos) noexcept { std::regex_constants::match_flag_type flagsMatch = std::regex_constants::match_default; if (!doc->IsLineStartPosition(startPos)) flagsMatch |= std::regex_constants::match_not_bol; |