mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 13:49:34 +01:00 
			
		
		
		
	IDE: generate comments in all compiler options GUI.
git-svn-id: trunk@42400 -
This commit is contained in:
		
							parent
							
								
									d5fea9e70b
								
							
						
					
					
						commit
						4be93112dd
					
				@ -254,6 +254,7 @@ type
 | 
			
		||||
    fDontUseConfigFile: Boolean;
 | 
			
		||||
    fCustomConfigFile: Boolean;
 | 
			
		||||
    fConfigFilePath: String;
 | 
			
		||||
    fUseCommentsInCustomOptions: Boolean;
 | 
			
		||||
  protected
 | 
			
		||||
    function GetCustomOptions: string; virtual; abstract;
 | 
			
		||||
    function GetDebugPath: string; virtual; abstract;
 | 
			
		||||
@ -419,6 +420,7 @@ type
 | 
			
		||||
    property CustomConfigFile: Boolean read fCustomConfigFile write SetCustomConfigFile;
 | 
			
		||||
    property ConfigFilePath: String read fConfigFilePath write SetConfigFilePath;
 | 
			
		||||
    property CustomOptions: string read GetCustomOptions write SetCustomOptions;
 | 
			
		||||
    property UseCommentsInCustomOptions: Boolean read fUseCommentsInCustomOptions write fUseCommentsInCustomOptions;
 | 
			
		||||
 | 
			
		||||
    // execute other
 | 
			
		||||
    procedure SetAlternativeCompile(const Command: string; ScanFPCMsgs: boolean); virtual; abstract; // disable normal compile and call this instead
 | 
			
		||||
 | 
			
		||||
@ -96,7 +96,6 @@ object frmAllCompilerOptions: TfrmAllCompilerOptions
 | 
			
		||||
    Width = 233
 | 
			
		||||
    BorderSpacing.Left = 29
 | 
			
		||||
    Caption = 'Use comments in custom options'
 | 
			
		||||
    Enabled = False
 | 
			
		||||
    TabOrder = 4
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -1055,6 +1055,9 @@ begin
 | 
			
		||||
  Result := fRootOptGroup.FindOptionById(aId);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
const
 | 
			
		||||
  CommentId = '-dLazIdeComment_';
 | 
			
		||||
 | 
			
		||||
function TCompilerOptReader.FromCustomOptions(aStrings: TStrings): TModalResult;
 | 
			
		||||
var
 | 
			
		||||
  i, j: Integer;
 | 
			
		||||
@ -1070,11 +1073,15 @@ begin
 | 
			
		||||
    begin
 | 
			
		||||
      s := Trim(aStrings[i]);
 | 
			
		||||
      if s = '' then Continue;
 | 
			
		||||
 | 
			
		||||
      sl.Clear;
 | 
			
		||||
      SplitCmdLineParams(s, sl);
 | 
			
		||||
      for j := 0 to sl.Count-1 do
 | 
			
		||||
        if AnsiStartsStr('-d', sl[j]) then
 | 
			
		||||
        begin
 | 
			
		||||
          if not AnsiStartsStr(CommentId, sl[j]) then
 | 
			
		||||
            fDefines.Add(sl[j])
 | 
			
		||||
        end
 | 
			
		||||
        else
 | 
			
		||||
          fRootOptGroup.SelectOption(sl[j]);
 | 
			
		||||
    end;
 | 
			
		||||
