mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 01:29:31 +02:00
IDE, SynEdit: Enable markup fold color in options
git-svn-id: trunk@54021 -
This commit is contained in:
parent
b5d8bc7807
commit
721911b820
@ -55,12 +55,13 @@ uses
|
||||
SynEditMarkupSpecialChar,
|
||||
SourceSynEditor,
|
||||
// SynEdit Highlighters
|
||||
SynEditHighlighter, SynEditHighlighterFoldBase,
|
||||
SynHighlighterCPP, SynHighlighterHTML, SynHighlighterJava, SynHighlighterLFM,
|
||||
SynHighlighterPas, SynHighlighterPerl, SynHighlighterPHP, SynHighlighterSQL,
|
||||
SynEditHighlighter, SynEditHighlighterFoldBase, SynHighlighterCPP,
|
||||
SynHighlighterHTML, SynHighlighterJava, SynHighlighterLFM, SynHighlighterPas,
|
||||
SynHighlighterPerl, SynHighlighterPHP, SynHighlighterSQL,
|
||||
SynHighlighterPython, SynHighlighterUNIXShellScript, SynHighlighterXML,
|
||||
SynHighlighterJScript, SynHighlighterDiff, SynHighlighterBat, SynHighlighterIni,
|
||||
SynHighlighterPo, SynHighlighterPike, SynPluginMultiCaret,
|
||||
SynHighlighterJScript, SynHighlighterDiff, SynHighlighterBat,
|
||||
SynHighlighterIni, SynHighlighterPo, SynHighlighterPike, SynPluginMultiCaret,
|
||||
SynEditMarkupFoldColoring, SynEditMarkup,
|
||||
// codetools
|
||||
LinkScanner, CodeToolManager,
|
||||
// IDEIntf
|
||||
@ -1390,6 +1391,8 @@ type
|
||||
|
||||
// Code Folding
|
||||
FUseCodeFolding: Boolean;
|
||||
FUseMarkupWordBracket: Boolean;
|
||||
FUseMarkupOutline: Boolean;
|
||||
FReverseFoldPopUpOrder: Boolean;
|
||||
|
||||
// Multi window
|
||||
@ -1600,6 +1603,10 @@ type
|
||||
// Code Folding
|
||||
property UseCodeFolding: Boolean
|
||||
read FUseCodeFolding write FUseCodeFolding default True;
|
||||
property UseMarkupWordBracket: Boolean
|
||||
read FUseMarkupWordBracket write FUseMarkupWordBracket default True;
|
||||
property UseMarkupOutline: Boolean
|
||||
read FUseMarkupOutline write FUseMarkupOutline default True;
|
||||
|
||||
// Multi window
|
||||
property MultiWinEditAccessOrder: TEditorOptionsEditAccessOrderList
|
||||
@ -4766,6 +4773,12 @@ begin
|
||||
FUseCodeFolding :=
|
||||
XMLConfig.GetValue(
|
||||
'EditorOptions/CodeFolding/UseCodeFolding', True);
|
||||
FUseMarkupWordBracket :=
|
||||
XMLConfig.GetValue(
|
||||
'EditorOptions/CodeFolding/UseMarkupWordBracket', True);
|
||||
FUseMarkupOutline :=
|
||||
XMLConfig.GetValue(
|
||||
'EditorOptions/CodeFolding/UseMarkupOutline', True);
|
||||
|
||||
FUserMouseSettings.LoadFromXml(XMLConfig, 'EditorOptions/Mouse/',
|
||||
'EditorOptions/General/Editor/', FileVersion);
|
||||
@ -4952,6 +4965,10 @@ begin
|
||||
// Code Folding
|
||||
XMLConfig.SetDeleteValue('EditorOptions/CodeFolding/UseCodeFolding',
|
||||
FUseCodeFolding, True);
|
||||
XMLConfig.SetDeleteValue('EditorOptions/CodeFolding/UseMarkupWordBracket',
|
||||
FUseMarkupWordBracket, True);
|
||||
XMLConfig.SetDeleteValue('EditorOptions/CodeFolding/UseMarkupOutline',
|
||||
FUseMarkupOutline, True);
|
||||
|
||||
FUserMouseSettings.SaveToXml(XMLConfig, 'EditorOptions/Mouse/');
|
||||
|
||||
@ -5269,8 +5286,13 @@ begin
|
||||
(* if ReadForOptions=True then Enabled appies only to fmFold,fmHide.
|
||||
This allows to store what selection was previously active *)
|
||||
if not ReadForOptions then begin
|
||||
if not FoldHl.FoldConfig[idx].Enabled then
|
||||
if (not FoldHl.FoldConfig[idx].Enabled) or (not FUseCodeFolding) then
|
||||
FoldHl.FoldConfig[idx].Modes := FoldHl.FoldConfig[idx].Modes - [fmFold, fmHide];
|
||||
if (not FUseMarkupWordBracket) then
|
||||
FoldHl.FoldConfig[idx].Modes := FoldHl.FoldConfig[idx].Modes - [fmMarkup];
|
||||
if (not FUseMarkupOutline) then
|
||||
FoldHl.FoldConfig[idx].Modes := FoldHl.FoldConfig[idx].Modes - [fmOutline];
|
||||
|
||||
FoldHl.FoldConfig[idx].Enabled := FoldHl.FoldConfig[idx].Modes <> [];
|
||||
end;
|
||||
end;
|
||||
@ -5546,6 +5568,7 @@ var
|
||||
i: Integer;
|
||||
mw: TSourceSynEditMarkupHighlightAllMulti;
|
||||
TermsConf: TEditorUserDefinedWords;
|
||||
Markup: TSynEditMarkup;
|
||||
begin
|
||||
// general options
|
||||
ASynEdit.BeginUpdate(False);
|
||||
@ -5715,6 +5738,10 @@ begin
|
||||
MarkCaret.Trim := FMarkupCurWordTrim;
|
||||
end;
|
||||
|
||||
Markup := ASynEdit.MarkupByClass[TSynEditMarkupFoldColors];
|
||||
if (Markup <> nil) then
|
||||
Markup.Enabled := FUseMarkupOutline;
|
||||
|
||||
AssignKeyMapTo(ASynEdit, SimilarEdit);
|
||||
|
||||
ASynEdit.MouseOptions := [emUseMouseActions];
|
||||
|
@ -12,13 +12,13 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
object MarginAndGutterGroupBox: TGroupBox
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 175
|
||||
Height = 151
|
||||
Top = 0
|
||||
Width = 501
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
Caption = 'MarginAndGutterGroupBox'
|
||||
ClientHeight = 156
|
||||
ClientHeight = 131
|
||||
ClientWidth = 497
|
||||
TabOrder = 0
|
||||
object RightMarginLabel: TLabel
|
||||
@ -26,10 +26,10 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = RightMarginComboBox
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 344
|
||||
Height = 17
|
||||
Top = 12
|
||||
Width = 119
|
||||
Left = 296
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 94
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'RightMarginLabel'
|
||||
ParentColor = False
|
||||
@ -39,10 +39,10 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = ShowOnlyLineNumbersMultiplesOfSpinEdit
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 342
|
||||
Height = 17
|
||||
Top = 79
|
||||
Width = 147
|
||||
Left = 294
|
||||
Height = 15
|
||||
Top = 68
|
||||
Width = 121
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'Every n-th line number'
|
||||
@ -52,10 +52,10 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Control = RightMarginLabel
|
||||
AnchorSideTop.Control = GutterSeparatorIndexSpinBox
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 344
|
||||
Height = 17
|
||||
Top = 46
|
||||
Width = 186
|
||||
Left = 296
|
||||
Height = 15
|
||||
Top = 39
|
||||
Width = 139
|
||||
Caption = 'GutterSeparatorIndexLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
@ -65,10 +65,10 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = RightMarginLabel
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Cursor = crHandPoint
|
||||
Left = 469
|
||||
Height = 17
|
||||
Top = 12
|
||||
Width = 147
|
||||
Left = 396
|
||||
Height = 15
|
||||
Top = 10
|
||||
Width = 117
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'RightMarginColorLink'
|
||||
Font.Color = clBlue
|
||||
@ -82,9 +82,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Control = MarginAndGutterGroupBox
|
||||
AnchorSideTop.Control = MarginAndGutterGroupBox
|
||||
Left = 6
|
||||
Height = 24
|
||||
Height = 19
|
||||
Top = 6
|
||||
Width = 220
|
||||
Width = 172
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'VisibleRightMarginCheckBox'
|
||||
OnChange = GeneralCheckBoxOnChange
|
||||
@ -95,9 +95,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = VisibleRightMarginCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 24
|
||||
Top = 36
|
||||
Width = 182
|
||||
Height = 19
|
||||
Top = 31
|
||||
Width = 139
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'VisibleGutterCheckBox'
|
||||
OnChange = GeneralCheckBoxOnChange
|
||||
@ -108,9 +108,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = VisibleGutterCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 24
|
||||
Top = 66
|
||||
Width = 218
|
||||
Height = 19
|
||||
Top = 56
|
||||
Width = 172
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'ShowLineNumbersCheckBox'
|
||||
OnChange = GeneralCheckBoxOnChange
|
||||
@ -121,13 +121,13 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Control = VisibleRightMarginCheckBox
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = MarginAndGutterGroupBox
|
||||
Left = 282
|
||||
Height = 29
|
||||
Left = 234
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 56
|
||||
BorderSpacing.Left = 50
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
ItemHeight = 15
|
||||
Items.Strings = (
|
||||
'80'
|
||||
'78'
|
||||
@ -142,9 +142,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Control = GutterSeparatorIndexSpinBox
|
||||
AnchorSideTop.Control = GutterSeparatorIndexSpinBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 282
|
||||
Height = 27
|
||||
Top = 74
|
||||
Left = 234
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 54
|
||||
BorderSpacing.Top = 6
|
||||
MinValue = 1
|
||||
@ -156,9 +156,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Control = RightMarginComboBox
|
||||
AnchorSideTop.Control = RightMarginComboBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 282
|
||||
Height = 27
|
||||
Top = 41
|
||||
Left = 234
|
||||
Height = 23
|
||||
Top = 35
|
||||
Width = 56
|
||||
MaxValue = 4
|
||||
MinValue = -1
|
||||
@ -170,9 +170,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = ShowLineNumbersCheckBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 24
|
||||
Top = 96
|
||||
Width = 147
|
||||
Height = 19
|
||||
Top = 81
|
||||
Width = 117
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'chkShowOverview'
|
||||
OnChange = GeneralCheckBoxOnChange
|
||||
@ -183,9 +183,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = chkShowOverview
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 24
|
||||
Top = 126
|
||||
Width = 134
|
||||
Height = 19
|
||||
Top = 106
|
||||
Width = 106
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'chkTopInfoView'
|
||||
TabOrder = 7
|
||||
@ -194,14 +194,14 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
object EditorFontGroupBox: TGroupBox
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 130
|
||||
Top = 181
|
||||
Height = 113
|
||||
Top = 157
|
||||
Width = 501
|
||||
Align = alTop
|
||||
AutoSize = True
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'EditorFontGroupBox'
|
||||
ClientHeight = 111
|
||||
ClientHeight = 93
|
||||
ClientWidth = 497
|
||||
TabOrder = 1
|
||||
object EditorFontSizeLabel: TLabel
|
||||
@ -210,9 +210,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = EditorFontSizeSpinEdit
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 62
|
||||
Height = 17
|
||||
Top = 46
|
||||
Width = 137
|
||||
Height = 15
|
||||
Top = 39
|
||||
Width = 103
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'EditorFontSizeLabel'
|
||||
ParentColor = False
|
||||
@ -222,10 +222,10 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = ExtraLineSpacingComboBox
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 331
|
||||
Height = 17
|
||||
Top = 47
|
||||
Width = 153
|
||||
Left = 297
|
||||
Height = 15
|
||||
Top = 39
|
||||
Width = 117
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'ExtraLineSpacingLabel'
|
||||
ParentColor = False
|
||||
@ -235,10 +235,10 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = ExtraCharSpacingComboBox
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 331
|
||||
Height = 17
|
||||
Top = 82
|
||||
Width = 156
|
||||
Left = 297
|
||||
Height = 15
|
||||
Top = 68
|
||||
Width = 120
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'ExtraCharSpacingLabel'
|
||||
ParentColor = False
|
||||
@ -248,13 +248,13 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = EditorFontGroupBox
|
||||
AnchorSideRight.Control = EditorFontButton
|
||||
Left = 6
|
||||
Height = 29
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 435
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
ItemHeight = 0
|
||||
ItemHeight = 15
|
||||
OnEditingDone = EditorFontComboBoxEditingDone
|
||||
TabOrder = 0
|
||||
Text = 'EditorFontComboBox'
|
||||
@ -266,7 +266,7 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideBottom.Control = EditorFontComboBox
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 441
|
||||
Height = 29
|
||||
Height = 23
|
||||
Top = 6
|
||||
Width = 50
|
||||
Anchors = [akTop, akRight, akBottom]
|
||||
@ -280,10 +280,11 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = EditorFontComboBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 27
|
||||
Top = 41
|
||||
Height = 23
|
||||
Top = 35
|
||||
Width = 50
|
||||
BorderSpacing.Around = 6
|
||||
MinValue = -100
|
||||
OnChange = EditorFontSizeSpinEditChange
|
||||
TabOrder = 2
|
||||
end
|
||||
@ -292,13 +293,13 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = EditorFontComboBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 225
|
||||
Height = 29
|
||||
Top = 41
|
||||
Left = 191
|
||||
Height = 23
|
||||
Top = 35
|
||||
Width = 100
|
||||
BorderSpacing.Left = 20
|
||||
BorderSpacing.Around = 6
|
||||
ItemHeight = 0
|
||||
ItemHeight = 15
|
||||
Items.Strings = (
|
||||
'0'
|
||||
'1'
|
||||
@ -313,12 +314,12 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideLeft.Control = ExtraLineSpacingComboBox
|
||||
AnchorSideTop.Control = ExtraLineSpacingComboBox
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 225
|
||||
Height = 29
|
||||
Top = 76
|
||||
Left = 191
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 100
|
||||
BorderSpacing.Bottom = 6
|
||||
ItemHeight = 0
|
||||
ItemHeight = 15
|
||||
Items.Strings = (
|
||||
'0'
|
||||
'1'
|
||||
@ -334,9 +335,9 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideTop.Control = EditorFontSizeSpinEdit
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 31
|
||||
Top = 74
|
||||
Width = 221
|
||||
Height = 23
|
||||
Top = 64
|
||||
Width = 172
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'DisableAntialiasingCheckBox'
|
||||
@ -348,8 +349,8 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
AnchorSideRight.Side = asrBottom
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 138
|
||||
Top = 317
|
||||
Height = 179
|
||||
Top = 276
|
||||
Width = 501
|
||||
Align = alClient
|
||||
BorderSpacing.Top = 6
|
||||
@ -361,7 +362,7 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
ParentFont = False
|
||||
TabOrder = 2
|
||||
BookMarkOptions.Xoffset = 30
|
||||
Gutter.Width = 61
|
||||
Gutter.Width = 59
|
||||
Gutter.MouseActions = <
|
||||
item
|
||||
ClickCount = ccAny
|
||||
@ -793,7 +794,7 @@ object EditorDisplayOptionsFrame: TEditorDisplayOptionsFrame
|
||||
MouseActions = <>
|
||||
end
|
||||
object TSynGutterLineNumber
|
||||
Width = 21
|
||||
Width = 19
|
||||
MouseActions = <>
|
||||
MarkupInfo.Background = clBtnFace
|
||||
MarkupInfo.Foreground = clNone
|
||||
|
@ -317,13 +317,14 @@ object EditorMarkupOptionsFrame: TEditorMarkupOptionsFrame
|
||||
AnchorSideBottom.Control = Owner
|
||||
AnchorSideBottom.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 156
|
||||
Top = 330
|
||||
Height = 150
|
||||
Top = 380
|
||||
Width = 220
|
||||
Anchors = [akTop, akLeft, akBottom]
|
||||
BorderSpacing.Around = 6
|
||||
Constraints.MinHeight = 150
|
||||
ItemHeight = 0
|
||||
OnClick = chkKWGroupsClick
|
||||
OnClickCheck = chkKWGroupsClickCheck
|
||||
OnExit = chkKWGroupsClickCheck
|
||||
OnKeyUp = chkKWGroupsKeyUp
|
||||
@ -331,11 +332,11 @@ object EditorMarkupOptionsFrame: TEditorMarkupOptionsFrame
|
||||
end
|
||||
object LanguageComboBox: TComboBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = divKeyWordGroups
|
||||
AnchorSideTop.Control = cbMarkupOutline
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 23
|
||||
Top = 301
|
||||
Top = 351
|
||||
Width = 200
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
@ -353,10 +354,64 @@ object EditorMarkupOptionsFrame: TEditorMarkupOptionsFrame
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 212
|
||||
Height = 15
|
||||
Top = 305
|
||||
Top = 355
|
||||
Width = 80
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'LanguageLabel'
|
||||
ParentColor = False
|
||||
end
|
||||
object cbMarkup: TCheckBox
|
||||
AnchorSideLeft.Control = chkKWGroups
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = chkKWGroups
|
||||
Left = 232
|
||||
Height = 19
|
||||
Top = 380
|
||||
Width = 74
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'cbMarkup'
|
||||
OnChange = cbMarkupChange
|
||||
TabOrder = 10
|
||||
end
|
||||
object cbOutline: TCheckBox
|
||||
AnchorSideLeft.Control = chkKWGroups
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = cbMarkup
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 232
|
||||
Height = 19
|
||||
Top = 405
|
||||
Width = 72
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'cbOutline'
|
||||
OnChange = cbMarkupChange
|
||||
TabOrder = 11
|
||||
end
|
||||
object cbMarkupWordBracket: TCheckBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = divKeyWordGroups
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 19
|
||||
Top = 301
|
||||
Width = 142
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'cbMarkupWordBracket'
|
||||
OnChange = cbMarkupWordBracketChange
|
||||
TabOrder = 12
|
||||
end
|
||||
object cbMarkupOutline: TCheckBox
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = cbMarkupWordBracket
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 19
|
||||
Top = 326
|
||||
Width = 113
|
||||
BorderSpacing.Around = 6
|
||||
Caption = 'cbMarkupOutline'
|
||||
OnChange = cbMarkupOutlineChange
|
||||
TabOrder = 13
|
||||
end
|
||||
end
|
||||
|
@ -46,6 +46,10 @@ type
|
||||
BracketCombo: TComboBox;
|
||||
BracketLabel: TLabel;
|
||||
BracketLink: TLabel;
|
||||
cbMarkup: TCheckBox;
|
||||
cbOutline: TCheckBox;
|
||||
cbMarkupWordBracket: TCheckBox;
|
||||
cbMarkupOutline: TCheckBox;
|
||||
chkKWGroups: TCheckListBox;
|
||||
chkExtPasKeywords: TCheckBox;
|
||||
divKeyWordGroups: TDividerBevel;
|
||||
@ -72,7 +76,11 @@ type
|
||||
procedure BracketLinkClick(Sender: TObject);
|
||||
procedure BracketLinkMouseEnter(Sender: TObject);
|
||||
procedure BracketLinkMouseLeave(Sender: TObject);
|
||||
procedure cbMarkupChange(Sender: TObject);
|
||||
procedure cbMarkupOutlineChange(Sender: TObject);
|
||||
procedure cbMarkupWordBracketChange(Sender: TObject);
|
||||
procedure chkExtPasKeywordsChange(Sender: TObject);
|
||||
procedure chkKWGroupsClick(Sender: TObject);
|
||||
procedure chkKWGroupsClickCheck(Sender: TObject);
|
||||
procedure chkKWGroupsKeyUp(Sender: TObject; var {%H-}Key: Word; {%H-}Shift: TShiftState);
|
||||
procedure dropPasStringKeywordsChange(Sender: TObject);
|
||||
@ -87,10 +95,14 @@ type
|
||||
private
|
||||
{ private declarations }
|
||||
FDialog: TAbstractOptionsEditorDialog;
|
||||
FModeLock: Boolean;
|
||||
FCurHighlighter: TSrcIDEHighlighter;
|
||||
FCurFoldInfo: TEditorOptionsFoldRecord;
|
||||
FUseMarkupWordBracket: Boolean;
|
||||
FUseMarkupOutline: Boolean;
|
||||
function GetHighlighter(SynType: TLazSyntaxHighlighter;
|
||||
CreateIfNotExists: Boolean): TSrcIDEHighlighter;
|
||||
procedure UpdateMarkupCheckBoxes;
|
||||
|
||||
public
|
||||
function GetTitle: String; override;
|
||||
@ -165,32 +177,85 @@ begin
|
||||
(Sender as TLabel).Font.Color := clBlue;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.cbMarkupChange(Sender: TObject);
|
||||
var
|
||||
Hl: TSynCustomFoldHighlighter;
|
||||
Modes: TSynCustomFoldConfigModes;
|
||||
i: LongInt;
|
||||
begin
|
||||
if FModeLock then exit;
|
||||
if not (assigned(FCurHighlighter) and
|
||||
(FCurHighlighter is TSynCustomFoldHighlighter)) then exit;
|
||||
|
||||
i := chkKWGroups.ItemIndex;
|
||||
if i < 0 then exit;
|
||||
i := PtrUInt(chkKWGroups.Items.Objects[i]);
|
||||
i := FCurFoldInfo.Info^[i].Index;
|
||||
Hl := TSynCustomFoldHighlighter(FCurHighlighter);
|
||||
|
||||
Modes := [fmMarkup];
|
||||
if Sender = cbOutline then
|
||||
Modes := [fmOutline];
|
||||
|
||||
if TCheckBox(Sender).Checked then
|
||||
Hl.FoldConfig[i].Modes := Hl.FoldConfig[i].Modes + Modes
|
||||
else
|
||||
Hl.FoldConfig[i].Modes := Hl.FoldConfig[i].Modes - Modes;
|
||||
|
||||
chkKWGroups.Checked[chkKWGroups.ItemIndex] := cbMarkup.Checked or cbOutline.Checked;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.cbMarkupOutlineChange(Sender: TObject);
|
||||
begin
|
||||
FUseMarkupOutline := cbMarkupOutline.Checked;
|
||||
LanguageComboBoxExit(nil);
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.cbMarkupWordBracketChange(Sender: TObject);
|
||||
begin
|
||||
FUseMarkupWordBracket := cbMarkupWordBracket.Checked;
|
||||
LanguageComboBoxExit(nil);
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.chkExtPasKeywordsChange(Sender: TObject);
|
||||
begin
|
||||
GeneralPage.PasExtendedKeywordsMode := chkExtPasKeywords.Checked;
|
||||
GeneralPage.UpdatePrevieEdits;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.chkKWGroupsClick(Sender: TObject);
|
||||
begin
|
||||
UpdateMarkupCheckBoxes;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.chkKWGroupsClickCheck(Sender: TObject);
|
||||
var
|
||||
i, j, idx: Integer;
|
||||
i, j, idx, i1: Integer;
|
||||
Hl: TSynCustomFoldHighlighter;
|
||||
FMask: TSynCustomFoldConfigModes;
|
||||
begin
|
||||
if not (assigned(FCurHighlighter) and
|
||||
(FCurHighlighter is TSynCustomFoldHighlighter)) then exit;
|
||||
Hl := TSynCustomFoldHighlighter(FCurHighlighter);
|
||||
FMask := [fmMarkup, fmOutline];
|
||||
if not FUseMarkupWordBracket then FMask := FMask - [fmMarkup];
|
||||
if not FUseMarkupOutline then FMask := FMask - [fmOutline];
|
||||
|
||||
j := 0;
|
||||
for i := 0 to FCurFoldInfo.Count - 1 do begin
|
||||
for i1 := 0 to chkKWGroups.Count - 1 do begin
|
||||
i := PtrUInt(chkKWGroups.Items.Objects[i1]);
|
||||
idx := FCurFoldInfo.Info^[i].Index;
|
||||
if fmMarkup in Hl.FoldConfig[idx].SupportedModes then begin
|
||||
if chkKWGroups.Checked[j] then
|
||||
Hl.FoldConfig[idx].Modes := Hl.FoldConfig[idx].Modes + [fmMarkup]
|
||||
if Hl.FoldConfig[idx].SupportedModes * [fmMarkup, fmOutline] <> [] then begin
|
||||
if not chkKWGroups.Checked[j] then
|
||||
Hl.FoldConfig[idx].Modes := Hl.FoldConfig[idx].Modes - FMask
|
||||
else
|
||||
Hl.FoldConfig[idx].Modes := Hl.FoldConfig[idx].Modes - [fmMarkup];
|
||||
if Hl.FoldConfig[idx].Modes * FMask = [] then
|
||||
Hl.FoldConfig[idx].Modes := Hl.FoldConfig[idx].Modes + FMask;
|
||||
inc(j);
|
||||
end;
|
||||
end;
|
||||
|
||||
UpdateMarkupCheckBoxes;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.chkKWGroupsKeyUp(Sender: TObject; var Key: Word;
|
||||
@ -225,13 +290,13 @@ end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.LanguageComboBoxExit(Sender: TObject);
|
||||
var
|
||||
ComboBox: TComboBox absolute Sender;
|
||||
tp: TLazSyntaxHighlighter;
|
||||
i, j: Integer;
|
||||
Hl: TSynCustomFoldHighlighter;
|
||||
FMask: TSynCustomFoldConfigModes;
|
||||
begin
|
||||
tp := EditorOpts.HighlighterList
|
||||
[EditorOpts.HighlighterList.FindByName(ComboBox.Text)].TheType;
|
||||
[EditorOpts.HighlighterList.FindByName(LanguageComboBox.Text)].TheType;
|
||||
FCurHighlighter := GetHighlighter(tp, True);
|
||||
FCurFoldInfo := EditorOptionsFoldDefaults[tp];
|
||||
|
||||
@ -240,14 +305,18 @@ begin
|
||||
(FCurHighlighter is TSynCustomFoldHighlighter)) then exit;
|
||||
Hl := TSynCustomFoldHighlighter(FCurHighlighter);
|
||||
|
||||
FMask := [fmMarkup, fmOutline];
|
||||
if not FUseMarkupWordBracket then FMask := FMask - [fmMarkup];
|
||||
if not FUseMarkupOutline then FMask := FMask - [fmOutline];
|
||||
for i := 0 to FCurFoldInfo.Count - 1 do begin
|
||||
if Hl.FoldConfig[FCurFoldInfo.Info^[i].Index].SupportedModes * [fmMarkup{, fmOutline}] <> [] then begin
|
||||
if Hl.FoldConfig[FCurFoldInfo.Info^[i].Index].SupportedModes * FMask <> [] then begin
|
||||
j := chkKWGroups.Items.Add(FCurFoldInfo.Info^[i].Name);
|
||||
chkKWGroups.Checked[j] :=
|
||||
(Hl.FoldConfig[FCurFoldInfo.Info^[i].Index].Modes * [fmMarkup{, fmOutline}] <> []);
|
||||
(Hl.FoldConfig[FCurFoldInfo.Info^[i].Index].Modes * FMask <> []);
|
||||
chkKWGroups.Items.Objects[j] := TObject({%H-}Pointer(PtrUInt(i)));
|
||||
end;
|
||||
end;
|
||||
UpdateMarkupCheckBoxes;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.LanguageComboBoxKeyDown(Sender: TObject;
|
||||
@ -284,6 +353,40 @@ begin
|
||||
Result := FoldPage.GetHighlighter(SynType, CreateIfNotExists);
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.UpdateMarkupCheckBoxes;
|
||||
var
|
||||
i: LongInt;
|
||||
FMask: TSynCustomFoldConfigModes;
|
||||
Hl: TSynCustomFoldHighlighter;
|
||||
begin
|
||||
if not (assigned(FCurHighlighter) and
|
||||
(FCurHighlighter is TSynCustomFoldHighlighter)) then exit;
|
||||
Hl := TSynCustomFoldHighlighter(FCurHighlighter);
|
||||
FModeLock := True;
|
||||
i := chkKWGroups.ItemIndex;
|
||||
if i >= 0 then
|
||||
i := PtrUInt(chkKWGroups.Items.Objects[i]);
|
||||
|
||||
if i >= 0 then begin
|
||||
i := FCurFoldInfo.Info^[i].Index;
|
||||
FMask := [fmMarkup, fmOutline];
|
||||
if not FUseMarkupWordBracket then FMask := FMask - [fmMarkup];
|
||||
if not FUseMarkupOutline then FMask := FMask - [fmOutline];
|
||||
|
||||
cbMarkup.Enabled := fmMarkup in Hl.FoldConfig[i].SupportedModes * FMask;
|
||||
cbMarkup.Checked := fmMarkup in Hl.FoldConfig[i].Modes * FMask;
|
||||
cbOutline.Enabled := fmOutline in Hl.FoldConfig[i].SupportedModes * FMask;
|
||||
cbOutline.Checked := fmOutline in Hl.FoldConfig[i].Modes * FMask;
|
||||
end else
|
||||
begin
|
||||
cbMarkup.Enabled := false;
|
||||
cbMarkup.Checked := false;
|
||||
cbOutline.Enabled := false;
|
||||
cbOutline.Checked := false;
|
||||
end;
|
||||
FModeLock := False;
|
||||
end;
|
||||
|
||||
function TEditorMarkupOptionsFrame.GetTitle: String;
|
||||
begin
|
||||
Result := lisAutoMarkup;
|
||||
@ -322,6 +425,11 @@ begin
|
||||
LanguageLabel.Caption := dlgLang;
|
||||
divKeyWordGroups.Caption := dlgPasKeywordsMatches;
|
||||
|
||||
cbMarkup.Caption := dlgPasKeywordsMarkup;
|
||||
cbOutline.Caption := dlgPasKeywordsOutline;
|
||||
cbMarkupWordBracket.Caption := dlgMarkupWordBracket;
|
||||
cbMarkupOutline.Caption := dlgMarkupOutline;
|
||||
|
||||
with LanguageComboBox.Items do begin
|
||||
BeginUpdate;
|
||||
for i := 0 to EditorOpts.HighlighterList.Count - 1 do begin
|
||||
@ -350,11 +458,17 @@ begin
|
||||
|
||||
chkExtPasKeywords.Checked := PasExtendedKeywordsMode;
|
||||
dropPasStringKeywords.ItemIndex := ord(PasStringKeywordMode);
|
||||
|
||||
FUseMarkupWordBracket := UseMarkupWordBracket;
|
||||
FUseMarkupOutline := UseMarkupOutline;
|
||||
end;
|
||||
AutoDelayTrackBarChange(nil);
|
||||
|
||||
LanguageComboBox.ItemIndex := 0;
|
||||
LanguageComboBoxExit(LanguageComboBox);
|
||||
cbMarkupOutline.Checked := FUseMarkupOutline;
|
||||
cbMarkupWordBracket.Checked := FUseMarkupWordBracket;
|
||||
UpdateMarkupCheckBoxes;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
|
||||
@ -377,6 +491,9 @@ begin
|
||||
|
||||
PasExtendedKeywordsMode := chkExtPasKeywords.Checked;
|
||||
PasStringKeywordMode := TSynPasStringMode(dropPasStringKeywords.ItemIndex);
|
||||
|
||||
UseMarkupWordBracket := FUseMarkupWordBracket;
|
||||
UseMarkupOutline := FUseMarkupOutline;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
@ -1938,6 +1938,10 @@ resourcestring
|
||||
dlgBracketMatchGroup = 'Matching bracket pairs';
|
||||
dlgPasExtKeywordsGroup = 'Extended Pascal Keyword Options';
|
||||
dlgPasKeywordsMatches = 'Matching Keywords';
|
||||
dlgPasKeywordsMarkup = 'Markup (on caret)';
|
||||
dlgPasKeywordsOutline = 'Outline';
|
||||
dlgMarkupWordBracket = 'Word Brackets on caret (global)';
|
||||
dlgMarkupOutline = 'Outline (global)';
|
||||
dlgPasExtKeywords = 'Highlight control statements as keywords';
|
||||
dlgPasStringKeywords = 'Highlight "String" keyword(s)';
|
||||
dlgPasStringKeywordsOptDefault = 'Default';
|
||||
|
@ -59,9 +59,7 @@ uses
|
||||
SynEditHighlighter, SynEditHighlighterFoldBase, SynHighlighterPas,
|
||||
SynEditMarkupHighAll, SynEditKeyCmds, SynEditMarkupIfDef, SynEditMiscProcs,
|
||||
SynPluginMultiCaret, SynEditPointClasses,
|
||||
{$IFDEF SynWithOutlineMarkup}
|
||||
SynEditMarkupFoldColoring,
|
||||
{$ENDIF}
|
||||
etSrcEditMarks, LazarusIDEStrConsts;
|
||||
|
||||
type
|
||||
@ -1636,6 +1634,7 @@ begin
|
||||
|
||||
inherited SetHighlighter(Value);
|
||||
|
||||
//TSynEditMarkupFoldColors(MarkupByClass[TSynEditMarkupFoldColors]).Highlighter := Highlighter; // XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||
if Highlighter is TSynPasSyn then
|
||||
FMarkupIfDef.Highlighter := TSynPasSyn(Highlighter)
|
||||
else
|
||||
@ -1657,10 +1656,8 @@ begin
|
||||
end;
|
||||
|
||||
constructor TIDESynEditor.Create(AOwner: TComponent);
|
||||
{$IFDEF SynWithOutlineMarkup}
|
||||
var
|
||||
MarkupFoldColors: TSynEditMarkupFoldColors;
|
||||
{$ENDIF}
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
FUserWordsList := TFPList.Create;
|
||||
@ -1676,11 +1673,9 @@ begin
|
||||
FMarkupForGutterMark := TSynEditMarkupGutterMark.Create(Self, FWordBreaker);
|
||||
TSynEditMarkupManager(MarkupMgr).AddMarkUp(FMarkupForGutterMark);
|
||||
|
||||
{$IFDEF SynWithOutlineMarkup}
|
||||
MarkupFoldColors := TSynEditMarkupFoldColors.Create(Self);
|
||||
//MarkupFoldColors.DefaultGroup := 0;
|
||||
TSynEditMarkupManager(MarkupMgr).AddMarkUp(MarkupFoldColors);
|
||||
{$ENDIF}
|
||||
|
||||
FMarkupIfDef := TSourceSynEditMarkupIfDef.Create(Self);
|
||||
FMarkupIfDef.FoldView := TSynEditFoldedView(FoldedTextBuffer);
|
||||
|
Loading…
Reference in New Issue
Block a user