A small command-line tool to easily list all your different VS Code Workspaces.
ws searches for all .code-workspace files in a user-specified root directory.
By default, ws searches only 1 level deep to prevent traversing folders like node-modules, vendor, etc.
npm i -g @woudsma/workspaces-cli- Node.js version >= 8
- Make sure you have installed the
codecommand in your$PATH- How to
Create a workspace by opening a project in VS Code, optionally add more projects to your current workspace.
Save the workspace with:
File -> Save Workspace As...
I've made a _workspaces folder in my personal projects folder, where I keep workspaces that include multiple projects. Other workspaces are usually stored in their own project folder. ws searches 1 level deep.
More info on Multi-root workspaces.
Example:
$ ws
Workspaces root directory: /Users/woudsma/Projects
? Select workspace …
❯ _workspaces/hasura-test
_workspaces/kirby-react-test
_workspaces/mount-spaces
workspaces-cli/workspaces-cli
The workspace for this project is saved at /Users/woudsma/Projects/workspaces-cli/workspaces-cli.code-workspace for example.
$ ws [-h|--help]
ws is an alias of workspaces.
ws reads your workspaces root directory from ~/.workspacesrc.
If no configuration can be found, ws will try to create a ~/.workspacesrc file with the workspaces root directory that you've provided.
$ ws
No configuration found in /Users/woudsma/.workspacesrc
Creating /Users/woudsma/.workspacesrc
? Enter workspaces root directory, e.g. ~/Projects › ~/
Multiple root directories can be specified by adding them to WORKSPACES_ROOT_DIR in ~/.workspacesrc, seperated by comma.
Example:
# in ~/.workspacesrc
WORKSPACES_ROOT_DIR=/Users/woudsma/Projects,/Users/woudsma/Company/clientsTurn off the subshell when selecting a workspace.
# USE_SUBSHELL=true (default)
echo USE_SUBSHELL=false >> ~/.workspacesrcThe default search depth can be changed by adding READDIR_DEPTH=<depth> to ~/.workspacesrc.
# READDIR_DEPTH=1 (default)
echo READDIR_DEPTH=2 >> ~/.workspacesrcPull requests are welcome!
MIT.