@ -1088,9 +1095,23 @@ function TCompilerOptReader.ToCustomOptions(aStrings: TStrings;
 | 
			
		||||
// Copy options to a list if they have a non-default value (True for boolean).
 | 
			
		||||
 | 
			
		||||
  function PossibleComment(aRoot: TCompilerOpt): string;
 | 
			
		||||
  var
 | 
			
		||||
    i: Integer;
 | 
			
		||||
    ch: Char;
 | 
			
		||||
  begin
 | 
			
		||||
    if aUseComments then
 | 
			
		||||
      Result := '    // ' + aRoot.Description
 | 
			
		||||
    begin
 | 
			
		||||
      // ToDo: Show "//" comment and change to a define when storing.
 | 
			
		||||
      // Result := '    // ' + aRoot.Description
 | 
			
		||||
      Result := '  ' + CommentId;
 | 
			
		||||
      for i := 1 to Length(aRoot.Description) do
 | 
			
		||||
      begin
 | 
			
		||||
        ch := aRoot.Description[i];
 | 
			
		||||
        if ch in [' '] then
 | 
			
		||||
          ch := '_';           // Change illegal characters to '_'
 | 
			
		||||
        Result := Result + ch;
 | 
			
		||||
      end;
 | 
			
		||||
    end
 | 
			
		||||
    else
 | 
			
		||||
      Result := '';
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
@ -1616,6 +1616,7 @@ begin
 | 
			
		||||
    CustomConfigFile := aXMLConfig.GetValue(p+'ConfigFile/CustomConfigFile/Value', false);
 | 
			
		||||
  ConfigFilePath := f(aXMLConfig.GetValue(p+'ConfigFile/ConfigFilePath/Value', 'extrafpc.cfg'));
 | 
			
		||||
  CustomOptions := LineBreaksToSystemLineBreaks(aXMLConfig.GetValue(p+'CustomOptions/Value', ''));
 | 
			
		||||
  UseCommentsInCustomOptions := aXMLConfig.GetValue(p+'ConfigFile/UseCommentsInCustomOptions/Value', false);
 | 
			
		||||
 | 
			
		||||
  { Compilation }
 | 
			
		||||
  CompilerPath := f(aXMLConfig.GetValue(p+'CompilerPath/Value','$(CompPath)'));
 | 
			
		||||
@ -1814,6 +1815,7 @@ begin
 | 
			
		||||
  aXMLConfig.SetDeleteValue(p+'ConfigFile/ConfigFilePath/Value', f(ConfigFilePath),'extrafpc.cfg');
 | 
			
		||||
  aXMLConfig.SetDeleteValue(p+'CustomOptions/Value',
 | 
			
		||||
                            LineBreaksToSystemLineBreaks(CustomOptions),''); // do not touch / \ characters
 | 
			
		||||
  aXMLConfig.SetDeleteValue(p+'ConfigFile/UseCommentsInCustomOptions/Value', UseCommentsInCustomOptions,false);
 | 
			
		||||
 | 
			
		||||
  { Compilation }
 | 
			
		||||
  aXMLConfig.SetDeleteValue(p+'CompilerPath/Value', f(CompilerPath),'');
 | 
			
		||||
 | 
			
		||||
@ -72,6 +72,7 @@ type
 | 
			
		||||
    fEngine: TIDECfgScriptEngine;
 | 
			
		||||
    fSynCompletion: TSynCompletion;
 | 
			
		||||
    FOptionsReader: TCompilerOptReader;
 | 
			
		||||
    FUseComments: boolean;
 | 
			
		||||
    procedure SetIdleConnected(AValue: TIdleActions);
 | 
			
		||||
    procedure SetStatusMessage(const AValue: string);
 | 
			
		||||
    procedure StartCompletion;
 | 
			
		||||
@ -107,7 +108,6 @@ type
 | 
			
		||||
    property CompletionValues: TStrings read FCompletionValues;
 | 
			
		||||
    property CompletionHistory: TStrings read FCompletionHistory;
 | 
			
		||||
    property IdleConnected: TIdleActions read FIdleConnected write SetIdleConnected;
 | 
			
		||||
    property CompOptions: TBaseCompilerOptions read FCompOptions;
 | 
			
		||||
    property OptionsReader: TCompilerOptReader read FOptionsReader;
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
@ -126,9 +126,11 @@ begin
 | 
			
		||||
    AllOpts := TfrmAllCompilerOptions.Create(Nil);
 | 
			
		||||
    try
 | 
			
		||||
      AllOpts.OptionsReader := FOptionsReader;
 | 
			
		||||
      AllOpts.cbUseComments.Checked := FUseComments;
 | 
			
		||||
      if AllOpts.ShowModal = mrOK then
 | 
			
		||||
      begin
 | 
			
		||||
        // Synchronize with custom options memo
 | 
			
		||||
        FUseComments := AllOpts.cbUseComments.Checked;
 | 
			
		||||
        AllOpts.ToCustomOptions(memoCustomOptions.Lines);
 | 
			
		||||
        memoCustomOptions.Invalidate;
 | 
			
		||||
      end;
 | 
			
		||||
@ -531,10 +533,10 @@ begin
 | 
			
		||||
      AddWord(ParsedCompilerOptsUsageVars[pcouv]);
 | 
			
		||||
 | 
			
		||||
  // add build macros and values
 | 
			
		||||
  if CompOptions.BuildMacros<>nil then begin
 | 
			
		||||
    for i:=0 to CompOptions.BuildMacros.Count-1 do
 | 
			
		||||
  if FCompOptions.BuildMacros<>nil then begin
 | 
			
		||||
    for i:=0 to FCompOptions.BuildMacros.Count-1 do
 | 
			
		||||
    begin
 | 
			
		||||
      Macro:=CompOptions.BuildMacros[i];
 | 
			
		||||
      Macro:=FCompOptions.BuildMacros[i];
 | 
			
		||||
      AddWord(Macro.Identifier);
 | 
			
		||||
      for j:=0 to Macro.Values.Count-1 do
 | 
			
		||||
        AddWord(Macro.Values[j]);
 | 
			
		||||
@ -709,10 +711,10 @@ var
 | 
			
		||||
  Vars: TCTCfgScriptVariables;
 | 
			
		||||
begin
 | 
			
		||||
  FCompOptions := AOptions as TBaseCompilerOptions;
 | 
			
		||||
  FIsPackage := CompOptions is TPkgCompilerOptions;
 | 
			
		||||
  FIsPackage := FCompOptions is TPkgCompilerOptions;
 | 
			
		||||
  //debugln(['TCompilerOtherOptionsFrame.ReadSettings ',dbgs(Pointer(FCompOptions)),' ',FCompOptions=Project1.CompilerOptions]);
 | 
			
		||||
 | 
			
		||||
  CondSynEdit.Lines.Text := CompOptions.Conditionals;
 | 
			
		||||
  CondSynEdit.Lines.Text := FCompOptions.Conditionals;
 | 
			
		||||
  if FHighlighter=nil then
 | 
			
		||||
  begin
 | 
			
		||||
    FHighlighter := TPreviewPasSyn.Create(Self);
 | 
			
		||||
@ -721,14 +723,15 @@ begin
 | 
			
		||||
  EditorOpts.ReadHighlighterSettings(FHighlighter, '');
 | 
			
		||||
  EditorOpts.GetSynEditSettings(CondSynEdit);
 | 
			
		||||
 | 
			
		||||
  Vars := GetBuildMacroValues(CompOptions,false);
 | 
			
		||||
  Vars := GetBuildMacroValues(FCompOptions,false);
 | 
			
		||||
  if Vars<>nil then
 | 
			
		||||
    DefaultVariables.Assign(Vars)
 | 
			
		||||
  else
 | 
			
		||||
    DefaultVariables.Clear;
 | 
			
		||||
 | 
			
		||||
  // Custom Options
 | 
			
		||||
  memoCustomOptions.Text := CompOptions.CustomOptions;
 | 
			
		||||
  memoCustomOptions.Text := FCompOptions.CustomOptions;
 | 
			
		||||
  FUseComments := FCompOptions.UseCommentsInCustomOptions;
 | 
			
		||||
 | 
			
		||||
  UpdateStatusBar;
 | 
			
		||||
end;
 | 
			
		||||
@ -743,6 +746,7 @@ begin
 | 
			
		||||
  begin
 | 
			
		||||
    Conditionals := CondSynEdit.Lines.Text;
 | 
			
		||||
    CustomOptions := memoCustomOptions.Text;
 | 
			
		||||
    UseCommentsInCustomOptions := FUseComments;
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user