Skip to main content
added 3 characters in body
Source Link
b3m2a1
  • 47.1k
  • 9
  • 32

IDE Stylesheet and Package

Background

The Mathematica FE could provide a nice lightweight FE for editing small/medium size projects.

Idea

By creating a "ProjectManager`" package with all the necessary project-management functions and a nice stylesheet for hooking into this we could create a little IDE inside Mathematica by providing a tree-view to the .wl and .m files inside a folder. This little IDE could support plugins and extensions so that people can easily build off of it

Implementation Thoughts

The "ProjectManager" package could hook into the project-management functions I already package up into my BTools package. All it would really need would be a Stylesheet that provides access to these functions via a DockedCell and a nice ProjectObject that exposes project details so that people can write extensions easily off of these projects.

The .m and .wl files can be loaded via NotebookOpen[..., Visible->False] and dumped into a main notebook pane. Tabbing can be done by simply keeping track of the current files open and putting these as little tab names under the main DockedCell pane. Saving can just dispatch to either NotebookSave for the regular .nb files or to a ExportPacket[..., "Package"]"SaveRename"] for .m and .wl files.

Custom stylesheets might be a bit harder to support... but for simple IDE work we can just ignore that or save the other Notebook options when loading a tab and just export the notebook content. Or we can figure out a way to make this basically a DockedCell-only package where we don't even need a custom Stylesheet

IDE Stylesheet and Package

Background

The Mathematica FE could provide a nice lightweight FE for editing small/medium size projects.

Idea

By creating a "ProjectManager`" package with all the necessary project-management functions and a nice stylesheet for hooking into this we could create a little IDE inside Mathematica by providing a tree-view to the .wl and .m files inside a folder. This little IDE could support plugins and extensions so that people can easily build off of it

Implementation Thoughts

The "ProjectManager" package could hook into the project-management functions I already package up into my BTools package. All it would really need would be a Stylesheet that provides access to these functions via a DockedCell and a nice ProjectObject that exposes project details so that people can write extensions easily off of these projects.

The .m and .wl files can be loaded via NotebookOpen[..., Visible->False] and dumped into a main notebook pane. Tabbing can be done by simply keeping track of the current files open and putting these as little tab names under the main DockedCell pane. Saving can just dispatch to either NotebookSave for the regular .nb files or to a ExportPacket[..., "Package"] for .m and .wl files.

Custom stylesheets might be a bit harder to support... but for simple IDE work we can just ignore that or save the other Notebook options when loading a tab and just export the notebook content. Or we can figure out a way to make this basically a DockedCell-only package where we don't even need a custom Stylesheet

IDE Stylesheet and Package

Background

The Mathematica FE could provide a nice lightweight FE for editing small/medium size projects.

Idea

By creating a "ProjectManager`" package with all the necessary project-management functions and a nice stylesheet for hooking into this we could create a little IDE inside Mathematica by providing a tree-view to the .wl and .m files inside a folder. This little IDE could support plugins and extensions so that people can easily build off of it

Implementation Thoughts

The "ProjectManager" package could hook into the project-management functions I already package up into my BTools package. All it would really need would be a Stylesheet that provides access to these functions via a DockedCell and a nice ProjectObject that exposes project details so that people can write extensions easily off of these projects.

The .m and .wl files can be loaded via NotebookOpen[..., Visible->False] and dumped into a main notebook pane. Tabbing can be done by simply keeping track of the current files open and putting these as little tab names under the main DockedCell pane. Saving can just dispatch to either NotebookSave for the regular .nb files or to a ExportPacket[..., "SaveRename"] for .m and .wl files.

Custom stylesheets might be a bit harder to support... but for simple IDE work we can just ignore that or save the other Notebook options when loading a tab and just export the notebook content. Or we can figure out a way to make this basically a DockedCell-only package where we don't even need a custom Stylesheet

Source Link
b3m2a1
  • 47.1k
  • 9
  • 32

IDE Stylesheet and Package

Background

The Mathematica FE could provide a nice lightweight FE for editing small/medium size projects.

Idea

By creating a "ProjectManager`" package with all the necessary project-management functions and a nice stylesheet for hooking into this we could create a little IDE inside Mathematica by providing a tree-view to the .wl and .m files inside a folder. This little IDE could support plugins and extensions so that people can easily build off of it

Implementation Thoughts

The "ProjectManager" package could hook into the project-management functions I already package up into my BTools package. All it would really need would be a Stylesheet that provides access to these functions via a DockedCell and a nice ProjectObject that exposes project details so that people can write extensions easily off of these projects.

The .m and .wl files can be loaded via NotebookOpen[..., Visible->False] and dumped into a main notebook pane. Tabbing can be done by simply keeping track of the current files open and putting these as little tab names under the main DockedCell pane. Saving can just dispatch to either NotebookSave for the regular .nb files or to a ExportPacket[..., "Package"] for .m and .wl files.

Custom stylesheets might be a bit harder to support... but for simple IDE work we can just ignore that or save the other Notebook options when loading a tab and just export the notebook content. Or we can figure out a way to make this basically a DockedCell-only package where we don't even need a custom Stylesheet