lazarus/components/pas2js/atomdefaults.inc
michael 2134a62af3 * Implement VS Code template dialog setting
git-svn-id: trunk@64286 -
2020-12-27 16:30:40 +00:00

179 lines
4.9 KiB
PHP

procedure getDefaultMenuFile(S : TStrings);
begin
With S do
begin
Add('{');
Add(' "context-menu": {');
Add(' "atom-text-editor": [');
Add(' {');
Add(' "label": "Toggle %PACKAGENAME%",');
Add(' "command": "%PACKAGENAME%:toggle"');
Add(' }');
Add(' ]');
Add(' },');
Add(' "menu": [');
Add(' {');
Add(' "label": "Packages",');
Add(' "submenu": [');
Add(' {');
Add(' "label": "%PACKAGENAME%",');
Add(' "submenu": [');
Add(' {');
Add(' "label": "Toggle",');
Add(' "command": "%PACKAGENAME%:toggle"');
Add(' }');
Add(' ]');
Add(' }');
Add(' ]');
Add(' }');
Add(' ]');
Add('}');
end;
end;
procedure getDefaultCSSFile(S : TStrings);
begin
With S do
begin
Add('// The ui-variables file is provided by base themes provided by Atom.');
Add('//');
Add('// See https://github.com/atom/atom-dark-ui/blob/master/styles/ui-variables.less');
Add('// for a full listing of what''s available.');
Add('@import "ui-variables";');
Add('');
Add('.%PACKAGENAME% {');
Add('}');
end;
end;
Procedure GetDefaultGlueFile(S : TStrings);
begin
With S do
begin
Add('''use babel'';');
Add('');
Add('import { CompositeDisposable } from ''atom'';');
Add('import { pas, rtl } from ''./%PACKAGEPROJECTNAME%.js'';');
Add('');
Add('export default {');
Add(' activate(state) {');
Add(' rtl.run();');
Add(' this.subscriptions = new CompositeDisposable();');
Add(' this.atomEnv = {');
Add(' atomGlobal : atom,');
Add(' subscriptions : this.subscriptions,');
Add(' initialState : state');
Add(' }');
Add(' this.atomHandler = {');
Add(' onDeactivate : function (a) {},');
Add(' onSerialize : function (a,o) {}');
Add(' }');
Add(' pas.program.InitAtom(this.atomEnv,this.atomHandler);');
Add(' },');
Add('');
Add(' deactivate() {');
Add(' if (this.atomHandler.onDeactivate) {');
Add(' this.atomHandler.onDeactivate(this.atomEnv)');
Add(' }');
Add(' this.subscriptions.dispose();');
Add(' },');
Add('');
Add(' serialize() {');
Add(' var obj = {};');
Add(' if (this.atomHandler.onSerialize) {');
Add(' this.atomHandler.onSerialize(this.atomEnv,obj)');
Add(' }');
Add(' return obj;');
Add(' }');
Add('};');
end;
end;
Procedure GetDefaultProjectFile(S : TStrings);
begin
With S do
begin
Add('program %PACKAGEPROJECTNAME%;');
Add('');
Add('{$mode objfpc}');
Add('');
Add('uses');
Add(' JS, Classes, SysUtils, libAtom, atomapp, Web;');
Add('');
Add('');
Add('Type');
Add(' { %CLASSNAME% }');
Add('');
Add(' %CLASSNAME% = Class(TAtomApplication)');
Add(' Private');
Add(' Protected');
Add(' procedure DoActivate(aState : TJSObject); override;');
Add(' procedure DoDeactivate; override;');
Add(' procedure DoSerialize(aState : TJSObject); override;');
Add(' Public');
Add(' // %PACKAGEHANDLERINTFS%');
Add(' end;');
Add('');
Add('');
Add('// Do not change the name of this procedure, the Javascript glue code depends on it.');
Add('// If you do want to change it, change the glue code as well.');
Add('Procedure InitAtom(aAtom : TAtomEnvironment; aCallBacks : TAtomPackageCallBacks);');
Add('');
Add('begin');
Add(' If Application=Nil then');
Add(' Application:=%CLASSNAME%.Create(Nil);');
Add(' Application.SaveAtomEnvironment(aAtom,aCallBacks);');
Add('end;');
Add('');
Add('{ %CLASSNAME% }');
Add('');
Add('procedure %CLASSNAME%.DoActivate(aState: TJSObject);');
Add('');
Add('Var');
Add(' cmds : TJSObject;');
Add('begin');
Add(' inherited DoActivate(aState);');
Add(' // %PACKAGEHANDLERREGS%');
Add('end;');
Add('');
Add('procedure %CLASSNAME%.DoDeactivate();');
Add('begin');
Add('// Deactivation code here');
Add('end;');
Add('');
Add('procedure %CLASSNAME%.DoSerialize(aState: TJSObject);');
Add('begin');
Add(' inherited DoSerialize(aState);');
Add('end;');
Add('');
Add('// %PACKAGEHANDLERIMPLS%');
Add('// This code is needed to prevent the pas2js compiler from removing the InitAtom call.');
Add('var');
Add(' dummy : JSValue;');
Add('');
Add('begin');
Add(' Application:=%CLASSNAME%.Create(Nil);');
Add(' dummy:=@InitAtom;');
Add('end.');
end;
end;
Procedure getdefaultKeyMapFile(Src : TStrings);
begin
With Src do
begin
Add('{');
Add(' "atom-workspace": {');
Add(' "ctrl-alt-o": "%PACKAGENAME%:toggle"');
Add(' }');
Add('}');
end;
end;