Editor-Options: Regroup markup related options

git-svn-id: trunk@27953 -
This commit is contained in:
martin 2010-10-29 19:32:16 +00:00
parent 1099ea482a
commit e03fbc4fa4
7 changed files with 495 additions and 428 deletions

2
.gitattributes vendored
View File

@ -3669,6 +3669,8 @@ ide/frames/editor_general_options.lfm svneol=native#text/plain
ide/frames/editor_general_options.pas svneol=native#text/pascal
ide/frames/editor_keymapping_options.lfm svneol=native#text/plain
ide/frames/editor_keymapping_options.pas svneol=native#text/pascal
ide/frames/editor_markup_options.lfm svneol=native#text/plain
ide/frames/editor_markup_options.pas svneol=native#text/pascal
ide/frames/editor_mouseaction_options.lfm svneol=native#text/plain
ide/frames/editor_mouseaction_options.pas svneol=native#text/pascal
ide/frames/editor_mouseaction_options_advanced.lfm svneol=native#text/plain

View File

@ -4,7 +4,6 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AutoScroll = True
ClientHeight = 492
ClientWidth = 634
TabOrder = 0
Visible = False
DesignLeft = 263
DesignTop = 222
@ -12,59 +11,15 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideLeft.Control = AutoHintAndCompletionDelayLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = AutoHintAndCompletionDelayLabel
Left = 257
Height = 18
Top = 127
Width = 104
Left = 218
Height = 16
Top = 115
Width = 84
BorderSpacing.Left = 20
Caption = 'AutoDelayLabel'
ParentColor = False
end
object MarkupWordDelayLabel: TLabel[1]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordTimeTrackBar
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = MarkupWordTimeTrackBar
Left = 472
Height = 18
Top = 383
Width = 156
Anchors = [akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'MarkupWordDelayLabel'
ParentColor = False
end
object MarkupWordFullLenLabel: TLabel[2]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordFullLenSpin
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = MarkupWordFullLenSpin
Left = 6
Height = 18
Top = 378
Width = 164
BorderSpacing.Left = 6
Caption = 'MarkupWordFullLenLabel'
ParentColor = False
end
object MarkupWordBevel: TBevel[3]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordGroupLabel
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 0
Height = 3
Top = 274
Width = 60
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
end
object ToolTipBevel: TBevel[4]
object ToolTipBevel: TBevel[1]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoCompleteBlockCheckBox
AnchorSideTop.Side = asrBottom
@ -72,161 +27,64 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideRight.Side = asrBottom
Left = 0
Height = 3
Top = 118
Top = 56
Width = 634
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
end
object MarkupWordGroupLabel: TLabel[5]
AnchorSideLeft.Control = MarkupWordBevel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CompletionDropDownHint
AnchorSideTop.Side = asrBottom
Left = 66
Height = 18
Top = 266
Width = 187
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordGroupLabel'
Font.Style = [fsBold]
ParentColor = False
ParentFont = False
end
object MarkupWordBevel1: TBevel[6]
AnchorSideLeft.Control = MarkupWordGroupLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MarkupWordGroupLabel
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 259
Height = 3
Top = 274
Width = 375
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
end
object MarkupBevel: TBevel[7]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordTimeTrackBar
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 0
Height = 3
Top = 443
Width = 634
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Top = 6
BorderSpacing.Bottom = 6
end
object BracketLabel: TLabel[8]
AnchorSideLeft.Control = BracketCombo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BracketCombo
AnchorSideTop.Side = asrCenter
Left = 232
Height = 18
Top = 456
Width = 86
BorderSpacing.Around = 6
Caption = 'BracketLabel'
ParentColor = False
end
object BracketLink: TLabel[9]
AnchorSideLeft.Control = BracketLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BracketLabel
AnchorSideTop.Side = asrCenter
Cursor = crHandPoint
Left = 324
Height = 18
Top = 456
Width = 78
BorderSpacing.Around = 6
Caption = 'BracketLink'
Font.Color = clBlue
ParentColor = False
ParentFont = False
OnClick = BracketLinkClick
OnMouseEnter = BracketLinkMouseEnter
OnMouseLeave = BracketLinkMouseLeave
end
object MarkupColorLink: TLabel[10]
AnchorSideLeft.Control = MarkupWordNoTimerCheckBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MarkupWordNoTimerCheckBox
AnchorSideTop.Side = asrCenter
Cursor = crHandPoint
Left = 243
Height = 18
Top = 292
Width = 78
BorderSpacing.Left = 6
Caption = 'BracketLink'
Font.Color = clBlue
ParentColor = False
ParentFont = False
OnClick = MarkupColorLinkClick
OnMouseEnter = BracketLinkMouseEnter
OnMouseLeave = BracketLinkMouseLeave
end
object AutoRemoveEmptyMethodsOnSave: TCheckBox[11]
object AutoRemoveEmptyMethodsOnSave: TCheckBox[2]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
Left = 6
Height = 22
Height = 19
Top = 6
Width = 259
Width = 210
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'AutoRemoveEmptyMethodsOnSave'
TabOrder = 0
end
object AutoToolTipSymbToolsCheckBox: TCheckBox[12]
object AutoToolTipSymbToolsCheckBox: TCheckBox[3]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoRemoveEmptyMethodsOnSave
AnchorSideTop.Control = ToolTipBevel
AnchorSideTop.Side = asrBottom
Left = 6
Height = 22
Top = 34
Width = 239
Height = 19
Top = 65
Width = 198
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'AutoToolTipSymbToolsCheckBox'
TabOrder = 1
end
object AutoCompleteBlockCheckBox: TCheckBox[13]
object AutoCompleteBlockCheckBox: TCheckBox[4]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoToolTipExprEvalCheckBox
AnchorSideTop.Control = AutoRemoveEmptyMethodsOnSave
AnchorSideTop.Side = asrBottom
Left = 6
Height = 22
Top = 90
Width = 222
Height = 19
Top = 31
Width = 179
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'AutoCompleteBlockCheckBox'
TabOrder = 2
end
object AutoToolTipExprEvalCheckBox: TCheckBox[14]
object AutoToolTipExprEvalCheckBox: TCheckBox[5]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoToolTipSymbToolsCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 22
Top = 62
Width = 226
Height = 19
Top = 90
Width = 182
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'AutoToolTipExprEvalCheckBox'
TabOrder = 3
end
object AutoDelayTrackBar: TTrackBar[15]
object AutoDelayTrackBar: TTrackBar[6]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = AutoHintAndCompletionDelayLabel
AnchorSideTop.Side = asrBottom
@ -234,7 +92,7 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideRight.Side = asrBottom
Left = 6
Height = 30
Top = 146
Top = 132
Width = 622
Frequency = 250
Max = 4000
@ -247,113 +105,20 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
BorderSpacing.Right = 6
TabOrder = 4
end
object MarkupWordTimeTrackBar: TTrackBar[16]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordFullLenSpin
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 6
Height = 30
Top = 407
Width = 622
Frequency = 250
Max = 4000
Min = 10
OnChange = AutoDelayTrackBarChange
Position = 500
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
TabOrder = 5
end
object MarkupWordNoKeyword: TCheckBox[17]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordNoTimerCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 22
Top = 318
Width = 184
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordNoKeyword'
TabOrder = 6
end
object MarkupWordFullLenSpin: TSpinEdit[18]
AnchorSideLeft.Control = MarkupWordFullLenLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MarkupWordTrim
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 176
Height = 27
Top = 374
Width = 48
BorderSpacing.Left = 6
BorderSpacing.Top = 6
TabOrder = 7
end
object MarkupWordNoTimerCheckBox: TCheckBox[19]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordGroupLabel
AnchorSideTop.Side = asrBottom
Left = 6
Height = 22
Top = 290
Width = 231
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordNoTimerCheckBox'
TabOrder = 8
end
object MarkupWordTrim: TCheckBox[20]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordNoKeyword
AnchorSideTop.Side = asrBottom
Left = 6
Height = 22
Top = 346
Width = 138
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordTrim'
TabOrder = 9
end
object BracketCombo: TComboBox[21]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupBevel
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 27
Top = 452
Width = 220
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 0
OnChange = BracketComboChange
OnExit = BracketComboExit
OnKeyDown = BracketComboKeyDown
Style = csDropDownList
TabOrder = 10
end
object AutoHintAndCompletionDelayLabel: TLabel[22]
object AutoHintAndCompletionDelayLabel: TLabel[7]
AnchorSideLeft.Control = ToolTipBevel
AnchorSideTop.Control = ToolTipBevel
AnchorSideTop.Control = AutoToolTipExprEvalCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 18
Top = 127
Width = 231
Height = 16
Top = 115
Width = 192
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'AutoHintAndCompletionDelayLabel'
ParentColor = False
end
object CompletionDropDownHintTrackBar: TTrackBar[23]
object CompletionDropDownHintTrackBar: TTrackBar[8]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CompletionDropDownLabel
AnchorSideTop.Side = asrBottom
@ -361,7 +126,7 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
AnchorSideRight.Side = asrBottom
Left = 6
Height = 30
Top = 201
Top = 185
Width = 622
Frequency = 250
Max = 4000
@ -371,61 +136,58 @@ inherited EditorCodetoolsOptionsFrame: TEditorCodetoolsOptionsFrame
BorderSpacing.Left = 6
BorderSpacing.Top = 1
BorderSpacing.Right = 6
TabOrder = 11
TabOrder = 5
end
object CompletionDropDownLabel: TLabel[24]
object CompletionDropDownLabel: TLabel[9]
AnchorSideLeft.Control = ToolTipBevel
AnchorSideTop.Control = AutoDelayTrackBar
AnchorSideTop.Side = asrBottom
Left = 6
Height = 18
Top = 182
Width = 179
Height = 16
Top = 168
Width = 149
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'CompletionDropDownLabel'
ParentColor = False
end
object CompletionDropDownDelayLabel: TLabel[25]
object CompletionDropDownDelayLabel: TLabel[10]
AnchorSideLeft.Control = CompletionDropDownLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CompletionDropDownLabel
Left = 205
Height = 18
Top = 182
Width = 217
Left = 175
Height = 16
Top = 168
Width = 178
BorderSpacing.Left = 20
Caption = 'CompletionDropDownDelayLabel'
ParentColor = False
end
object CompletionDropDownHint: TComboBox[26]
object CompletionDropDownHint: TComboBox[11]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = CompletionDropDownHintTrackBar
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 27
Top = 233
Height = 23
Top = 217
Width = 220
BorderSpacing.Left = 6
BorderSpacing.Top = 2
ItemHeight = 0
OnChange = BracketComboChange
OnExit = BracketComboExit
OnKeyDown = BracketComboKeyDown
ItemHeight = 15
Style = csDropDownList
TabOrder = 12
TabOrder = 6
end
object CompletionDropDownHintLabel: TLabel[27]
object CompletionDropDownHintLabel: TLabel[12]
AnchorSideLeft.Control = CompletionDropDownHint
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = CompletionDropDownHint
AnchorSideTop.Side = asrCenter
Left = 232
Height = 18
Top = 237
Width = 206
Height = 16
Top = 220
Width = 172
BorderSpacing.Around = 6
Caption = 'CompletionDropDownHintLabel'
ParentColor = False

View File

@ -43,37 +43,11 @@ type
CompletionDropDownLabel: TLabel;
CompletionDropDownHintTrackBar: TTrackBar;
AutoToolTipExprEvalCheckBox: TCheckBox;
BracketCombo: TComboBox;
BracketLabel: TLabel;
BracketLink: TLabel;
AutoHintAndCompletionDelayLabel: TLabel;
MarkupColorLink: TLabel;
MarkupWordBevel1: TBevel;
MarkupWordGroupLabel: TLabel;
MarkupWordBevel: TBevel;
ToolTipBevel: TBevel;
MarkupWordDelayLabel: TLabel;
MarkupWordNoTimerCheckBox: TCheckBox;
MarkupWordFullLenSpin: TSpinEdit;
MarkupWordFullLenLabel: TLabel;
MarkupWordNoKeyword: TCheckBox;
MarkupWordTrim: TCheckBox;
MarkupWordTimeTrackBar: TTrackBar;
AutoToolTipSymbToolsCheckBox: TCheckBox;
AutoRemoveEmptyMethodsOnSave: TCheckBox;
MarkupBevel: TBevel;
procedure AutoDelayTrackBarChange(Sender: TObject);
procedure BracketComboChange(Sender: TObject);
procedure BracketComboExit(Sender: TObject);
procedure BracketComboKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure BracketLinkClick(Sender: TObject);
procedure BracketLinkMouseEnter(Sender: TObject);
procedure BracketLinkMouseLeave(Sender: TObject);
function GeneralPage: TEditorGeneralOptionsFrame; inline;
procedure MarkupColorLinkClick(Sender: TObject);
private
{ private declarations }
FDialog: TAbstractOptionsEditorDialog;
public
function GetTitle: String; override;
procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
@ -88,83 +62,13 @@ implementation
{ TEditorCodetoolsOptionsFrame }
procedure TEditorCodetoolsOptionsFrame.BracketComboChange(Sender: TObject);
begin
if BracketCombo.Items.IndexOf(BracketCombo.Text) >= 0 then
BracketComboExit(Sender);
end;
procedure TEditorCodetoolsOptionsFrame.AutoDelayTrackBarChange(Sender: TObject);
begin
AutoDelayLabel.Caption := Format(dlgEdDelayInSec, [FormatFloat('0.00', AutoDelayTrackBar.Position/1000)]);
MarkupWordDelayLabel.Caption :=
Format(dlgEdDelayInSec, [FormatFloat('0.00', MarkupWordTimeTrackBar.Position/1000)]);
CompletionDropDownDelayLabel.Caption :=
Format(dlgEdDelayInSec, [FormatFloat('0.00', CompletionDropDownHintTrackBar.Position/1000)]);
end;
procedure TEditorCodetoolsOptionsFrame.BracketComboExit(Sender: TObject);
var
a: Integer;
begin
with GeneralPage do
for a := Low(PreviewEdits) to High(PreviewEdits) do
if PreviewEdits[a] <> nil then
begin
if BracketCombo.ItemIndex = 0 then
PreviewEdits[a].Options := PreviewEdits[a].Options - [eoBracketHighlight]
else
begin
PreviewEdits[a].Options := PreviewEdits[a].Options + [eoBracketHighlight];
PreviewEdits[a].BracketHighlightStyle := TSynEditBracketHighlightStyle(BracketCombo.ItemIndex - 1);
end;
end;
end;
procedure TEditorCodetoolsOptionsFrame.BracketComboKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key = VK_S) then
BracketComboExit(Sender);
end;
procedure TEditorCodetoolsOptionsFrame.BracketLinkClick(Sender: TObject);
var
col: TEditorColorOptionsFrame;
begin
col := TEditorColorOptionsFrame(FDialog.FindEditor(TEditorColorOptionsFrame));
if col = nil then exit;
FDialog.OpenEditor(TEditorColorOptionsFrame);
col.SelectAhaColor(ahaBracketMatch);
end;
procedure TEditorCodetoolsOptionsFrame.BracketLinkMouseEnter(Sender: TObject);
begin
(Sender as TLabel).Font.Underline := True;
(Sender as TLabel).Font.Color := clRed;
end;
procedure TEditorCodetoolsOptionsFrame.BracketLinkMouseLeave(Sender: TObject);
begin
(Sender as TLabel).Font.Underline := False;
(Sender as TLabel).Font.Color := clBlue;
end;
function TEditorCodetoolsOptionsFrame.GeneralPage: TEditorGeneralOptionsFrame; inline;
begin
Result := TEditorGeneralOptionsFrame(FDialog.FindEditor(TEditorGeneralOptionsFrame));
end;
procedure TEditorCodetoolsOptionsFrame.MarkupColorLinkClick(Sender: TObject);
var
col: TEditorColorOptionsFrame;
begin
col := TEditorColorOptionsFrame(FDialog.FindEditor(TEditorColorOptionsFrame));
if col = nil then exit;
FDialog.OpenEditor(TEditorColorOptionsFrame);
col.SelectAhaColor(ahaHighlightWord);
end;
function TEditorCodetoolsOptionsFrame.GetTitle: String;
begin
Result := lisAutomaticFeatures;
@ -172,8 +76,6 @@ end;
procedure TEditorCodetoolsOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin
FDialog := ADialog;
AutoRemoveEmptyMethodsOnSave.Caption := dlgAutoRemoveEmptyMethods;
AutoToolTipSymbToolsCheckBox.Caption := lisShowDeclarationHints;
AutoToolTipExprEvalCheckBox.Caption := lisShowValueHintsWhileDebugging;
@ -187,20 +89,6 @@ begin
CompletionDropDownHint.Items.Add(lisCompletionLongLineHintTypeRightOnly);
CompletionDropDownHint.Items.Add(lisCompletionLongLineHintTypeLittleLeft);
CompletionDropDownHint.Items.Add(lisCompletionLongLineHintTypeFullLeft);
MarkupWordGroupLabel.Caption := dlgMarkupGroup;
MarkupWordFullLenLabel.Caption := dlgMarkupWordFullLen;
MarkupWordNoKeyword.Caption := dlgMarkupWordNoKeyword;
MarkupWordTrim.Caption := dlgMarkupWordTrim;
MarkupWordNoTimerCheckBox.Caption := dlgMarkupWordNoTimer;
MarkupColorLink.Caption := dlgColorLink;
BracketLabel.Caption := dlgBracketHighlight;
BracketLink.Caption := dlgColorLink;
BracketCombo.Items.Add(dlgNoBracketHighlight);
BracketCombo.Items.Add(dlgHighlightLeftOfCursor);
BracketCombo.Items.Add(dlgHighlightRightOfCursor);
BracketCombo.Items.Add(gldHighlightBothSidesOfCursor);
end;
procedure TEditorCodetoolsOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
@ -216,16 +104,6 @@ begin
CompletionDropDownHintTrackBar.Position := CompletionLongLineHintInMSec;
CompletionDropDownHint.ItemIndex := ord(CompletionLongLineHintType);
MarkupWordTimeTrackBar.Position := MarkupCurWordTime;
MarkupWordFullLenSpin. Value := MarkupCurWordFullLen;
MarkupWordNoKeyword.Checked := MarkupCurWordNoKeyword;
MarkupWordTrim.Checked := MarkupCurWordTrim;
MarkupWordNoTimerCheckBox.Checked := MarkupCurWordNoTimer;
if eoBracketHighlight in SynEditOptions then
BracketCombo.ItemIndex := Ord(BracketHighlightStyle) + 1
else
BracketCombo.ItemIndex := 0;
end;
AutoDelayTrackBarChange(nil);
end;
@ -243,20 +121,6 @@ begin
CompletionLongLineHintInMSec := CompletionDropDownHintTrackBar.Position;
CompletionLongLineHintType := TSynCompletionLongHintType(CompletionDropDownHint.ItemIndex);
MarkupCurWordTime := MarkupWordTimeTrackBar.Position;
MarkupCurWordFullLen := MarkupWordFullLenSpin.Value;
MarkupCurWordNoKeyword := MarkupWordNoKeyword.Checked;
MarkupCurWordTrim := MarkupWordTrim.Checked;
MarkupCurWordNoTimer := MarkupWordNoTimerCheckBox.Checked;
if BracketCombo.ItemIndex = 0 then
SynEditOptions := SynEditOptions - [eoBracketHighlight]
else
begin
SynEditOptions := SynEditOptions + [eoBracketHighlight];
BracketHighlightStyle := TSynEditBracketHighlightStyle(BracketCombo.ItemIndex - 1);
end;
end;
end;

