IDE: add Editor-Option, to prevent scroll on select all/paragraph/to-brace

git-svn-id: trunk@62182 -
This commit is contained in:
martin 2019-11-03 21:44:54 +00:00
parent 97e5dde402
commit 62c238500c
4 changed files with 42 additions and 25 deletions

View File

@ -4843,7 +4843,7 @@ begin
SynEditOptName := 'OverwriteBlock'; SynEditOptName := 'OverwriteBlock';
eoAutoHideCursor: eoAutoHideCursor:
SynEditOptName := 'AutoHideCursor'; SynEditOptName := 'AutoHideCursor';
eoCaretMoveEndsSelection, eoPersistentCaretStopBlink: eoCaretMoveEndsSelection, eoPersistentCaretStopBlink, eoNoScrollOnSelectRange:
WriteStr(SynEditOptName, SynEditOpt2); WriteStr(SynEditOptName, SynEditOpt2);
else else
SynEditOptName := ''; SynEditOptName := '';
@ -5079,7 +5079,7 @@ begin
SynEditOptName := 'OverwriteBlock'; SynEditOptName := 'OverwriteBlock';
eoAutoHideCursor: eoAutoHideCursor:
SynEditOptName := 'AutoHideCursor'; SynEditOptName := 'AutoHideCursor';
eoCaretMoveEndsSelection, eoPersistentCaretStopBlink: eoCaretMoveEndsSelection, eoPersistentCaretStopBlink, eoNoScrollOnSelectRange:
WriteStr(SynEditOptName, SynEditOpt2); WriteStr(SynEditOptName, SynEditOpt2);
else else
SynEditOptName := ''; SynEditOptName := '';

View File

