mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 16:34:24 +01: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