View File

@ -0,0 +1,214 @@
inherited EditorMarkupOptionsFrame: TEditorMarkupOptionsFrame
Height = 492
Width = 634
AutoScroll = True
ClientHeight = 492
ClientWidth = 634
Visible = False
DesignLeft = 263
DesignTop = 222
object MarkupWordDelayLabel: TLabel[0]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordTimeTrackBar
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = MarkupWordTimeTrackBar
Left = 500
Height = 16
Top = 105
Width = 128
Anchors = [akRight, akBottom]
BorderSpacing.Left = 6
BorderSpacing.Top = 2
BorderSpacing.Right = 6
Caption = 'MarkupWordDelayLabel'
ParentColor = False
end
object MarkupWordFullLenLabel: TLabel[1]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordFullLenSpin
AnchorSideTop.Side = asrCenter
AnchorSideRight.Control = MarkupWordFullLenSpin
Left = 6
Height = 16
Top = 101
Width = 137
BorderSpacing.Left = 6
Caption = 'MarkupWordFullLenLabel'
ParentColor = False
end
object BracketLabel: TLabel[2]
AnchorSideLeft.Control = BracketCombo
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BracketCombo
AnchorSideTop.Side = asrCenter
Left = 232
Height = 16
Top = 183
Width = 68
BorderSpacing.Around = 6
Caption = 'BracketLabel'
ParentColor = False
end
object BracketLink: TLabel[3]
AnchorSideLeft.Control = BracketLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = BracketLabel
AnchorSideTop.Side = asrCenter
Cursor = crHandPoint
Left = 306
Height = 16
Top = 183
Width = 62
BorderSpacing.Around = 6
Caption = 'BracketLink'
Font.Color = clBlue
ParentColor = False
ParentFont = False
OnClick = BracketLinkClick
OnMouseEnter = BracketLinkMouseEnter
OnMouseLeave = BracketLinkMouseLeave
end
object MarkupColorLink: TLabel[4]
AnchorSideLeft.Control = MarkupWordNoTimerCheckBox
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MarkupWordNoTimerCheckBox
AnchorSideTop.Side = asrCenter
Cursor = crHandPoint
Left = 201
Height = 16
Top = 24
Width = 62
BorderSpacing.Left = 6
Caption = 'BracketLink'
Font.Color = clBlue
ParentColor = False
ParentFont = False
OnClick = MarkupColorLinkClick
OnMouseEnter = BracketLinkMouseEnter
OnMouseLeave = BracketLinkMouseLeave
end
object MarkupWordTimeTrackBar: TTrackBar[5]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordFullLenSpin
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 6
Height = 30
Top = 127
Width = 622
Frequency = 250
Max = 4000
Min = 10
OnChange = AutoDelayTrackBarChange
Position = 500
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Left = 6
BorderSpacing.Top = 6
BorderSpacing.Right = 6
TabOrder = 0
end
object MarkupWordNoKeyword: TCheckBox[6]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordNoTimerCheckBox
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 48
Width = 152
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordNoKeyword'
TabOrder = 1
end
object MarkupWordFullLenSpin: TSpinEdit[7]
AnchorSideLeft.Control = MarkupWordFullLenLabel
AnchorSideLeft.Side = asrBottom
AnchorSideTop.Control = MarkupWordTrim
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 149
Height = 23
Top = 98
Width = 48
BorderSpacing.Left = 6
BorderSpacing.Top = 6
TabOrder = 2
end
object MarkupWordNoTimerCheckBox: TCheckBox[8]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = divWordGroup
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 23
Width = 189
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordNoTimerCheckBox'
TabOrder = 3
end
object MarkupWordTrim: TCheckBox[9]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = MarkupWordNoKeyword
AnchorSideTop.Side = asrBottom
Left = 6
Height = 19
Top = 73
Width = 115
BorderSpacing.Left = 6
BorderSpacing.Top = 6
Caption = 'MarkupWordTrim'
TabOrder = 4
end
object BracketCombo: TComboBox[10]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = divMatchingBrackets
AnchorSideTop.Side = asrBottom
AnchorSideBottom.Control = Owner
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 23
Top = 180
Width = 220
BorderSpacing.Left = 6
BorderSpacing.Top = 6
ItemHeight = 15
OnChange = BracketComboChange
OnExit = BracketComboExit
OnKeyDown = BracketComboKeyDown
Style = csDropDownList
TabOrder = 5
end
object divWordGroup: TDividerBevel[11]
AnchorSideLeft.Control = Owner
AnchorSideTop.Control = Owner
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 0
Height = 17
Top = 0
Width = 634
Caption = 'divWordGroup'
Anchors = [akTop, akLeft, akRight]
Font.Style = [fsBold]
ParentFont = False
end
object divMatchingBrackets: TDividerBevel[12]
AnchorSideTop.Control = MarkupWordTimeTrackBar
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = Owner
AnchorSideRight.Side = asrBottom
Left = 0
Height = 17
Top = 157
Width = 634
Caption = 'divMatchingBrackets'
Anchors = [akTop, akLeft, akRight]
Font.Style = [fsBold]
ParentFont = False
end
end