@ -47,7 +47,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 40 Top = 40
Width = 134 Width = 135
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'GroupUndoCheckBox' Caption = 'GroupUndoCheckBox'
OnChange = GroupUndoCheckBoxChange OnChange = GroupUndoCheckBoxChange
@ -60,7 +60,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 21 Top = 21
Width = 151 Width = 152
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'UndoAfterSaveCheckBox' Caption = 'UndoAfterSaveCheckBox'
@ -74,7 +74,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 86 Top = 86
Width = 161 Width = 162
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'ScrollPastEndFileCheckBox' Caption = 'ScrollPastEndFileCheckBox'
@ -88,7 +88,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 227 Top = 227
Width = 165 Width = 166
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'ScrollPastEndLineCheckBox' Caption = 'ScrollPastEndLineCheckBox'
OnChange = ScrollPastEndLineCheckBoxChange OnChange = ScrollPastEndLineCheckBoxChange
@ -101,7 +101,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 218 Left = 218
Height = 19 Height = 19
Top = 86 Top = 86
Width = 158 Width = 159
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'ScrollByOneLessCheckBox' Caption = 'ScrollByOneLessCheckBox'
OnChange = ScrollByOneLessCheckBoxChange OnChange = ScrollByOneLessCheckBoxChange
@ -114,7 +114,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 105 Top = 105
Width = 149 Width = 150
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'HalfPageScrollCheckBox' Caption = 'HalfPageScrollCheckBox'
OnChange = HalfPageScrollCheckBoxChange OnChange = HalfPageScrollCheckBoxChange
@ -127,7 +127,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 151 Top = 151
Width = 140 Width = 141
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'KeepCursorXCheckBox' Caption = 'KeepCursorXCheckBox'
@ -141,7 +141,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 170 Top = 170
Width = 158 Width = 159
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'PersistentCursorCheckBox' Caption = 'PersistentCursorCheckBox'
OnChange = PersistentCursorCheckBoxChange OnChange = PersistentCursorCheckBoxChange
@ -154,7 +154,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 208 Top = 208
Width = 178 Width = 179
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'AlwaysVisibleCursorCheckBox' Caption = 'AlwaysVisibleCursorCheckBox'
OnChange = AlwaysVisibleCursorCheckBoxChange OnChange = AlwaysVisibleCursorCheckBoxChange
@ -166,7 +166,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 218 Left = 218
Height = 19 Height = 19
Top = 208 Top = 208
Width = 182 Width = 183
Caption = 'CursorSkipsSelectionCheckBox' Caption = 'CursorSkipsSelectionCheckBox'
OnChange = CursorSkipsSelectionCheckBoxChange OnChange = CursorSkipsSelectionCheckBoxChange
TabOrder = 15 TabOrder = 15
@ -199,8 +199,8 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 19 Height = 19
Top = 338 Top = 357
Width = 152 Width = 153
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'PersistentBlockCheckBox' Caption = 'PersistentBlockCheckBox'
@ -213,8 +213,8 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 218 Left = 218
Height = 19 Height = 19
Top = 338 Top = 357
Width = 152 Width = 153
BorderSpacing.Top = 6 BorderSpacing.Top = 6
Caption = 'OverwriteBlockCheckBox' Caption = 'OverwriteBlockCheckBox'
OnChange = OverwriteBlockCheckBoxChange OnChange = OverwriteBlockCheckBoxChange
@ -294,7 +294,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 15 Height = 15
Top = 317 Top = 336
Width = 434 Width = 434
Caption = 'BlockGroupDivider' Caption = 'BlockGroupDivider'
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -319,7 +319,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 19 Height = 19
Top = 273 Top = 292
Width = 183 Width = 183
BorderSpacing.Left = 6 BorderSpacing.Left = 6
BorderSpacing.Top = 6 BorderSpacing.Top = 6
@ -331,7 +331,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideTop.Control = MultiCaretOnColumnSelection AnchorSideTop.Control = MultiCaretOnColumnSelection
Left = 218 Left = 218
Height = 19 Height = 19
Top = 273 Top = 292
Width = 169 Width = 169
Caption = 'chkMultiCaretColumnMode' Caption = 'chkMultiCaretColumnMode'
TabOrder = 19 TabOrder = 19
@ -342,7 +342,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 6 Left = 6
Height = 19 Height = 19
Top = 292 Top = 311
Width = 126 Width = 126
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'chkMultiCaretMode' Caption = 'chkMultiCaretMode'
@ -350,13 +350,13 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
end end
object MultiCaretGroupDivider: TDividerBevel object MultiCaretGroupDivider: TDividerBevel
AnchorSideLeft.Control = Owner AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CaretMoveClearsSelectionCheckBox AnchorSideTop.Control = SelectAllNoScrollCheckBox
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom AnchorSideRight.Side = asrBottom
Left = 0 Left = 0
Height = 15 Height = 15
Top = 252 Top = 271
Width = 434 Width = 434
Caption = 'MultiCaretGroupDivider' Caption = 'MultiCaretGroupDivider'
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -370,7 +370,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
AnchorSideTop.Side = asrBottom AnchorSideTop.Side = asrBottom
Left = 218 Left = 218
Height = 19 Height = 19
Top = 292 Top = 311
Width = 146 Width = 146
Caption = 'chkMultiCaretDelSkipCr' Caption = 'chkMultiCaretDelSkipCr'
TabOrder = 20 TabOrder = 20
@ -382,7 +382,7 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 218 Left = 218
Height = 19 Height = 19
Top = 227 Top = 227
Width = 210 Width = 211
Caption = 'CaretMoveClearsSelectionCheckBox' Caption = 'CaretMoveClearsSelectionCheckBox'
OnChange = CaretMoveClearsSelectionCheckBoxChange OnChange = CaretMoveClearsSelectionCheckBoxChange
TabOrder = 16 TabOrder = 16
@ -394,10 +394,22 @@ object EditorGeneralOptionsFrame: TEditorGeneralOptionsFrame
Left = 6 Left = 6
Height = 19 Height = 19
Top = 189 Top = 189
Width = 200 Width = 201
BorderSpacing.Left = 6 BorderSpacing.Left = 6
Caption = 'PersistentCursorNoBlinkCheckBox' Caption = 'PersistentCursorNoBlinkCheckBox'
OnChange = PersistentCursorNoBlinkCheckBoxChange OnChange = PersistentCursorNoBlinkCheckBoxChange
TabOrder = 9 TabOrder = 9
end end
object SelectAllNoScrollCheckBox: TCheckBox
AnchorSideLeft.Control = ScrollPastEndLineCheckBox
AnchorSideTop.Control = ScrollPastEndLineCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 246
Width = 163
Caption = 'SelectAllNoScrollCheckBox'
OnChange = CaretMoveClearsSelectionCheckBoxChange
TabOrder = 23
end
end end

View File

