mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 23:08:05 +02:00
IDE, EnvironmentOpts: Move implementation of specific TranferMacros to new unit.
EnvironmentOpts: Remove dependency on IDETranslations
This commit is contained in:
parent
bf4114c8ca
commit
f0d3e9fe7c
@ -55,7 +55,7 @@ uses
|
||||
TransferMacros, CompilerOptions, ExtTools, etMakeMsgParser, etFPCMsgParser,
|
||||
etPas2jsMsgParser, Compiler, FPCSrcScan, PackageDefs, PackageSystem, Project,
|
||||
ProjectIcon, ModeMatrixOpts, BaseBuildManager, ApplicationBundle,
|
||||
RunParamsOpts, SearchPathProcs;
|
||||
RunParamsOpts, IdeTransferMacros, SearchPathProcs;
|
||||
|
||||
const
|
||||
cInvalidCompiler = 'InvalidCompiler';
|
||||
@ -422,8 +422,7 @@ begin
|
||||
IDEMacros:=TLazIDEMacros.Create;
|
||||
CompilerOptions.OnParseString:=@OnSubstituteCompilerOption;
|
||||
|
||||
// environment
|
||||
EnvironmentOptions.InitMacros(GlobalMacroList);
|
||||
TIdeTransferMarcros.InitMacros(GlobalMacroList);
|
||||
|
||||
// project
|
||||
GlobalMacroList.Add(TTransferMacro.Create('Project','',
|
||||
|
@ -47,11 +47,11 @@ uses
|
||||
FileProcs, SourceChanger, CodeCompletionTool,
|
||||
// IDEIntf
|
||||
ProjectIntf, ObjectInspector, IDEWindowIntf, IDEOptionsIntf, IDEOptEditorIntf,
|
||||
ComponentReg, IDEExternToolIntf, MacroDefIntf, SrcEditorIntf,
|
||||
ComponentReg, IDEExternToolIntf, SrcEditorIntf,
|
||||
// DebuggerIntf
|
||||
DbgIntfDebuggerBase,
|
||||
// IDE
|
||||
RecentListProcs, SearchPathProcs, LazarusIDEStrConsts, IDETranslations, LazConf,
|
||||
RecentListProcs, SearchPathProcs, LazarusIDEStrConsts, LazConf,
|
||||
IDEOptionDefs, TransferMacros, ModeMatrixOpts,
|
||||
IdeCoolbarData, EditorToolbarStatic, IdeDebuggerOpts;
|
||||
|
||||
@ -799,23 +799,6 @@ type
|
||||
function GetParsedFppkgConfig: string; override;
|
||||
function GetParsedValue(o: TEnvOptParseType; AUnparsedValue: String = ''): string;
|
||||
|
||||
// macros
|
||||
procedure InitMacros(AMacroList: TTransferMacroList);
|
||||
function MacroFuncFPCSrcDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
function MacroFuncLazarusDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
function MacroFuncExeExt(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
function MacroFuncLanguageID(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
function MacroFuncLanguageName(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
function MacroFuncTestDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
function MacroFuncConfDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
|
||||
procedure UseDesktop(ADesktop: TDesktopOpt);
|
||||
procedure EnableDebugDesktop;
|
||||
procedure DisableDebugDesktop;
|
||||
@ -3156,68 +3139,6 @@ begin
|
||||
Result:=GetParsedValue(eopCompilerFilename);
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptions.InitMacros(AMacroList: TTransferMacroList);
|
||||
begin
|
||||
AMacroList.Add(TTransferMacro.Create('FPCSrcDir','',
|
||||
lisFreePascalSourceDirectory,@MacroFuncFPCSrcDir,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('LazarusDir','',
|
||||
lisLazarusDirectory,@MacroFuncLazarusDir,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('ExeExt','',
|
||||
lisFileExtensionOfPrograms, @MacroFuncExeExt, []));
|
||||
AMacroList.Add(TTransferMacro.Create('LanguageID','',
|
||||
lisLazarusLanguageID,@MacroFuncLanguageID,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('LanguageName','',
|
||||
lisLazarusLanguageName,@MacroFuncLanguageName,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('TestDir','',
|
||||
lisTestDirectory,@MacroFuncTestDir,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('ConfDir','',
|
||||
lisConfigDirectory,@MacroFuncConfDir,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('Home',GetUserDir,
|
||||
lisUserSHomeDirectory, nil, []));
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncFPCSrcDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetParsedFPCSourceDirectory;
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncLazarusDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetParsedLazarusDirectory;
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncExeExt(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetExecutableExt;
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncLanguageID(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=LanguageID;
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncLanguageName(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetLazarusLanguageLocalizedName(LanguageID);
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncTestDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetParsedTestBuildDirectory;
|
||||
end;
|
||||
|
||||
function TEnvironmentOptions.MacroFuncConfDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetPrimaryConfigPath;
|
||||
end;
|
||||
|
||||
procedure TEnvironmentOptions.SaveDebuggerPropertiesList;
|
||||
begin
|
||||
FDebuggerProperties.SaveToXml(FXMLCfg, 'EnvironmentOptions/Debugger/', 'EnvironmentOptions/DebuggerFilename/Value');
|
||||
|
110
ide/idetransfermacros.pas
Normal file
110
ide/idetransfermacros.pas
Normal file
@ -0,0 +1,110 @@
|
||||
unit IdeTransferMacros;
|
||||
|
||||
{$mode ObjFPC}{$H+}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, IDETranslations, EnvironmentOpts, TransferMacros,
|
||||
LazarusIDEStrConsts, LazConf, MacroDefIntf;
|
||||
|
||||
type
|
||||
|
||||
{ TIdeTransferMarcros }
|
||||
|
||||
TIdeTransferMarcros = class
|
||||
private
|
||||
// System
|
||||
class function MacroFuncExeExt(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
// Conf
|
||||
class function MacroFuncConfDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
// EnvironmentOpts
|
||||
class function MacroFuncFPCSrcDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
class function MacroFuncLazarusDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
class function MacroFuncLanguageID(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
class function MacroFuncLanguageName(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
class function MacroFuncTestDir(const {%H-}s:string; const {%H-}Data: PtrInt;
|
||||
var {%H-}Abort: boolean): string;
|
||||
public
|
||||
class procedure InitMacros(AMacroList: TTransferMacroList);
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
{ TIdeTransferMarcros }
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncConfDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetPrimaryConfigPath;
|
||||
end;
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncExeExt(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetExecutableExt;
|
||||
end;
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncFPCSrcDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=EnvironmentOptions.GetParsedFPCSourceDirectory;
|
||||
end;
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncLazarusDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=EnvironmentOptions.GetParsedLazarusDirectory;
|
||||
end;
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncLanguageID(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=EnvironmentOptions.LanguageID;
|
||||
end;
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncLanguageName(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=GetLazarusLanguageLocalizedName(EnvironmentOptions.LanguageID);
|
||||
end;
|
||||
|
||||
class function TIdeTransferMarcros.MacroFuncTestDir(const s: string;
|
||||
const Data: PtrInt; var Abort: boolean): string;
|
||||
begin
|
||||
Result:=EnvironmentOptions.GetParsedTestBuildDirectory;
|
||||
end;
|
||||
|
||||
class procedure TIdeTransferMarcros.InitMacros(AMacroList: TTransferMacroList);
|
||||
begin
|
||||
// System
|
||||
AMacroList.Add(TTransferMacro.Create('Home',GetUserDir,
|
||||
lisUserSHomeDirectory, nil, []));
|
||||
AMacroList.Add(TTransferMacro.Create('ExeExt','',
|
||||
lisFileExtensionOfPrograms, @MacroFuncExeExt, []));
|
||||
|
||||
// Conf
|
||||
AMacroList.Add(TTransferMacro.Create('ConfDir','',
|
||||
lisConfigDirectory,@MacroFuncConfDir,[]));
|
||||
|
||||
// EnvironmentOpts
|
||||
AMacroList.Add(TTransferMacro.Create('FPCSrcDir','',
|
||||
lisFreePascalSourceDirectory,@MacroFuncFPCSrcDir,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('LazarusDir','',
|
||||
lisLazarusDirectory,@MacroFuncLazarusDir,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('LanguageID','',
|
||||
lisLazarusLanguageID,@MacroFuncLanguageID,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('LanguageName','',
|
||||
lisLazarusLanguageName,@MacroFuncLanguageName,[]));
|
||||
AMacroList.Add(TTransferMacro.Create('TestDir','',
|
||||
lisTestDirectory,@MacroFuncTestDir,[]));
|
||||
end;
|
||||
|
||||
end.
|
||||
|
@ -1466,6 +1466,11 @@
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="FindInFilesWnd"/>
|
||||
</Unit>
|
||||
<Unit>
|
||||
<Filename Value="idetransfermacros.pas"/>
|
||||
<IsPartOfProject Value="True"/>
|
||||
<UnitName Value="IdeTransferMacros"/>
|
||||
</Unit>
|
||||
</Units>
|
||||
</ProjectOptions>
|
||||
<CompilerOptions>
|
||||
|
Loading…
Reference in New Issue
Block a user