Skip to content
This repository has been archived by the owner on Feb 20, 2022. It is now read-only.
/ customcode Public archive

A tool to help run a custom VS Code version for each project.

License

Notifications You must be signed in to change notification settings

giggio/customcode

Repository files navigation

Custom Code

Build status Build status npm

A tool to help run a custom VS Code for each project. This allows you to have different user settings and different extensions for each instance.

So, for example, if you are working on an Angular project you use only Angular extensions, and if you later work on a React project, you use React extensions.

Multiplatform. Tested on Windows and Linux. Node.js based.

This allows you to have different extensions and preferences for each version.

This is only tested on Node.js 8 and 10. We cannot guarantee it on other Node.js versions.

Installing

npm install -g customcode

Or grab the source and

npm install -g

Using

Simply run ccode on any directory and it will search for the custom VS Code and launch it:

ccode .

You should use ccode as you always used code. If a custom code is found than it will be launched, otherwise your system code will launch.

To create a custom code (preview) run:

create-custom-code <destination-directory>

This will create a .code directory on the specified directory.

How this tool works

We search for code/ccode (or code\ccode.cmd for Windows) from the current working directory (cwd) all the way up to the root directory (/ or usually c:\ on Windows). This is your custom VS Code, with your custom options and extensions.

If a custom VS Code is not found we will search your PATH environment variable for code (or code.cmd on Windows) and use that.

We will then launch VS Code forwarding any command line options you passed originally.

For example, supose your cwd is /home/user/projects/foo/bar/ and you type on your terminal:

~/projects/foo/bar $ ccode .

We will search for:

/home/user/projects/foo/bar/.code/ccode
/home/user/projects/foo/.code/ccode
/home/user/projects/.code/ccode
/home/user/.code/ccode
/home/.code/ccode
/.code/ccode

Let's say /home/user/projects/foo/.code/ccode is found, we will then launch:

/home/user/projects/foo/.code/ccode .

Using /home/user/projects/foo/bar/ as the current working directory.

Creating a custom VS Code instalation

A custom VS Code simply sets the user data dir and the extensions dir to a different location. This is what this tool does. It creates the code (code.cmd for Windows) and its subdirectories.

To use it simply type create-custom-code <directory> to create a custom code in that directory. The destination directory (<directory> above) will receive a new code directory and a ccode (or ccode.cmd) with the correct configuration. Extensions will be installed on .code/extensionsdir and settings and other configurations will go on .code/userdatadir.

This custom code installation will work seamlessly with the ccode tool.

Troubleshooting

If your custom VS Code is not running then check your ccode (or ccode.cmd) script. We are not responsible for it.

If you find any problems, open an issue on Github with the steps to reproduce your problem.

Contributing

Questions, comments, bug reports, and pull requests are all welcome. Submit them at the project on GitHub.

Bug reports that include steps-to-reproduce (including code) are the best. Even better, make them in the form of pull requests.

Author

Giovanni Bassi

License

Licensed under the Apache License, Version 2.0.

License

This software is open source, licensed under the Apache License, Version 2.0. See LICENSE.txt for details. Check out the terms of the license before you contribute, fork, copy or do anything with the code. If you decide to contribute you agree to grant copyright of all your contribution to this project, and agree to mention clearly if do not agree to these terms. Your work will be licensed with the project at Apache V2, along the rest of the code.

About

A tool to help run a custom VS Code version for each project.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published