aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Document.cxx')
-rw-r--r--src/Document.cxx14
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;