EA- Add model template to package wizard - wizard

I would like to create a generic structure of packages, that will be applied at the new-package wizard, as an offered template.
How can I add the new xmi file to the wizard? I use EA 12.

Shamelessly stealing Phil's answer from Sparx' forum (since he is not registered with SO):
Simply put you cannot use to Wizard to add a model structure to your MDG
Instead you have to edit the MTS file
Check out the PDF user guide for EA v 11 beginning at page 1577
And to complete with KP's reply:
Very briefly, what you need to do is add your XMI file to the "ModelPatterns" folder in EA's install path, and then add a "ModelTemplates" block to your MDG Technology XML file to tell EA where to find the XMI (or better, add the "ModelTemplates" block to your MTS file so it gets added to your technology when you build it). Open up some of the MDG Technologies in a text editor to see how we've done it.

Related

How to configure JupyterLab to look the same when opened?

I'm developing a small application using JupyterLab that I will distribute around the world. I would like to configure JupyterLab so that when my users download my code, move into the directory, and execute jupyter-lab, they will always start with the same view.
For example, I want JupyterLab to open up with the README.md file shown rendered as markdown. I don't want Python or Jupyter Notebook files opened (initially).
Is there a way to configure JupyterLab in this way?*
You can use jupyterlab-workspace.json file to specify layout. Here are some examples:
Dask: jupyterlab-workspace.json binder
Pangeo: jupyterlab-workspace.json binder
Ian's demo (possibly outdated)
They work by executing the following command before starting up JupyterLab:
jupyter lab workspaces import jupyterlab-workspace.json
Do NOT try to create the JSON file manually (do not use them as a reference). Instead create a new workspace, arrange tabs/files as you wish and then use:
jupyter lab workspaces export workspace_name > jupyterlab-workspace.json
See the workspaces documentation for more details. There is also a relevant topic on discourse.
For your particular use case I would just create a file with a script that your users would use instead of executing jupyter-lab, e.g. a simple two-liner like:
jupyter-lab workspaces import jupyterlab-workspace.json
jupyter-lab
But if you just want one single file to be shown you may as well just create a wrapper that asks for that file to be opened like:
jupyter-lab README.md
Please note that there was a bug that meant that above did not work some time ago (it is working well if you have the latest versions of jupyterlab-server, jupyter-server, jupyterlab; while updating remember to update nbclassic - if installed - as well).

PhpStorm: multiple projects with common core

Due to security reasons, I have to split one project to divisions (client, admin, ...), and deploy them to different web servers. These divisions have one common script base, but each division has its own functions. As an IDE I use PhpStorm.
The question: what is the best way to organize project's structure and settings, so the common core part will be visible for IDE indexing in all project's divisions, but at the same time, being maintained from a single project (perhaps, standalone)?
In Java you can do lib jar files for further linking in various projects.
But how it can be done in PHP?
There are multiple ways of how to reference extra PHP code in a project.
If you plan to actively edit such extra code in the same project (and want to see their TODOs, code inspection warnings, include references in code refactoring etc):
You can just add it as an additional Content Root: Settings/Preferences | Directories. Folder added this way will be treated as a part of the project itself and will be shown as a separate node in the Project View panel (just as the main code, which is a Content Root as well).
Or you can open 2nd project while 1st one is already opened and when asked, just chose "Attach":
It's not going to be full 2 projects in one frame, more like something in between attaching Content Root and having 2 projects opened in separate frames.
https://www.jetbrains.com/help/phpstorm/opening-multiple-projects.html
Simple symlink will also do the job (but you need to place it somewhere in a project, e.g. PROJECT_ROOT/libs/my_symlinked_code). You then will need to provide a path mapping for that folder for debugger (if you will debug it of course) as PHP/Xdebug works with "final/resolved path" while IDE works with the path as is.
If you do not need to actively edit that extra code in the same window (and ignore any TODOs, code inspection warnings and other inspection results etc):
Do it as a composer package then? Composer can use custom sources (e.g. GitHub repo or a folder on a local filesystem).
Just add the path to that folder as a "Include Path" at Settings/Preferences | Languages & Frameworks | PHP --> Include Path tab. Code referenced this way is meant for 3rd party libraries (the code that you just use but not edit, e.g. framework code, your send mail/ORM library etc). Composer packages will also be included here by default.
https://www.jetbrains.com/help/phpstorm/php.html#include-path-tab

