aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/Scintilla.h9
-rw-r--r--include/Scintilla.iface31
-rw-r--r--src/Editor.cxx6
3 files changed, 29 insertions, 17 deletions
diff --git a/include/Scintilla.h b/include/Scintilla.h
index d9a3f2dba..048aac311 100644
--- a/include/Scintilla.h
+++ b/include/Scintilla.h
@@ -554,10 +554,11 @@ typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam,
#define SCI_LINEUPRECTEXTEND 2427
#define SCI_CHARLEFTRECTEXTEND 2428
#define SCI_CHARRIGHTRECTEXTEND 2429
-#define SCI_VCHOMERECTEXTEND 2430
-#define SCI_LINEENDRECTEXTEND 2431
-#define SCI_PAGEUPRECTEXTEND 2432
-#define SCI_PAGEDOWNRECTEXTEND 2433
+#define SCI_HOMERECTEXTEND 2430
+#define SCI_VCHOMERECTEXTEND 2431
+#define SCI_LINEENDRECTEXTEND 2432
+#define SCI_PAGEUPRECTEXTEND 2433
+#define SCI_PAGEDOWNRECTEXTEND 2434
#define SCI_STARTRECORD 3001
#define SCI_STOPRECORD 3002
#define SCI_SETLEXER 4001
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index 7ea295538..5aea37875 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -1224,7 +1224,7 @@ fun void LineEndDisplayExtend=2348(,)
# except they behave differently when word-wrap is enabled:
# They go first to the start / end of the display line, like (Home|LineEnd)Display
# The difference is that, the cursor is already at the point, it goes on to the start
-# or end of the document line, as appropriate for (Home|LineEnd|VCHome)Extend.
+# or end of the document line, as appropriate for (Home|LineEnd|VCHome)(Extend)?.
fun void HomeWrap=2349(,)
fun void HomeWrapExtend=2450(,)
@@ -1483,29 +1483,34 @@ fun position GetLineSelEndPosition=2425(int line,)
## RectExtended rectangular selection moves
-# Move caret down one line extending rectangular selection to new caret position.
+# Move caret down one line, extending rectangular selection to new caret position.
fun void LineDownRectExtend=2426(,)
-# Move caret up one line extending rectangular selection to new caret position.
+# Move caret up one line, extending rectangular selection to new caret position.
fun void LineUpRectExtend=2427(,)
-# Move caret left one character extending rectangular selection to new caret position.
+# Move caret left one character, extending rectangular selection to new caret position.
fun void CharLeftRectExtend=2428(,)
-# Move caret right one character extending rectangular selection to new caret position.
+# Move caret right one character, extending rectangular selection to new caret position.
fun void CharRightRectExtend=2429(,)
-# Move caret to first position on line extending rectangular selection to new caret position.
-fun void VCHomeRectExtend=2430(,)
+# Move caret to first position on line, extending rectangular selection to new caret position.
+fun void HomeRectExtend=2430(,)
-# Move caret to last position on line extending rectangular selection to new caret position.
-fun void LineEndRectExtend=2431(,)
+# Move caret to before first visible character on line.
+# If already there move to first character on line.
+# In either case, extend rectangular selection to new caret position.
+fun void VCHomeRectExtend=2431(,)
+
+# Move caret to last position on line, extending rectangular selection to new caret position.
+fun void LineEndRectExtend=2432(,)
-# Move caret one page up extending rectangular selection to new caret position.
-fun void PageUpRectExtend=2432(,)
+# Move caret one page up, extending rectangular selection to new caret position.
+fun void PageUpRectExtend=2433(,)
-# Move caret one page down extending rectangular selection to new caret position.
-fun void PageDownRectExtend=2433(,)
+# Move caret one page down, extending rectangular selection to new caret position.
+fun void PageDownRectExtend=2434(,)
# Start notifying the container of all key presses and commands.
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 0a54ba2aa..e07eed027 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -3642,6 +3642,7 @@ void Editor::NotifyMacroRecord(unsigned int iMessage, unsigned long wParam, long
case SCI_LINEUPRECTEXTEND:
case SCI_CHARLEFTRECTEXTEND:
case SCI_CHARRIGHTRECTEXTEND:
+ case SCI_HOMERECTEXTEND:
case SCI_VCHOMERECTEXTEND:
case SCI_LINEENDRECTEXTEND:
case SCI_PAGEUPRECTEXTEND:
@@ -3917,6 +3918,10 @@ int Editor::KeyCommand(unsigned int iMessage) {
MovePositionTo(pdoc->LineStart(pdoc->LineFromPosition(currentPos)), selStream);
SetLastXChosen();
break;
+ case SCI_HOMERECTEXTEND:
+ MovePositionTo(pdoc->LineStart(pdoc->LineFromPosition(currentPos)), selRectangle);
+ SetLastXChosen();
+ break;
case SCI_LINEEND:
MovePositionTo(pdoc->LineEndPosition(currentPos));
SetLastXChosen();
@@ -6505,6 +6510,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_LINEUPRECTEXTEND:
case SCI_CHARLEFTRECTEXTEND:
case SCI_CHARRIGHTRECTEXTEND:
+ case SCI_HOMERECTEXTEND:
case SCI_VCHOMERECTEXTEND:
case SCI_LINEENDRECTEXTEND:
case SCI_PAGEUPRECTEXTEND: