mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-11-04 18:19:31 +01:00
pas2js: store pas2js macro for lazbuild
This commit is contained in:
parent
d62359e968
commit
23c628ea6d
@ -23,6 +23,7 @@ Type
|
|||||||
|
|
||||||
TPJSController = Class
|
TPJSController = Class
|
||||||
Private
|
Private
|
||||||
|
FMacroPas2js: TTransferMacro;
|
||||||
FOnRefresh: TNotifyEvent;
|
FOnRefresh: TNotifyEvent;
|
||||||
function GetPas2JSPath(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
function GetPas2JSPath(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
||||||
function GetPas2JSBrowser(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
function GetPas2JSBrowser(const s: string; const {%H-}Data: PtrInt; var Abort: boolean): string;
|
||||||
@ -44,9 +45,10 @@ Type
|
|||||||
Constructor Create;
|
Constructor Create;
|
||||||
Destructor Destroy; override;
|
Destructor Destroy; override;
|
||||||
Class Procedure DoneInstance;
|
Class Procedure DoneInstance;
|
||||||
Class Function instance : TPJSController;
|
Class Function Instance: TPJSController;
|
||||||
Procedure Hook; virtual;
|
Procedure Hook; virtual;
|
||||||
Procedure UnHook; virtual;
|
Procedure UnHook; virtual;
|
||||||
|
Procedure StoreMacros; virtual;
|
||||||
// Determine project HTML file from custom data
|
// Determine project HTML file from custom data
|
||||||
class function GetProjectHTMLFile(aProject: TLazProject): TLazProjectFile;
|
class function GetProjectHTMLFile(aProject: TLazProject): TLazProjectFile;
|
||||||
class function GetProjectHTMLFilename(aProject: TLazProject): string;
|
class function GetProjectHTMLFilename(aProject: TLazProject): string;
|
||||||
@ -56,6 +58,7 @@ Type
|
|||||||
function GetProjectLocation(aProject: TLazProject): string; virtual;
|
function GetProjectLocation(aProject: TLazProject): string; virtual;
|
||||||
function GetProjectURL(aProject: TLazProject): string; virtual;
|
function GetProjectURL(aProject: TLazProject): string; virtual;
|
||||||
Property OnRefresh : TNotifyEvent Read FOnRefresh Write FonRefresh;
|
Property OnRefresh : TNotifyEvent Read FOnRefresh Write FonRefresh;
|
||||||
|
property MacroPas2js: TTransferMacro read FMacroPas2js;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Const
|
Const
|
||||||
@ -84,7 +87,7 @@ begin
|
|||||||
FreeAndNil(Ctrl)
|
FreeAndNil(Ctrl)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
class function TPJSController.instance: TPJSController;
|
class function TPJSController.Instance: TPJSController;
|
||||||
begin
|
begin
|
||||||
if Ctrl=Nil then
|
if Ctrl=Nil then
|
||||||
Ctrl:=TPJSController.Create;
|
Ctrl:=TPJSController.Create;
|
||||||
@ -170,6 +173,7 @@ begin
|
|||||||
Result:=mrOk;
|
Result:=mrOk;
|
||||||
aProject:=LazarusIDE.ActiveProject;
|
aProject:=LazarusIDE.ActiveProject;
|
||||||
if aProject=nil then exit;
|
if aProject=nil then exit;
|
||||||
|
StoreMacros;
|
||||||
if aProject.IsVirtual then
|
if aProject.IsVirtual then
|
||||||
begin
|
begin
|
||||||
if not SaveHTMLFileToTestDir(aProject) then
|
if not SaveHTMLFileToTestDir(aProject) then
|
||||||
@ -520,8 +524,7 @@ end;
|
|||||||
|
|
||||||
procedure TPJSController.Hook;
|
procedure TPJSController.Hook;
|
||||||
begin
|
begin
|
||||||
IDEMacros.Add(TTransferMacro.Create('Pas2JS', '', pjsdPas2JSExecutable, @
|
FMacroPas2js:=IDEMacros.Add('Pas2JS', '', pjsdPas2JSExecutable, @GetPas2JSPath, [tmfLazbuild]);
|
||||||
GetPas2JSPath, []));
|
|
||||||
IDEMacros.Add(TTransferMacro.Create('Pas2JSBrowser', '',
|
IDEMacros.Add(TTransferMacro.Create('Pas2JSBrowser', '',
|
||||||
pjsdPas2JSSelectedBrowserExecutable, @GetPas2JSBrowser, []));
|
pjsdPas2JSSelectedBrowserExecutable, @GetPas2JSBrowser, []));
|
||||||
IDEMacros.Add(TTransferMacro.Create('Pas2JSNodeJS', '',
|
IDEMacros.Add(TTransferMacro.Create('Pas2JSNodeJS', '',
|
||||||
@ -538,7 +541,13 @@ end;
|
|||||||
|
|
||||||
procedure TPJSController.UnHook;
|
procedure TPJSController.UnHook;
|
||||||
begin
|
begin
|
||||||
// Nothing for the moment
|
FMacroPas2js:=nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TPJSController.StoreMacros;
|
||||||
|
begin
|
||||||
|
if PJSOptions=nil then exit;
|
||||||
|
FMacroPas2js.LazbuildValue:=PJSOptions.GetParsedCompilerFilename;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
finalization
|
finalization
|
||||||
|
|||||||
@ -18,7 +18,7 @@ uses
|
|||||||
// IdeIntf
|
// IdeIntf
|
||||||
IDEOptionsIntf, IDEOptEditorIntf, IDEUtils, IDEDialogs,
|
IDEOptionsIntf, IDEOptEditorIntf, IDEUtils, IDEDialogs,
|
||||||
// Pas2Js
|
// Pas2Js
|
||||||
PJSDsgnOptions, strpas2jsdesign, SimpleWebSrvOptionsFrame;
|
PJSDsgnOptions, strpas2jsdesign, PJSController, SimpleWebSrvOptionsFrame;
|
||||||
|
|
||||||
Type
|
Type
|
||||||
{ TPas2jsOptionsFrame }
|
{ TPas2jsOptionsFrame }
|
||||||
@ -238,6 +238,7 @@ begin
|
|||||||
PJSOptions.ElectronFileName:=ElectronExeComboBox.Text;
|
PJSOptions.ElectronFileName:=ElectronExeComboBox.Text;
|
||||||
PJSOptions.AtomTemplateDir:=AtomTemplateDirComboBox.Text;
|
PJSOptions.AtomTemplateDir:=AtomTemplateDirComboBox.Text;
|
||||||
PJSOptions.VSCodeTemplateDir:=VSCodeTemplateDirComboBox.Text;
|
PJSOptions.VSCodeTemplateDir:=VSCodeTemplateDirComboBox.Text;
|
||||||
|
TPJSController.Instance.StoreMacros;
|
||||||
If PJSOptions.Modified then
|
If PJSOptions.Modified then
|
||||||
PJSOptions.Save;
|
PJSOptions.Save;
|
||||||
end;
|
end;
|
||||||
|
|||||||
@ -346,7 +346,7 @@ begin
|
|||||||
if Assigned(Pas2JSHandler) then; // Silence compiler warning
|
if Assigned(Pas2JSHandler) then; // Silence compiler warning
|
||||||
PJSOptions:=TPas2jsOptions.Create;
|
PJSOptions:=TPas2jsOptions.Create;
|
||||||
PJSOptions.Load;
|
PJSOptions.Load;
|
||||||
TPJSController.Instance.Hook;
|
TPJSController.Instance.Hook; // this registers macros and events
|
||||||
|
|
||||||
// register new-project items
|
// register new-project items
|
||||||
RegisterProjectDescriptor(TProjectPas2JSWebApp.Create);
|
RegisterProjectDescriptor(TProjectPas2JSWebApp.Create);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user