PhpStorm insert current namespace

I want the PhpStorm to insert current namespace by default or with a hotkey or with live templates.
Whet I create new Php class ("New | PHP Class" dialog) there is a field for a namespace. Is there a way for it to be filled automatically? It does not look a big deal because in my case a namespace is just directory path (I use composer) starting from src. My search efforts did not give my anything about this at all. Looks like PhpStrom does not have this feauture. But maybe there is some plugin or a hack?
New | PHP Class dialog should fill the namespace automatically based on the directory where file will be created. If it does not then you have not configured your project properly.
Settings/Preferences | Directories -- ensure that your src folder is marked as Source Root. That's depends on project, of course: for Laravel project you need to map app folder to App\ namespace (typical case).
PhpStorm can also detect source roots from your composer.json settings and can even keep it in sync since 2017.2 version (see https://blog.jetbrains.com/phpstorm/2017/07/configuring-with-composer-in-phpstorm-2017-2/).
Some links to read (official help pages):
https://www.jetbrains.com/help/phpstorm/configuring-php-namespaces-in-a-project.html
https://www.jetbrains.com/help/phpstorm/configuring-content-roots.html
https://www.jetbrains.com/help/phpstorm/directories.html

Pass file name to build script in PhpStorm

I have the next configuration for a build system in PhpStorm:
And it works ok, but I have a problem... my build script needs to receive the name of the file I'm running it on, so, if I build a PHP file, it will run phpcs on it, but if I'm building a CSS or JS file, it will run gulp... with Sublime Text that is possible, is it possible with PhpStorm?
There are no macros support for Run/Debug Configurations -- they are made so they do not depend on a context (currently opened file in editor). In other words -- they are pretty static and all file names/paths are basically hard coded.
For what you are describing (build script).. you need to use External Tools functionality (which can have all of that and made specifically for such tasks). Once created, you can assign custom shortcut to any External Tools entry (check Settings/Preferences | Keymap for that) so it's more convenient to use it.
If you want such script to be called on every file save automatically -- then use File Watchers -- pretty much external tools that will be called for you automatically (once per each file modified).
Since you are doing this for a build script -- maybe you should try to use dedicated (and therefore more appropriate in general) tools? For example: Gulp / Grunt .. or even Phing.
Create external tool:
https://www.jetbrains.com/phpstorm/help/external-tools.html
You can assign hotkey to execute your build command.

Index and favourites tab is missing in .chm file

I have one .chm file in which Contents and Search tab are there. But Favourites and Index tabs are missing. IF I Want to add them in .chm file how can I do that?
I assume you don‘t have the original project with the project file (*.hhp) and the HTML files. If you have only the CHM file, there is no easy way to do this.
The missing index and favourites tab was originally not added by the help author. So you have to decompile the CHM file and compile again and you have to create the index yourself!
If you really want to start with Reverse Engineering decompling is described at:
http://www.help-info.de/en/Help_Info_HTMLHelp/hh_command.htm
For some first steps you don't actually need any tool to do this. Just open a command prompt window and type the following:
hh.exe -decompile <target_directory> <path>\<filename>.chm
The only decompiler with any additional features is KeyTools as this can try to rebuild the project (.hhp) file. You will need this file if you want to recompile the help project (see link above).
One thing to note is that the decompile/recompile process isn't a "round-trip" process; certain features that the help author added to the original help file can't be recovered when you decompile it, so these may no longer work properly after you've recompiled.
This is especially true in the area of context-sensitive help, which may be broken in the new version of the file.
For further information in help authoring and building CHM files see also:
https://www.youtube.com/watch?v=BxVm_Edaus8