aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Document.cxx
diff options
context:
space:
mode:
authornyamatongwe <unknown>2003-03-28 10:30:22 +0000
committernyamatongwe <unknown>2003-03-28 10:30:22 +0000
commit4280d26bd57c1af6fd4f0a66145ce771dbe426dd (patch)
treeb4d345ea3d2742f7d94ccf976fb18528cb7c9ea2 /src/Document.cxx
parentbf2653e0515d95d3aac8053147e143da9acb30de (diff)
downloadscintilla-mirror-4280d26bd57c1af6fd4f0a66145ce771dbe426dd.tar.gz
Jakub's paragraph movement commands.
Diffstat (limited to 'src/Document.cxx')
-rw-r--r--src/Document.cxx29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/Document.cxx b/src/Document.cxx
index 635b380f9..255c9ee11 100644
--- a/src/Document.cxx
+++ b/src/Document.cxx
@@ -720,6 +720,33 @@ void Document::ConvertLineEnds(int eolModeSet) {
EndUndoAction();
}
+int Document::ParaDown(int pos) {
+ int line = LineFromPosition(pos);
+ while (line < LinesTotal() && LineStart(line) != LineEnd(line)) { // skip non-empty lines
+ line++;
+ }
+ while (line < LinesTotal() && LineStart(line) == LineEnd(line)) { // skip empty lines
+ line++;
+ }
+ if (line < LinesTotal())
+ return LineStart(line);
+ else // end of a document
+ return LineEnd(line-1);
+}
+
+int Document::ParaUp(int pos) {
+ int line = LineFromPosition(pos);
+ line--;
+ while (line >= 0 && LineStart(line) == LineEnd(line)) { // skip empty lines
+ line--;
+ }
+ while (line >= 0 && LineStart(line) != LineEnd(line)) { // skip non-empty lines
+ line--;
+ }
+ line++;
+ return LineStart(line);
+}
+
Document::charClassification Document::WordCharClass(unsigned char ch) {
if ((SC_CP_UTF8 == dbcsCodePage) && (ch >= 0x80))
return ccWord;
@@ -1328,4 +1355,4 @@ int Document::ExtendStyleRange(int pos, int delta) {
pos++;
}
return pos;
-} \ No newline at end of file
+}