pulsar icon indicating copy to clipboard operation
pulsar copied to clipboard

Workspace feature

Open GuilleW opened this issue 3 years ago • 1 comments

Have you checked for existing feature requests?

  • [X] Completed

Summary

About the workspace feature discuss on Discord, here how I imagine this feature: We can create few defaults workspace like Light editor and IDE mode (or whatever). User can create/edit/delete workspaces to fit his project needs.

Enter your response below:

For example:

  • I just need a light editor, so I go to Workspace -> Light editor and it disable all packages (for example).
  • I want to work on NodeJS project, and I know I need, JS syntax, a terminal to run commands, git etc... I go to Workspace -> NodeJS project and it load all packages needed to work on NodeJS project (let's set some packages by default and let user custom them in workspace settings)

In menu (like package or whatever)

  • Workspace
    • Light editor
    • NodeJS
    • C++ supacool workspace
    • WhateverUserCreate
    • ...
    • [Manage Workspaces]

In a Workspaces tab:

< Workspaces Select input > Add Edit Remove
Light editor
NodeJS
C++ supacool workspace
...

User can enable/disable package:

| Packages          | Enable |
|-------------------|--------|
| Terminal          |        |
| AnotherPackage    |    x   |
| AnotherPackagetoo |        |

Any alternatives?

no alt actually

Other examples:

No response

GuilleW avatar Nov 10 '22 21:11 GuilleW

My idea would be to make it similar to node projects. A workspace is located somewhere with all data stored in a .pulsar directory. it is available from that and any sub directory. They can inhert each other and there is a default one (the current one). If you have multiple windows open they can habe packages installed/enabled independently. Discussed needs to be if windows can change the workspace (without reloading), if multiple workspaces can be in one window and how exactly is the used workspace determined/set.

sertonix avatar Nov 10 '22 21:11 sertonix

My only issue with this is: how far do we go? Do we have different keybindings? Or do we only enable/disable packages? Do we have different configs for packages depending on the workspace?

Also, it's worth noting that unless we restart the editor, this feature will not consume less memory because as soon as a package loads, it can't be un-loaded - the require already ran, and Node AFAIK does not have support to remove code that was already required (few languages actually have this, to be honest).

Finally, not all packages play nice on unload, so this feature may cause some weirdness like commands that supposedly should go away keep appearing on the editor...

mauricioszabo avatar Jan 03 '23 15:01 mauricioszabo