View File

@ -0,0 +1,223 @@
{
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
}
unit editor_markup_options;
{$mode objfpc}{$H+}
interface
uses
Classes, StdCtrls, ComCtrls, Graphics, sysutils,
EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf, Spin, ExtCtrls,
SynEditMarkupBracket, editor_color_options, editor_general_options,
SynEdit, SynCompletion, DividerBevel, LCLType;
type
{ TEditorMarkupOptionsFrame }
TEditorMarkupOptionsFrame = class(TAbstractIDEOptionsEditor)
BracketCombo: TComboBox;
BracketLabel: TLabel;
BracketLink: TLabel;
divMatchingBrackets: TDividerBevel;
divWordGroup: TDividerBevel;
MarkupColorLink: TLabel;
MarkupWordDelayLabel: TLabel;
MarkupWordNoTimerCheckBox: TCheckBox;
MarkupWordFullLenSpin: TSpinEdit;
MarkupWordFullLenLabel: TLabel;
MarkupWordNoKeyword: TCheckBox;
MarkupWordTrim: TCheckBox;
MarkupWordTimeTrackBar: TTrackBar;
procedure AutoDelayTrackBarChange(Sender: TObject);
procedure BracketComboChange(Sender: TObject);
procedure BracketComboExit(Sender: TObject);
procedure BracketComboKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure BracketLinkClick(Sender: TObject);
procedure BracketLinkMouseEnter(Sender: TObject);
procedure BracketLinkMouseLeave(Sender: TObject);
function GeneralPage: TEditorGeneralOptionsFrame; inline;
procedure MarkupColorLinkClick(Sender: TObject);
private
{ private declarations }
FDialog: TAbstractOptionsEditorDialog;
public
function GetTitle: String; override;
procedure Setup(ADialog: TAbstractOptionsEditorDialog); override;
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
end;
implementation
{$R *.lfm}
{ TEditorMarkupOptionsFrame }
procedure TEditorMarkupOptionsFrame.BracketComboChange(Sender: TObject);
begin
if BracketCombo.Items.IndexOf(BracketCombo.Text) >= 0 then
BracketComboExit(Sender);
end;
procedure TEditorMarkupOptionsFrame.AutoDelayTrackBarChange(Sender: TObject);
begin
MarkupWordDelayLabel.Caption :=
Format(dlgEdDelayInSec, [FormatFloat('0.00', MarkupWordTimeTrackBar.Position/1000)]);
end;
procedure TEditorMarkupOptionsFrame.BracketComboExit(Sender: TObject);
var
a: Integer;
begin
with GeneralPage do
for a := Low(PreviewEdits) to High(PreviewEdits) do
if PreviewEdits[a] <> nil then
begin
if BracketCombo.ItemIndex = 0 then
PreviewEdits[a].Options := PreviewEdits[a].Options - [eoBracketHighlight]
else
begin
PreviewEdits[a].Options := PreviewEdits[a].Options + [eoBracketHighlight];
PreviewEdits[a].BracketHighlightStyle := TSynEditBracketHighlightStyle(BracketCombo.ItemIndex - 1);
end;
end;
end;
procedure TEditorMarkupOptionsFrame.BracketComboKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssCtrl in Shift) and (Key = VK_S) then
BracketComboExit(Sender);
end;
procedure TEditorMarkupOptionsFrame.BracketLinkClick(Sender: TObject);
var
col: TEditorColorOptionsFrame;
begin
col := TEditorColorOptionsFrame(FDialog.FindEditor(TEditorColorOptionsFrame));
if col = nil then exit;
FDialog.OpenEditor(TEditorColorOptionsFrame);
col.SelectAhaColor(ahaBracketMatch);
end;
procedure TEditorMarkupOptionsFrame.BracketLinkMouseEnter(Sender: TObject);
begin
(Sender as TLabel).Font.Underline := True;
(Sender as TLabel).Font.Color := clRed;
end;
procedure TEditorMarkupOptionsFrame.BracketLinkMouseLeave(Sender: TObject);
begin
(Sender as TLabel).Font.Underline := False;
(Sender as TLabel).Font.Color := clBlue;
end;
function TEditorMarkupOptionsFrame.GeneralPage: TEditorGeneralOptionsFrame; inline;
begin
Result := TEditorGeneralOptionsFrame(FDialog.FindEditor(TEditorGeneralOptionsFrame));
end;
procedure TEditorMarkupOptionsFrame.MarkupColorLinkClick(Sender: TObject);
var
col: TEditorColorOptionsFrame;
begin
col := TEditorColorOptionsFrame(FDialog.FindEditor(TEditorColorOptionsFrame));
if col = nil then exit;
FDialog.OpenEditor(TEditorColorOptionsFrame);
col.SelectAhaColor(ahaHighlightWord);
end;
function TEditorMarkupOptionsFrame.GetTitle: String;
begin
Result := lisAutoMarkup;
end;
procedure TEditorMarkupOptionsFrame.Setup(ADialog: TAbstractOptionsEditorDialog);
begin
FDialog := ADialog;
divWordGroup.Caption := dlgMarkupGroup;
MarkupWordFullLenLabel.Caption := dlgMarkupWordFullLen;
MarkupWordNoKeyword.Caption := dlgMarkupWordNoKeyword;
MarkupWordTrim.Caption := dlgMarkupWordTrim;
MarkupWordNoTimerCheckBox.Caption := dlgMarkupWordNoTimer;
MarkupColorLink.Caption := dlgColorLink;
divMatchingBrackets.Caption := dlgBracketMatchGroup;
BracketLabel.Caption := dlgBracketHighlight;
BracketLink.Caption := dlgColorLink;
BracketCombo.Items.Add(dlgNoBracketHighlight);
BracketCombo.Items.Add(dlgHighlightLeftOfCursor);
BracketCombo.Items.Add(dlgHighlightRightOfCursor);
BracketCombo.Items.Add(gldHighlightBothSidesOfCursor);
end;
procedure TEditorMarkupOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
begin
with AOptions as TEditorOptions do
begin
MarkupWordTimeTrackBar.Position := MarkupCurWordTime;
MarkupWordFullLenSpin. Value := MarkupCurWordFullLen;
MarkupWordNoKeyword.Checked := MarkupCurWordNoKeyword;
MarkupWordTrim.Checked := MarkupCurWordTrim;
MarkupWordNoTimerCheckBox.Checked := MarkupCurWordNoTimer;
if eoBracketHighlight in SynEditOptions then
BracketCombo.ItemIndex := Ord(BracketHighlightStyle) + 1
else
BracketCombo.ItemIndex := 0;
end;
AutoDelayTrackBarChange(nil);
end;
procedure TEditorMarkupOptionsFrame.WriteSettings(AOptions: TAbstractIDEOptions);
begin
with AOptions as TEditorOptions do
begin
MarkupCurWordTime := MarkupWordTimeTrackBar.Position;
MarkupCurWordFullLen := MarkupWordFullLenSpin.Value;
MarkupCurWordNoKeyword := MarkupWordNoKeyword.Checked;
MarkupCurWordTrim := MarkupWordTrim.Checked;
MarkupCurWordNoTimer := MarkupWordNoTimerCheckBox.Checked;
if BracketCombo.ItemIndex = 0 then
SynEditOptions := SynEditOptions - [eoBracketHighlight]
else
begin
SynEditOptions := SynEditOptions + [eoBracketHighlight];
BracketHighlightStyle := TSynEditBracketHighlightStyle(BracketCombo.ItemIndex - 1);
end;
end;
end;
class function TEditorMarkupOptionsFrame.SupportedOptionsClass: TAbstractIDEOptionsClass;
begin
Result := TEditorOptions;
end;
initialization
RegisterIDEOptionsEditor(GroupEditor, TEditorMarkupOptionsFrame,
EdtOptionsMarkup, EdtOptionsDisplay);
end.

