Group Abstract Group Abstract

Message Boards Message Boards

EasyIDE: An IDE for Mathematica

Posted 6 years ago
POSTED BY: b3m2a1 ​ 
15 Replies
Posted 3 years ago

I tried installing EasyIDE using PublicPacletInstall from the web site but got an error message. Then I downloaded the paclet to my computer and installed it using PacletInstall with the File option. The installation completed without errors, but then running Format ? Stylesheet ? EasyIDE ? LightMode did not give me the EasyIDE interface as expected. I shut down the front end and attempted to restart, but the front end only flashed and then closed. Removing the EasyIDE paclet from the paclet folders did not fix the problem. I resorted to reinstalling Mathematica. I am pretty much a novice at Mathematica running Mathematica 12.3. I would appreciate any insights.

POSTED BY: Jason Olasky
POSTED BY: Martijn Froeling
Posted 6 years ago

Currently there's nothing like a debugger, but I think its best feature is that it provides a flexible plugin/toolbar system and access to a lot of package development work I've done that allows you to hook other code and packages into it.

As an example of what this does for us I have a set of plugins I've already built in: enter image description here

These are all written in pure Mathematica code so you can easily add new plugins and toolbars and whatnot to the IDE just by knowing how to use Mathematica well. I expose these three packages too in it which opens up a lot of possibilities.

I can imagine, too, that the work on a Mathematica profiler and "CodeTools" as I think WRI is calling it could be integrated directly without too much issue! Once that package is out, this could even be something that I work on integrating at a deeper level too.

The biggest benefit of this is the fact that it allows you to develop stuff in Mathematica and feed it directly back in to the IDE.

Also you can use stylesheets, front-end programming, etc. directly in your dev environment. I recently used this to add a few new themes (and anyone can write their own without too much work):

enter image description here

POSTED BY: b3m2a1 ​ 
Posted 6 years ago

Impressive and its sad that a user had to make this. I was also doing more work in Python recently and now its hard to come back to Mathematica. So I hope that Wolfram Research is contributing to this and focus more on developer and deployment outside of their ecosystem. It would definitely make sense form a business perspective.

POSTED BY: Thomas Gölles

the installation instructions for EasyIDE show one using first:

<< https://paclets.github.io/PacletServer/Install.wl

How may one permanently install that Install.wl?

Is that package part of PublicPacletServer? If so, how install the latter? At https://github.com/paclets/PacletServer/wiki/Installation, you show:

PacletInstall["PublicPacletServer", 
 "Site" -> "http://paclets.github.com/paclets/PacletServer/master"]

However, even after evaluating Needs["PacletManager`"], evaluating that PacletInstall expression, I get a $Failed with error messages:

PacletSiteUpdate::err: An error occurred attempting to update paclet information from site http://paclets.github.com/paclets/PacletServer.master. Does not appear to be a valid paclet site."

PacletInstall::notavail No paclet named PublicPacletServer is available for download from any currently paclet sites.
POSTED BY: Murray Eisenberg
Posted 6 years ago

Good catch! I need to update those instructions.

This is indeed part of the public paclet server package. That's also on the paclet server so you can do:

<< https://paclets.github.io/PacletServer/Install.wl
PublicPacletInstall["PublicPacletServer"]

Then you can do:

<< PublicPacletServer`
PublicPacletServer["Install", "MaTeX"]

Paclet[MaTeX,1.7.5,<>]

Alternately, you can download https://paclets.github.io/PacletServer/Install.wl and put it in a folder called "PublicPacletServer" in $UserBaseDirectory/Applications. Then you can load it like:

<< PublicPacletServer`Install`
POSTED BY: Updating Name

I find it cleaner to:

  • Create a folder named PublicPacletInstall in $UserBaseDirectory/Applications;
  • Rename that downloaded Install.wl to PublicPacletInstall.wl and put it in that folder;
  • Create Kernel subfolder of that folder and in it put an init.wl consisting solely of:

    Get["PublicPacletInstall`PublicPacletInstall`"]
    

The advantage of this bit of extra effort way is that subsequently all I need do is:

<< PublicPacletInstall`
POSTED BY: Murray Eisenberg

Does EasyIDE support a "Properties" query on a notebook, e.g. to reveal the notebook's path and various timestamps? The FrontEnd lacks such an out-of-band mechanism.

I tried to use EasyIDE, but tripped. I think there was a glitch during the install. And later, when I tried to create a new File, a message popped up: "SystemDialogInput: Directory specification Inherited is not a String or a FrontEnd`FileName".

POSTED BY: Vincent Virgilio
Posted 6 years ago

Yeah that message definitely sounds like a trip in getting set up. Means it didn't manage to get bound to a directory.

There is certainly an object-oriented API that you can use to find paths, create attached dialogs, notification messages, etc. but I don't have anything to get timestamps right now.

POSTED BY: b3m2a1 ​ 
POSTED BY: Murray Eisenberg
Posted 6 years ago

Thanks for the report! Unfortunately by design of the Mathematica front end both of these will be hard to sort out but I'll think.

As for 1) both of those are due to the fact that the front end is very much so not good for controlling layouts. I need to allocate space for a reasonable number of tabs as well as for the plugin menus. But what I can do is solve the magnification issue by forcing the magnification of just those buttons to remain constant. In fact I should probably have all my GUI elements work like that...

As far as the resizings go, there is unfortunately no good way I know of to allocate "just the right amount" of space for the plugins and leave the remaining stuff for the tabs. If I find such a thing I will definitely make it work like that. I could also push the tabs onto their own row, but I need to think through the design implications of that first.

For 2) that's a by-product of the front end failing to set the CellStyle for an "attached cell" appropriately. It's something that I've tried to work around before, but haven't found a good way. There are a number of these front end INTERNAL SELF-TEST ERRORs that very standard front-end design will hit but they've never caused a crash for me. If you find a correlation between them and performance degradations (including crashes) please let me know and I'll see if I can work arount them.

POSTED BY: b3m2a1 ​ 

Unfortunately, on my 27" iMac Retina display, with these old eyes of mine, I cannot comfortably use Mathematica at all when notebooks are at default 100% magnification. Yet when I change to 125% magnification, EasyIDE's Project and Plugins buttons just disappear from the left side of the notebook's top pane, and I cannot recover them without reverting to the untentable 100% magnification.

POSTED BY: Murray Eisenberg
Posted 6 years ago

Can you read the tabs / menu elements at 100% or would those need to be larger too? I can try to work around some front-end idiosyncrasies/glitches to get it the menu items to work at larger magnification. On the other hand, I can easily make it so that the menu items remain at 100% while the rest of the notebook content magnifies.

POSTED BY: b3m2a1 ​ 

Yes, the tabs, buttons, and menu elements are perfectly readable at 100% magnification. (I keep all my palettes at 100% too.)

It's only when I'm writing (and then reading) code in a notebook that I need a greater-than-default magnification.

POSTED BY: Murray Eisenberg

enter image description here - Congratulations! This post is now a Staff Pick as distinguished by a badge on your profile! Thank you, keep it coming, and consider contributing your work to the The Notebook Archive!

POSTED BY: EDITORIAL BOARD
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard