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