View File

@ -1451,6 +1451,7 @@ resourcestring
dlgTooltipEval = 'Tooltip expression evaluation';
dlgTooltipTools = 'Tooltip symbol Tools';
dlgMarkupGroup = 'Word under Caret Highlight';
dlgBracketMatchGroup = 'Matching bracket pairs';
dlgMarkupWordFullLen = 'Match word boundaries for words up to this length:';
dlgMarkupWordNoKeyword = 'Ignore Keywords';
dlgMarkupWordTrim = 'Trim Spaces (when highlighting current selection)';
@ -1474,7 +1475,8 @@ resourcestring
dlgEdDelete = 'Delete';
dlgIndentCodeTo = 'Indent code to';
//dlgCodeToolsTab = 'Code Tools';
lisAutomaticFeatures = 'Automatic features';
lisAutomaticFeatures = 'Completion and Hints';
lisAutoMarkup = 'Markup Matches';
dlgMultiWinOptions = 'Pages and Windows';
dlgMultiWinTabGroup = 'Notebook Tabs:';

View File

@ -107,7 +107,7 @@ uses
files_options, desktop_options, window_options,
Backup_Options, naming_options, fpdoc_options,
editor_display_options, editor_keymapping_options, editor_mouseaction_options,
editor_mouseaction_options_advanced, editor_color_options,
editor_mouseaction_options_advanced, editor_color_options, editor_markup_options,
editor_codetools_options, editor_codefolding_options,
editor_general_misc_options, editor_dividerdraw_options,
editor_multiwindow_options,