mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-19 10:09:29 +02:00
IDE, EditorOptions: added config for different modes to highlight "string", "Ansistring", "exit", "break",
git-svn-id: trunk@27963 -
This commit is contained in:
parent
16196b2246
commit
c8a6d0a3d9
@ -930,7 +930,9 @@ type
|
||||
private
|
||||
FCompletionLongLineHintInMSec: Integer;
|
||||
FCompletionLongLineHintType: TSynCompletionLongHintType;
|
||||
FPasExtendedKeywordsMode: Boolean;
|
||||
FHideSingleTabInWindow: Boolean;
|
||||
FPasStringKeywordMode: TSynPasStringMode;
|
||||
xmlconfig: TRttiXMLConfig;
|
||||
|
||||
// general options
|
||||
@ -1172,6 +1174,12 @@ type
|
||||
read FReverseFoldPopUpOrder write FReverseFoldPopUpOrder default True;
|
||||
property UseTabHistory: Boolean read fUseTabHistory write fUseTabHistory;
|
||||
|
||||
// Highlighter Pas
|
||||
property PasExtendedKeywordsMode: Boolean
|
||||
read FPasExtendedKeywordsMode write FPasExtendedKeywordsMode default False;
|
||||
property PasStringKeywordMode: TSynPasStringMode
|
||||
read FPasStringKeywordMode write FPasStringKeywordMode default spsmDefault;
|
||||
|
||||
end;
|
||||
|
||||
const
|
||||
@ -3282,6 +3290,11 @@ begin
|
||||
|
||||
// Code folding
|
||||
FReverseFoldPopUpOrder := True;
|
||||
|
||||
// pas highlighter
|
||||
FPasExtendedKeywordsMode := False;
|
||||
FPasStringKeywordMode := spsmDefault;
|
||||
|
||||
end;
|
||||
|
||||
procedure TEditorOptions.Load;
|
||||
@ -4054,6 +4067,10 @@ begin
|
||||
ReadHighlighterSettings(Syn, '');
|
||||
ReadHighlighterFoldSettings(Syn);
|
||||
ReadHighlighterDivDrawSettings(Syn);
|
||||
if Syn is TSynPasSyn then begin
|
||||
TSynPasSyn(Syn).ExtendedKeywordsMode := PasExtendedKeywordsMode;
|
||||
TSynPasSyn(Syn).StringKeywordMode := PasStringKeywordMode;
|
||||
end;;
|
||||
end;
|
||||
|
||||
procedure TEditorOptions.SetMarkupColors(aSynEd: TSynEdit);
|
||||
|
@ -27,7 +27,7 @@ interface
|
||||
uses
|
||||
Classes, SysUtils, LCLProc, LCLType, StdCtrls, Controls, ExtCtrls, Graphics,
|
||||
EditorOptions, LazarusIDEStrConsts, IDEProcs, IDEOptionsIntf,
|
||||
SynEdit, SynBeautifier, DividerBevel;
|
||||
SynEdit, SynBeautifier, SynHighlighterPas, DividerBevel;
|
||||
|
||||
type
|
||||
TPreviewEditor = TSynEdit;
|
||||
@ -97,12 +97,17 @@ type
|
||||
private
|
||||
FDefaultBookmarkImages: TImageList;
|
||||
FDialog: TAbstractOptionsEditorDialog;
|
||||
FPasExtendedKeywordsMode: Boolean;
|
||||
FPasStringKeywordMode: TSynPasStringMode;
|
||||
function DefaultBookmarkImages: TImageList;
|
||||
procedure SetExtendedKeywordsMode(const AValue: Boolean);
|
||||
procedure SetStringKeywordMode(const AValue: TSynPasStringMode);
|
||||
public
|
||||
PreviewEdits: array of TPreviewEditor;
|
||||
procedure AddPreviewEdit(AEditor: TPreviewEditor);
|
||||
procedure SetPreviewOption(AValue: Boolean; AnOption: TSynEditorOption); overload;
|
||||
procedure SetPreviewOption(AValue: Boolean; AnOption: TSynEditorOption2); overload;
|
||||
procedure UpdatePrevieEdits;
|
||||
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
function GetTitle: String; override;
|
||||
@ -110,6 +115,11 @@ type
|
||||
procedure ReadSettings(AOptions: TAbstractIDEOptions); override;
|
||||
procedure WriteSettings(AOptions: TAbstractIDEOptions); override;
|
||||
class function SupportedOptionsClass: TAbstractIDEOptionsClass; override;
|
||||
// current previewmode
|
||||
property PasExtendedKeywordsMode: Boolean
|
||||
read FPasExtendedKeywordsMode write SetExtendedKeywordsMode default False;
|
||||
property PasStringKeywordMode: TSynPasStringMode
|
||||
read FPasStringKeywordMode write SetStringKeywordMode default spsmDefault;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -328,6 +338,17 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEditorGeneralOptionsFrame.UpdatePrevieEdits;
|
||||
var
|
||||
a: Integer;
|
||||
begin
|
||||
for a := Low(PreviewEdits) to High(PreviewEdits) do
|
||||
if PreviewEdits[a].Highlighter is TSynPasSyn then begin
|
||||
TSynPasSyn(PreviewEdits[a].Highlighter).ExtendedKeywordsMode := PasExtendedKeywordsMode;
|
||||
TSynPasSyn(PreviewEdits[a].Highlighter).StringKeywordMode := PasStringKeywordMode;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TEditorGeneralOptionsFrame.ComboboxOnChange(Sender: TObject);
|
||||
var
|
||||
ComboBox: TComboBox absolute Sender;
|
||||
@ -499,6 +520,20 @@ begin
|
||||
Result := FDefaultBookmarkImages;
|
||||
end;
|
||||
|
||||
procedure TEditorGeneralOptionsFrame.SetExtendedKeywordsMode(const AValue: Boolean);
|
||||
begin
|
||||
if FPasExtendedKeywordsMode = AValue then exit;
|
||||
FPasExtendedKeywordsMode := AValue;
|
||||
UpdatePrevieEdits;
|
||||
end;
|
||||
|
||||
procedure TEditorGeneralOptionsFrame.SetStringKeywordMode(const AValue: TSynPasStringMode);
|
||||
begin
|
||||
if FPasStringKeywordMode = AValue then exit;
|
||||
FPasStringKeywordMode := AValue;
|
||||
UpdatePrevieEdits;
|
||||
end;
|
||||
|
||||
procedure TEditorGeneralOptionsFrame.AddPreviewEdit(AEditor: TPreviewEditor);
|
||||
begin
|
||||
SetLength(PreviewEdits, Length(PreviewEdits) + 1);
|
||||
@ -511,6 +546,10 @@ constructor TEditorGeneralOptionsFrame.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited Create(AOwner);
|
||||
PreviewEdits := nil;
|
||||
if EditorOpts <> nil then begin
|
||||
FPasExtendedKeywordsMode := EditorOpts.PasExtendedKeywordsMode;
|
||||
FPasStringKeywordMode := EditorOpts.PasStringKeywordMode;
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
|
@ -202,13 +202,71 @@ inherited EditorMarkupOptionsFrame: TEditorMarkupOptionsFrame
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Left = -721
|
||||
Height = 17
|
||||
Top = 157
|
||||
Width = 634
|
||||
Width = 1355
|
||||
Caption = 'divMatchingBrackets'
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object divKeywords: TDividerBevel[13]
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = BracketCombo
|
||||
AnchorSideTop.Side = asrBottom
|
||||
AnchorSideRight.Control = Owner
|
||||
AnchorSideRight.Side = asrBottom
|
||||
Left = 0
|
||||
Height = 17
|
||||
Top = 209
|
||||
Width = 634
|
||||
Caption = 'divKeywords'
|
||||
Anchors = [akTop, akLeft, akRight]
|
||||
BorderSpacing.Top = 6
|
||||
Font.Style = [fsBold]
|
||||
ParentFont = False
|
||||
end
|
||||
object chkExtPasKeywords: TCheckBox[14]
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = divKeywords
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 19
|
||||
Top = 232
|
||||
Width = 123
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
Caption = 'chkExtPasKeywords'
|
||||
OnChange = chkExtPasKeywordsChange
|
||||
TabOrder = 6
|
||||
end
|
||||
object lblPasStringKeywords: TLabel[15]
|
||||
AnchorSideLeft.Control = dropPasStringKeywords
|
||||
AnchorSideLeft.Side = asrBottom
|
||||
AnchorSideTop.Control = dropPasStringKeywords
|
||||
AnchorSideTop.Side = asrCenter
|
||||
Left = 232
|
||||
Height = 16
|
||||
Top = 260
|
||||
Width = 114
|
||||
BorderSpacing.Left = 6
|
||||
Caption = 'lblPasStringKeywords'
|
||||
ParentColor = False
|
||||
end
|
||||
object dropPasStringKeywords: TComboBox[16]
|
||||
AnchorSideLeft.Control = Owner
|
||||
AnchorSideTop.Control = chkExtPasKeywords
|
||||
AnchorSideTop.Side = asrBottom
|
||||
Left = 6
|
||||
Height = 23
|
||||
Top = 257
|
||||
Width = 220
|
||||
BorderSpacing.Left = 6
|
||||
BorderSpacing.Top = 6
|
||||
ItemHeight = 15
|
||||
OnChange = dropPasStringKeywordsChange
|
||||
Style = csDropDownList
|
||||
TabOrder = 7
|
||||
end
|
||||
end
|
||||
|
@ -28,7 +28,7 @@ uses
|
||||
Classes, StdCtrls, ComCtrls, Graphics, sysutils,
|
||||
EditorOptions, LazarusIDEStrConsts, IDEOptionsIntf, Spin, ExtCtrls,
|
||||
SynEditMarkupBracket, editor_color_options, editor_general_options,
|
||||
SynEdit, SynCompletion, DividerBevel, LCLType;
|
||||
SynEdit, SynCompletion, SynHighlighterPas, DividerBevel, LCLType;
|
||||
|
||||
type
|
||||
{ TEditorMarkupOptionsFrame }
|
||||
@ -37,8 +37,12 @@ type
|
||||
BracketCombo: TComboBox;
|
||||
BracketLabel: TLabel;
|
||||
BracketLink: TLabel;
|
||||
chkExtPasKeywords: TCheckBox;
|
||||
dropPasStringKeywords: TComboBox;
|
||||
divKeywords: TDividerBevel;
|
||||
divMatchingBrackets: TDividerBevel;
|
||||
divWordGroup: TDividerBevel;
|
||||
lblPasStringKeywords: TLabel;
|
||||
MarkupColorLink: TLabel;
|
||||
MarkupWordDelayLabel: TLabel;
|
||||
MarkupWordNoTimerCheckBox: TCheckBox;
|
||||
@ -54,6 +58,8 @@ type
|
||||
procedure BracketLinkClick(Sender: TObject);
|
||||
procedure BracketLinkMouseEnter(Sender: TObject);
|
||||
procedure BracketLinkMouseLeave(Sender: TObject);
|
||||
procedure chkExtPasKeywordsChange(Sender: TObject);
|
||||
procedure dropPasStringKeywordsChange(Sender: TObject);
|
||||
function GeneralPage: TEditorGeneralOptionsFrame; inline;
|
||||
procedure MarkupColorLinkClick(Sender: TObject);
|
||||
private
|
||||
@ -132,6 +138,18 @@ begin
|
||||
(Sender as TLabel).Font.Color := clBlue;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.chkExtPasKeywordsChange(Sender: TObject);
|
||||
begin
|
||||
GeneralPage.PasExtendedKeywordsMode := chkExtPasKeywords.Checked;
|
||||
GeneralPage.UpdatePrevieEdits;
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.dropPasStringKeywordsChange(Sender: TObject);
|
||||
begin
|
||||
GeneralPage.PasStringKeywordMode := TSynPasStringMode(dropPasStringKeywords.ItemIndex);
|
||||
GeneralPage.UpdatePrevieEdits;
|
||||
end;
|
||||
|
||||
function TEditorMarkupOptionsFrame.GeneralPage: TEditorGeneralOptionsFrame; inline;
|
||||
begin
|
||||
Result := TEditorGeneralOptionsFrame(FDialog.FindEditor(TEditorGeneralOptionsFrame));
|
||||
@ -170,6 +188,13 @@ begin
|
||||
BracketCombo.Items.Add(dlgHighlightLeftOfCursor);
|
||||
BracketCombo.Items.Add(dlgHighlightRightOfCursor);
|
||||
BracketCombo.Items.Add(gldHighlightBothSidesOfCursor);
|
||||
|
||||
divKeywords.Caption := dlgPasExtKeywordsGroup;
|
||||
chkExtPasKeywords.Caption := dlgPasExtKeywords;
|
||||
lblPasStringKeywords.Caption := dlgPasStringKeywords;
|
||||
dropPasStringKeywords.Items.Add(dlgPasStringKeywordsOptDefault);
|
||||
dropPasStringKeywords.Items.Add(dlgPasStringKeywordsOptString);
|
||||
dropPasStringKeywords.Items.Add(dlgPasStringKeywordsOptNone);
|
||||
end;
|
||||
|
||||
procedure TEditorMarkupOptionsFrame.ReadSettings(AOptions: TAbstractIDEOptions);
|
||||
@ -186,6 +211,9 @@ begin
|
||||
BracketCombo.ItemIndex := Ord(BracketHighlightStyle) + 1
|
||||
else
|
||||
BracketCombo.ItemIndex := 0;
|
||||
|
||||
chkExtPasKeywords.Checked := PasExtendedKeywordsMode;
|
||||
dropPasStringKeywords.ItemIndex := ord(PasStringKeywordMode);
|
||||
end;
|
||||
AutoDelayTrackBarChange(nil);
|
||||
end;
|
||||
@ -208,6 +236,8 @@ begin
|
||||
BracketHighlightStyle := TSynEditBracketHighlightStyle(BracketCombo.ItemIndex - 1);
|
||||
end;
|
||||
|
||||
PasExtendedKeywordsMode := chkExtPasKeywords.Checked;
|
||||
PasStringKeywordMode := TSynPasStringMode(dropPasStringKeywords.ItemIndex);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user