@ -43,6 +43,7 @@ type
TEditorGeneralOptionsFrame = class(TAbstractIDEOptionsEditor) TEditorGeneralOptionsFrame = class(TAbstractIDEOptionsEditor)
CaretMoveClearsSelectionCheckBox: TCheckBox; CaretMoveClearsSelectionCheckBox: TCheckBox;
SelectAllNoScrollCheckBox: TCheckBox;
PersistentCursorNoBlinkCheckBox: TCheckBox; PersistentCursorNoBlinkCheckBox: TCheckBox;
chkMultiCaretColumnMode: TCheckBox; chkMultiCaretColumnMode: TCheckBox;
chkMultiCaretMode: TCheckBox; chkMultiCaretMode: TCheckBox;
@ -160,6 +161,7 @@ begin
CursorSkipsTabCheckBox.Caption := dlgCursorSkipsTab; CursorSkipsTabCheckBox.Caption := dlgCursorSkipsTab;
HomeKeyJumpsToNearestStartCheckBox.Caption := dlgHomeKeyJumpsToNearestStart; HomeKeyJumpsToNearestStartCheckBox.Caption := dlgHomeKeyJumpsToNearestStart;
EndKeyJumpsToNearestStartCheckBox.Caption := dlgEndKeyJumpsToNearestStart; EndKeyJumpsToNearestStartCheckBox.Caption := dlgEndKeyJumpsToNearestStart;
SelectAllNoScrollCheckBox.Caption := dlgSelectAllNoScroll;
// multi caret // multi caret
MultiCaretGroupDivider.Caption := dlgMultiCaretGroupOptions; MultiCaretGroupDivider.Caption := dlgMultiCaretGroupOptions;
@ -206,6 +208,7 @@ begin
chkMultiCaretColumnMode.Checked := MultiCaretDefaultColumnSelectMode = mcmMoveAllCarets; chkMultiCaretColumnMode.Checked := MultiCaretDefaultColumnSelectMode = mcmMoveAllCarets;
chkMultiCaretMode.Checked := MultiCaretDefaultMode = mcmMoveAllCarets; chkMultiCaretMode.Checked := MultiCaretDefaultMode = mcmMoveAllCarets;
chkMultiCaretDelSkipCr.Checked := MultiCaretDeleteSkipLineBreak; chkMultiCaretDelSkipCr.Checked := MultiCaretDeleteSkipLineBreak;
SelectAllNoScrollCheckBox.Checked := eoNoScrollOnSelectRange in SynEditOptions2;
// block // block
PersistentBlockCheckBox.Checked := eoPersistentBlock in SynEditOptions2; PersistentBlockCheckBox.Checked := eoPersistentBlock in SynEditOptions2;
@ -277,6 +280,7 @@ begin
else else
MultiCaretDefaultMode := mcmCancelOnCaretMove; MultiCaretDefaultMode := mcmCancelOnCaretMove;
MultiCaretDeleteSkipLineBreak := chkMultiCaretDelSkipCr.Checked; MultiCaretDeleteSkipLineBreak := chkMultiCaretDelSkipCr.Checked;
UpdateOptionFromBool(SelectAllNoScrollCheckBox.Checked, eoNoScrollOnSelectRange);
// block // block
UpdateOptionFromBool(PersistentBlockCheckBox.Checked, eoPersistentBlock); UpdateOptionFromBool(PersistentBlockCheckBox.Checked, eoPersistentBlock);

View File

@ -1903,6 +1903,7 @@ resourcestring
dlgCopyWordAtCursorOnCopyNone = 'Copy current word when no selection exists'; dlgCopyWordAtCursorOnCopyNone = 'Copy current word when no selection exists';
dlgHomeKeyJumpsToNearestStart = 'Home key jumps to nearest start'; dlgHomeKeyJumpsToNearestStart = 'Home key jumps to nearest start';
dlgEndKeyJumpsToNearestStart = 'End key jumps to nearest end'; dlgEndKeyJumpsToNearestStart = 'End key jumps to nearest end';
dlgSelectAllNoScroll = 'Do not scroll on Select-All / Paragraph or To-Brace';
dlgMultiCaretOnColumnSelection = 'Enable multi-caret for column selection'; dlgMultiCaretOnColumnSelection = 'Enable multi-caret for column selection';
dlgMultiCaretColumnMode = 'Navigation keys move all carets (column-select)'; dlgMultiCaretColumnMode = 'Navigation keys move all carets (column-select)';
dlgMultiCaretMode = 'Navigation keys move all carets'; dlgMultiCaretMode = 'Navigation keys move all carets';