diff --git a/components/synedit/syngutterbase.pp b/components/synedit/syngutterbase.pp index fcf5767e51..7333202a54 100644 --- a/components/synedit/syngutterbase.pp +++ b/components/synedit/syngutterbase.pp @@ -169,6 +169,7 @@ type procedure DoAutoSize; procedure SetAutoSize(const AValue : boolean); virtual; procedure SetVisible(const AValue : boolean); virtual; + procedure GutterVisibilityChanged; virtual; procedure SetWidth(const AValue : integer); virtual; procedure Init; override; procedure DoResize(Sender: TObject); virtual; @@ -389,12 +390,16 @@ begin end; procedure TSynGutterBase.SetVisible(const AValue: boolean); +var + i: Integer; begin if FVisible <> AValue then begin FVisible := AValue; DoResize(Self); DoChange(Self); + for i := 0 to PartCount - 1 do + Parts[i].GutterVisibilityChanged; end; end; @@ -590,6 +595,11 @@ begin DoChange(self); end; +procedure TSynGutterPartBase.GutterVisibilityChanged; +begin + // +end; + procedure TSynGutterPartBase.SetWidth(const AValue : integer); begin if (FWidth=AValue) or (FAutoSize) then exit; diff --git a/components/synedit/syngutterlineoverview.pp b/components/synedit/syngutterlineoverview.pp index 8a5b2578dd..8ab224cd85 100644 --- a/components/synedit/syngutterlineoverview.pp +++ b/components/synedit/syngutterlineoverview.pp @@ -286,6 +286,7 @@ type procedure LineCountChanged(Sender: TSynEditStrings; AIndex, ACount: Integer); procedure BufferChanged(Sender: TObject); procedure SetVisible(const AValue : boolean); override; + procedure GutterVisibilityChanged; override; procedure DoChange(Sender: TObject); override; protected procedure InvalidateTextLines(AFromLine, AToLine: Integer); @@ -1258,7 +1259,13 @@ end; procedure TSynGutterLineOverview.SetVisible(const AValue: boolean); begin inherited SetVisible(AValue); - FWinControl.Visible := Visible; + FWinControl.Visible := Visible and Gutter.Visible; +end; + +procedure TSynGutterLineOverview.GutterVisibilityChanged; +begin + inherited GutterVisibilityChanged; + FWinControl.Visible := Visible and Gutter.Visible; end; procedure TSynGutterLineOverview.DoChange(Sender: TObject); diff --git a/ide/editoroptions.pp b/ide/editoroptions.pp index fa46693aa9..a698c2092f 100644 --- a/ide/editoroptions.pp +++ b/ide/editoroptions.pp @@ -1181,6 +1181,7 @@ type fVisibleGutter: Boolean; fShowLineNumbers: Boolean; fShowOnlyLineNumbersMultiplesOf: integer; + FShowOverviewGutter: boolean; fGutterWidth: Integer; FGutterSeparatorIndex: Integer; fRightMargin: Integer; @@ -1401,6 +1402,9 @@ type published { use RTTIConf} property TabPosition: TTabPosition read fTabPosition write fTabPosition default tpTop; + // Display + property ShowOverviewGutter: boolean + read FShowOverviewGutter write FShowOverviewGutter default True; // Code Folding property ReverseFoldPopUpOrder: Boolean read FReverseFoldPopUpOrder write FReverseFoldPopUpOrder default True; @@ -3673,6 +3677,7 @@ begin fEditorFont := SynDefaultFontName; fEditorFontSize := SynDefaultFontSize; fDisableAntialiasing := DefaultEditorDisableAntiAliasing; + FShowOverviewGutter := True; // Key Mappings fKeyMappingScheme := KeyMapSchemeNames[kmsLazarus]; @@ -4642,6 +4647,7 @@ begin ASynEdit.Gutter.LineNumberPart.Visible := fShowLineNumbers; ASynEdit.Gutter.LineNumberPart(0).ShowOnlyLineNumbersMultiplesOf := fShowOnlyLineNumbersMultiplesOf; + ASynEdit.RightGutter.Visible := ShowOverviewGutter; ASynEdit.Gutter.CodeFoldPart.Visible := FUseCodeFolding; if not FUseCodeFolding then diff --git a/ide/frames/editor_color_options.pas b/ide/frames/editor_color_options.pas index cf951dbebd..afa10d5df7 100644 --- a/ide/frames/editor_color_options.pas +++ b/ide/frames/editor_color_options.pas @@ -1163,6 +1163,8 @@ begin PreviewEdits[a].AfterLoadFromFile; PreviewEdits[a].Keystrokes.Clear; PreviewEdits[a].MouseActions.Clear; + PreviewEdits[a].SetBookMark(1, 1, 2); + PreviewEdits[a].SetBookMark(2, 1, 5); end; UpdateCurrentScheme; finally diff --git a/ide/frames/editor_display_options.lfm b/ide/frames/editor_display_options.lfm index b13b019d37..20f320b26d 100644 --- a/ide/frames/editor_display_options.lfm +++ b/ide/frames/editor_display_options.lfm @@ -1,5 +1,7 @@ -inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame +object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame + Left = 0 Height = 455 + Top = 0 Width = 501 ClientHeight = 455 ClientWidth = 501 @@ -7,16 +9,16 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame Visible = False DesignLeft = 176 DesignTop = 232 - object MarginAndGutterGroupBox: TGroupBox[0] + object MarginAndGutterGroupBox: TGroupBox AnchorSideRight.Side = asrBottom Left = 0 - Height = 122 + Height = 124 Top = 0 Width = 501 Align = alTop AutoSize = True Caption = 'MarginAndGutterGroupBox' - ClientHeight = 104 + ClientHeight = 106 ClientWidth = 497 TabOrder = 0 object RightMarginLabel: TLabel @@ -24,22 +26,23 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = RightMarginComboBox AnchorSideTop.Side = asrCenter - Left = 288 - Height = 14 + Left = 296 + Height = 16 Top = 9 - Width = 83 + Width = 95 BorderSpacing.Left = 6 Caption = 'RightMarginLabel' ParentColor = False end object ShowOnlyLineNumbersMultiplesOfLabel: TLabel - AnchorSideLeft.Control = MarginAndGutterGroupBox + AnchorSideLeft.Control = ShowOnlyLineNumbersMultiplesOfSpinEdit + AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ShowOnlyLineNumbersMultiplesOfSpinEdit AnchorSideTop.Side = asrCenter - Left = 6 - Height = 14 - Top = 79 - Width = 110 + Left = 294 + Height = 16 + Top = 67 + Width = 122 BorderSpacing.Left = 6 BorderSpacing.Top = 6 Caption = 'Every n-th line number' @@ -49,10 +52,10 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Control = RightMarginLabel AnchorSideTop.Control = GutterSeparatorIndexSpinBox AnchorSideTop.Side = asrCenter - Left = 288 - Height = 14 - Top = 37 - Width = 133 + Left = 296 + Height = 16 + Top = 38 + Width = 140 Caption = 'GutterSeparatorIndexLabel' ParentColor = False end @@ -62,10 +65,10 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideTop.Control = RightMarginLabel AnchorSideTop.Side = asrCenter Cursor = crHandPoint - Left = 377 - Height = 14 + Left = 397 + Height = 16 Top = 9 - Width = 101 + Width = 118 BorderSpacing.Left = 6 Caption = 'RightMarginColorLink' Font.Color = clBlue @@ -79,9 +82,9 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Control = MarginAndGutterGroupBox AnchorSideTop.Control = MarginAndGutterGroupBox Left = 6 - Height = 17 + Height = 19 Top = 6 - Width = 151 + Width = 172 BorderSpacing.Around = 6 Caption = 'VisibleRightMarginCheckBox' OnChange = GeneralCheckBoxOnChange @@ -92,9 +95,9 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideTop.Control = VisibleRightMarginCheckBox AnchorSideTop.Side = asrBottom Left = 6 - Height = 17 - Top = 29 - Width = 125 + Height = 19 + Top = 31 + Width = 139 BorderSpacing.Around = 6 Caption = 'VisibleGutterCheckBox' OnChange = GeneralCheckBoxOnChange @@ -105,9 +108,9 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideTop.Control = VisibleGutterCheckBox AnchorSideTop.Side = asrBottom Left = 6 - Height = 17 - Top = 52 - Width = 152 + Height = 19 + Top = 56 + Width = 172 BorderSpacing.Around = 6 Caption = 'ShowLineNumbersCheckBox' OnChange = GeneralCheckBoxOnChange @@ -115,16 +118,16 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame TabOrder = 2 end object RightMarginComboBox: TComboBox - AnchorSideLeft.Control = ShowOnlyLineNumbersMultiplesOfSpinEdit + AnchorSideLeft.Control = VisibleRightMarginCheckBox AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = MarginAndGutterGroupBox - Left = 226 - Height = 21 + Left = 234 + Height = 23 Top = 6 Width = 56 - BorderSpacing.Left = 44 + BorderSpacing.Left = 50 BorderSpacing.Around = 6 - ItemHeight = 13 + ItemHeight = 15 Items.Strings = ( '80' '78' @@ -136,15 +139,14 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame TabOrder = 3 end object ShowOnlyLineNumbersMultiplesOfSpinEdit: TSpinEdit - AnchorSideLeft.Control = ShowOnlyLineNumbersMultiplesOfLabel - AnchorSideLeft.Side = asrBottom - AnchorSideTop.Control = ShowLineNumbersCheckBox + AnchorSideLeft.Control = GutterSeparatorIndexSpinBox + AnchorSideTop.Control = GutterSeparatorIndexSpinBox AnchorSideTop.Side = asrBottom - Left = 122 + Left = 234 Height = 23 - Top = 75 + Top = 64 Width = 54 - BorderSpacing.Around = 6 + BorderSpacing.Top = 6 MinValue = 1 OnChange = GeneralCheckBoxOnChange TabOrder = 4 @@ -154,27 +156,40 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Control = RightMarginComboBox AnchorSideTop.Control = RightMarginComboBox AnchorSideTop.Side = asrBottom - Left = 226 + Left = 234 Height = 23 - Top = 33 + Top = 35 Width = 56 MaxValue = 4 MinValue = -1 OnChange = GeneralCheckBoxOnChange TabOrder = 5 end + object chkShowOverview: TCheckBox + AnchorSideLeft.Control = MarginAndGutterGroupBox + AnchorSideTop.Control = ShowLineNumbersCheckBox + AnchorSideTop.Side = asrBottom + Left = 6 + Height = 19 + Top = 81 + Width = 117 + BorderSpacing.Around = 6 + Caption = 'chkShowOverview' + OnChange = GeneralCheckBoxOnChange + TabOrder = 6 + end end - object EditorFontGroupBox: TGroupBox[1] + object EditorFontGroupBox: TGroupBox AnchorSideRight.Side = asrBottom Left = 0 - Height = 105 - Top = 128 + Height = 111 + Top = 130 Width = 501 Align = alTop AutoSize = True BorderSpacing.Top = 6 Caption = 'EditorFontGroupBox' - ClientHeight = 87 + ClientHeight = 93 ClientWidth = 497 TabOrder = 1 object EditorFontSizeLabel: TLabel @@ -182,10 +197,10 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = EditorFontSizeSpinEdit AnchorSideTop.Side = asrCenter - Left = 112 - Height = 14 - Top = 36 - Width = 107 + Left = 62 + Height = 16 + Top = 38 + Width = 104 BorderSpacing.Around = 6 Caption = 'EditorFontSizeLabel' ParentColor = False @@ -195,10 +210,10 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ExtraLineSpacingComboBox AnchorSideTop.Side = asrCenter - Left = 351 - Height = 14 - Top = 36 - Width = 108 + Left = 298 + Height = 16 + Top = 38 + Width = 118 BorderSpacing.Around = 6 Caption = 'ExtraLineSpacingLabel' ParentColor = False @@ -208,10 +223,10 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = ExtraCharSpacingComboBox AnchorSideTop.Side = asrCenter - Left = 351 - Height = 14 - Top = 63 - Width = 112 + Left = 298 + Height = 16 + Top = 67 + Width = 121 BorderSpacing.Around = 6 Caption = 'ExtraCharSpacingLabel' ParentColor = False @@ -221,13 +236,13 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideTop.Control = EditorFontGroupBox AnchorSideRight.Control = EditorFontButton Left = 6 - Height = 21 + Height = 23 Top = 6 Width = 460 Anchors = [akTop, akLeft, akRight] BorderSpacing.Left = 6 BorderSpacing.Top = 6 - ItemHeight = 13 + ItemHeight = 15 OnEditingDone = EditorFontComboBoxEditingDone TabOrder = 0 Text = 'EditorFontComboBox' @@ -239,7 +254,7 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideBottom.Control = EditorFontComboBox AnchorSideBottom.Side = asrBottom Left = 466 - Height = 21 + Height = 23 Top = 6 Width = 25 Anchors = [akTop, akRight, akBottom] @@ -253,8 +268,8 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideTop.Control = EditorFontComboBox AnchorSideTop.Side = asrBottom Left = 6 - Height = 29 - Top = 41 + Height = 23 + Top = 35 Width = 50 BorderSpacing.Around = 6 OnChange = EditorFontSizeSpinEditChange @@ -265,13 +280,13 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Side = asrBottom AnchorSideTop.Control = EditorFontComboBox AnchorSideTop.Side = asrBottom - Left = 245 - Height = 21 - Top = 33 + Left = 192 + Height = 23 + Top = 35 Width = 100 BorderSpacing.Left = 20 BorderSpacing.Around = 6 - ItemHeight = 13 + ItemHeight = 15 Items.Strings = ( '0' '1' @@ -286,12 +301,12 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideLeft.Control = ExtraLineSpacingComboBox AnchorSideTop.Control = ExtraLineSpacingComboBox AnchorSideTop.Side = asrBottom - Left = 245 - Height = 21 - Top = 60 + Left = 192 + Height = 23 + Top = 64 Width = 100 BorderSpacing.Bottom = 6 - ItemHeight = 13 + ItemHeight = 15 Items.Strings = ( '0' '1' @@ -307,9 +322,9 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame AnchorSideTop.Control = EditorFontSizeSpinEdit AnchorSideTop.Side = asrBottom Left = 6 - Height = 21 - Top = 60 - Width = 153 + Height = 23 + Top = 64 + Width = 172 Anchors = [akTop, akLeft, akBottom] BorderSpacing.Around = 6 Caption = 'DisableAntialiasingCheckBox' @@ -317,12 +332,12 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame TabOrder = 5 end end - object DisplayPreview: TSynEdit[2] + inline DisplayPreview: TSynEdit AnchorSideRight.Side = asrBottom AnchorSideBottom.Side = asrBottom Left = 0 - Height = 216 - Top = 239 + Height = 208 + Top = 247 Width = 501 Align = alClient BorderSpacing.Top = 6 @@ -334,31 +349,19 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame ParentFont = False TabOrder = 2 BookMarkOptions.Xoffset = 30 - BookMarkOptions.OnChange = nil Gutter.Width = 59 Gutter.MouseActions = < item - Shift = [] - ShiftMask = [] - Button = mbLeft ClickCount = ccAny ClickDir = cdDown - Command = 13 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcOnMainGutterClick end item - Shift = [] - ShiftMask = [] Button = mbRight - ClickCount = ccSingle - ClickDir = cdUp - Command = 12 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcContextMenu end> + RightGutter.Width = 0 + RightGutter.MouseActions = <> Keystrokes = < item Command = ecUp @@ -682,135 +685,92 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame end> MouseActions = < item - Shift = [] ShiftMask = [ssShift, ssAlt] - Button = mbLeft - ClickCount = ccSingle ClickDir = cdDown - Command = 1 + Command = emcStartSelections MoveCaret = True - Option = 0 - Priority = 0 end item Shift = [ssShift] ShiftMask = [ssShift, ssAlt] - Button = mbLeft - ClickCount = ccSingle ClickDir = cdDown - Command = 1 + Command = emcStartSelections MoveCaret = True Option = 1 - Priority = 0 end item Shift = [ssAlt] ShiftMask = [ssShift, ssAlt] - Button = mbLeft - ClickCount = ccSingle ClickDir = cdDown - Command = 3 + Command = emcStartColumnSelections MoveCaret = True - Option = 0 - Priority = 0 end item Shift = [ssShift, ssAlt] ShiftMask = [ssShift, ssAlt] - Button = mbLeft - ClickCount = ccSingle ClickDir = cdDown - Command = 3 + Command = emcStartColumnSelections MoveCaret = True Option = 1 - Priority = 0 end item - Shift = [] - ShiftMask = [] Button = mbRight - ClickCount = ccSingle - ClickDir = cdUp - Command = 12 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcContextMenu end item - Shift = [] - ShiftMask = [] - Button = mbLeft ClickCount = ccDouble ClickDir = cdDown - Command = 6 + Command = emcSelectWord MoveCaret = True - Option = 0 - Priority = 0 end item - Shift = [] - ShiftMask = [] - Button = mbLeft ClickCount = ccTriple ClickDir = cdDown - Command = 7 + Command = emcSelectLine MoveCaret = True - Option = 0 - Priority = 0 end item - Shift = [] - ShiftMask = [] - Button = mbLeft ClickCount = ccQuad ClickDir = cdDown - Command = 8 + Command = emcSelectPara MoveCaret = True - Option = 0 - Priority = 0 end item - Shift = [] - ShiftMask = [] Button = mbMiddle - ClickCount = ccSingle ClickDir = cdDown - Command = 10 + Command = emcPasteSelection MoveCaret = True - Option = 0 - Priority = 0 end item Shift = [ssCtrl] ShiftMask = [ssShift, ssAlt, ssCtrl] - Button = mbLeft - ClickCount = ccSingle - ClickDir = cdUp - Command = 11 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcMouseLink end> MouseSelActions = < item - Shift = [] - ShiftMask = [] - Button = mbLeft - ClickCount = ccSingle ClickDir = cdDown - Command = 9 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcStartDragMove end> Lines.Strings = ( 'DisplayPreview' ) + VisibleSpecialChars = [vscSpace, vscTabAtLast] ReadOnly = True BracketHighlightStyle = sbhsBoth - object TSynGutterPartList + BracketMatchColor.Background = clNone + BracketMatchColor.Foreground = clNone + BracketMatchColor.Style = [fsBold] + FoldedCodeColor.Background = clNone + FoldedCodeColor.Foreground = clGray + FoldedCodeColor.FrameColor = clGray + MouseLinkColor.Background = clNone + MouseLinkColor.Foreground = clBlue + LineHighlightColor.Background = clNone + LineHighlightColor.Foreground = clNone + inline TSynGutterPartList object TSynGutterMarks - Width = 23 + Width = 24 + MouseActions = <> end object TSynGutterLineNumber Width = 19 @@ -824,35 +784,26 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame end object TSynGutterChanges Width = 4 + MouseActions = <> ModifiedColor = 59900 SavedColor = clGreen end object TSynGutterSeparator Width = 2 + MouseActions = <> end object TSynGutterCodeFolding MouseActions = < item - Shift = [] - ShiftMask = [] Button = mbRight - ClickCount = ccSingle - ClickDir = cdUp - Command = 16 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcCodeFoldContextMenu end item - Shift = [] ShiftMask = [ssShift] Button = mbMiddle ClickCount = ccAny ClickDir = cdDown - Command = 14 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcCodeFoldCollaps end item Shift = [ssShift] @@ -860,58 +811,36 @@ inherited EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame Button = mbMiddle ClickCount = ccAny ClickDir = cdDown - Command = 14 - MoveCaret = False + Command = emcCodeFoldCollaps Option = 1 - Priority = 0 end item - Shift = [] - ShiftMask = [] - Button = mbLeft ClickCount = ccAny ClickDir = cdDown - Command = 0 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcNone end> MarkupInfo.Background = clNone MarkupInfo.Foreground = clGray MouseActionsExpanded = < item - Shift = [] - ShiftMask = [] - Button = mbLeft ClickCount = ccAny ClickDir = cdDown - Command = 14 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcCodeFoldCollaps end> MouseActionsCollapsed = < item Shift = [ssCtrl] ShiftMask = [ssCtrl] - Button = mbLeft ClickCount = ccAny ClickDir = cdDown - Command = 15 - MoveCaret = False - Option = 0 - Priority = 0 + Command = emcCodeFoldExpand end item - Shift = [] ShiftMask = [ssCtrl] - Button = mbLeft ClickCount = ccAny ClickDir = cdDown - Command = 15 - MoveCaret = False + Command = emcCodeFoldExpand Option = 1 - Priority = 0 end> end end diff --git a/ide/frames/editor_display_options.pas b/ide/frames/editor_display_options.pas index cbd24e4bce..4799e9155b 100644 --- a/ide/frames/editor_display_options.pas +++ b/ide/frames/editor_display_options.pas @@ -28,12 +28,13 @@ uses Classes, SysUtils, Graphics, Dialogs, StdCtrls, Spin, LCLType, SynEdit, SynEditMouseCmds, EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf, editor_general_options, editor_color_options, IDEProcs, - SynGutterLineNumber, SynGutter; + SynGutterLineNumber, SynGutterLineOverview, SynGutter, SourceSynEditor; type { TEditorDisplayOptionsFrame } TEditorDisplayOptionsFrame = class(TAbstractIDEOptionsEditor) + chkShowOverview: TCheckBox; DisableAntialiasingCheckBox: TCheckBox; DisplayPreview: TSynEdit; EditorFontButton: TButton; @@ -253,6 +254,7 @@ begin if PreviewEdits[a] <> nil then begin PreviewEdits[a].Gutter.Visible := VisibleGutterCheckBox.Checked; + PreviewEdits[a].RightGutter.Visible := chkShowOverview.Checked; PreviewEdits[a].Gutter.LineNumberPart.Visible := ShowLineNumbersCheckBox.Checked; if Assigned(PreviewEdits[a].Gutter.Parts.ByClass[TSynGutterLineNumber, 0]) then @@ -346,9 +348,31 @@ begin ExtraLineSpacingLabel.Caption := dlgExtraLineSpacing; DisableAntialiasingCheckBox.Caption := dlgDisableAntialiasing; RightMarginColorLink.Caption := dlgColorLink; + chkShowOverview.Caption := lisShowOverviewGutter; with GeneralPage do AddPreviewEdit(DisplayPreview); + + with TSynGutterSeparator.Create(DisplayPreview.RightGutter.Parts) do + Name := 'DPSynGutterSeparatorR2'; + with TSynGutterLineOverview.Create(DisplayPreview.RightGutter.Parts) do begin + Name := 'DPSynGutterLineOverview1'; + with TIDESynGutterLOvProviderIDEMarks.Create(Providers) do + Priority := 20; + with TSynGutterLOvProviderModifiedLines.Create(Providers) do + Priority := 9; + with TSynGutterLOvProviderCurrentPage.Create(Providers) do + Priority := 1; + with TIDESynGutterLOvProviderPascal.Create(Providers) do + Priority := 0; + end; + with TSynGutterSeparator.Create(DisplayPreview.RightGutter.Parts) do begin + Name := 'DPSynGutterSeparatorR3'; + AutoSize := False; + Width := 1; + LineWidth := 0; + end; + end; procedure TEditorDisplayOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions); @@ -369,6 +393,7 @@ begin SetComboBoxText(ExtraCharSpacingComboBox, IntToStr(ExtraCharSpacing),cstCaseInsensitive); SetComboBoxText(ExtraLineSpacingComboBox, IntToStr(ExtraLineSpacing),cstCaseInsensitive); DisableAntialiasingCheckBox.Checked := DisableAntialiasing; + chkShowOverview.Checked := ShowOverviewGutter; end; ShowOnlyLineNumbersMultiplesOfLabel.Enabled := ShowLineNumbersCheckBox.Checked; @@ -391,6 +416,7 @@ begin ExtraCharSpacing := StrToIntDef(ExtraCharSpacingComboBox.Text, ExtraCharSpacing); ExtraLineSpacing := StrToIntDef(ExtraLineSpacingComboBox.Text, ExtraLineSpacing); DisableAntialiasing := DisableAntialiasingCheckBox.Checked; + ShowOverviewGutter := chkShowOverview.Checked; end; end; diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index a79d4d9345..b56c32842e 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -4852,7 +4852,8 @@ resourcestring +'directory will be deleted and all its content will be lost.%s%sDelete ' +'all files in %s%s%s?'; lisFileExtensionOfPrograms = 'File extension of programs'; - lisEveryNThLineNumber = 'Every n-th line number:'; + lisEveryNThLineNumber = 'Every n-th line number'; + lisShowOverviewGutter = 'Shov overview Gutter'; lisLink = 'Link:'; lisShort = 'Short:'; lisInsertUrlTag = 'Insert url tag'; diff --git a/ide/sourcesyneditor.pas b/ide/sourcesyneditor.pas index 69fd4c911e..c30e70cca7 100644 --- a/ide/sourcesyneditor.pas +++ b/ide/sourcesyneditor.pas @@ -996,7 +996,6 @@ begin with DebugGutter do Name := 'TIDESynGutterDebugHL'; {$ENDIF} - {$IFDEF WithSynOverviewGutter} with TSynGutterSeparator.Create(Parts) do Name := 'SynGutterSeparatorR2'; with TSynGutterLineOverview.Create(Parts) do begin @@ -1016,7 +1015,6 @@ begin Width := 1; LineWidth := 0; end; - {$ENDIF} end; end;