Been using this for a while now and find it to be an extremely quick & efficient workflow for:
- switching context between projects, resuming the previous state of each project
- navigating the file system with immediate access to deeply nested, complex hierarchies
- acessing organized clusters of click or drag/drop based scripts & utilities
CatalogSets:
Here's the source video of those GIFs:
https://i.imgur.com/KzEfRfv.mp4
Hotkeys
- Switch TabSet
Shift
+Alt
+[1 - 0]
- Switch CatalogSet (unique, per TabSet)
Alt
+1
- Switch CatalogSet (shared between TabSets)
Alt
+[2 - 0]
Implementation
- Sets are loaded via folders prefixed with
[<number>]
- When a CatalogSet is loaded:
- a single
[__Main__]
-prefixed catalog is loaded - all
[Include]
-prefixed catalog fragments are included into the main catalog
- a single
- Symlinks & Environment Variables are used to facilitate Set reuse between:
- multiple workspaces
- multiple devices
Considered Improvements
- Create a CommandPalette-like interface that allows unlimited named Workspaces to be saved/loaded/searched. Potentially with a tagging system as well.
Discussion
Has anyone else worked on something like this?
I'd love to release this at some point, but at the moment it's very coupled to a utility-module framework I've been building up which is very alpha-stage & in constant flux. It'll likely take a bit of work to decouple things, make the API a bit more stable, and check for some other dependencies that it might have set up @ AutoHotkey & Task Scheduler.
My primary dev environment right now is Node; so I'm used to being able to work with reusable packages via versioned dependencies, which is kind of what I tried to emulate with my current project structure. Are there any solutions/file-structures/design-patterns/conventions/etc that other members have used to address these types of things for complex script releases?
Here's a screenshot that shows some of the related code & project structure: