July 15, 2020

Plastic SCM VS Code extension - Out now!

Visual Studio Code is a nice little editor by Microsoft that is incredibly popular at the moment. StackOverflow 2019 survey ranked it as the most used code editor: more than half the respondents claimed to use it! Besides, it has a really active community and boasts a powerful set of extensibility options.

We use it here at Códice Software, too. Our websites, the Plastic SCM Server WebUI, some client plugins... All those are often modified and extended using Visual Studio Code.

So, one day we asked ourselves, 'Wouldn't it be nice to have Plastic SCM information embedded in this wonderful editor?' That was the event that triggered the birth of the Plastic SCM extension for VS Code.

Extension overview

Features

The extension is still in a very early stage. It only provides a very basic functionality.

Pending changes

First thing you'll probably notice is that you'll see the pending changes of your current workspace in the VS Code Source Control tab. You can either click on the actual tab (the one with the branch icon) or hit its chord, Ctrl+⇧+G, G.

Pending changes

There is also a small indicator in the left handside of the status bar at the bottom. That will show the location of your current workspace. If you click it, VS Code will open the Source Control tab.

Workspace location

Checkin

Would you like to check in all those pending changes? We've got you covered.

There are two ways you can achieve that. The first one is simple: write your checkin message in the Source Control tag input field and hit Ctrl+⏎ in windows, ⌘+⏎ in macOS. As simple as that.

Checkin message

Be careful! This checkin will include all your pending changes at that moment. We're aware that this might be a little inconvenient, specially if you like to perform small, descriptive checkins as we do. That's something we'd like to improve in the future.

The other way to checkin your changes is by using the command palette. If you hit Control+⇧+P (or ⌘+⇧+P in macOS), the command palette will appear. Just type in plastic or checkin and it will narrow the results down to the checkin command.

Command palette: checkin

However, if you hit at that point, the extension will ask you if you really want to checkin your changes with an empty comment.

Empty comment warning

Settings

There are some settings you can tweak. Hit Control+, in Windows, ⌘+, in macOS to open the Settings tab.

Settings
  • Autorefresh: If your workspace is really big and a cm status takes a while, you might want to disable this option so VS Code doesn't overload your machine with lengthy requests.
  • Cm Path: This is useful if your Plastic SCM client installation isn't standard, or if you removed the CLI cm executable from your PATH environment variable.
  • Millis To Stop: The extension runs Plastic SCM commands using an active cm shell process. Sometimes it needs to stop it (e.g. when you change the Cm Path value). This setting specifies how much time the extension should wait for a running cm shell command to finish before killing the shell completely.
  • Millis To Wait Until Up: This sets the amount of time to wait for a cm shell to be ready after execution before assuming it failed.
  • Enabled: As the name states, unchecking this option will disable the Plastic SCM extension completely. This might be useful to set in some workspace that you're sure it won't use Plastic SCM as its version control system.

Wrapping up

This is a side project that started during a hack week in December 2019. We decided to bring it back to light and set it up properly as an Open Source project (the repo is right here). We'd love to have contributors submit their pull requests and share their feedback with us. Install the extension in your local VS Code and let us know how that feels!

If you're interested and you want to become involved, there are many ways to do so. You can simply open new issues with feature requests or bug reports: that would let us know how much interest there is for the extension and in which direction we should move. Or if you are a code enthusiast, we welcome all contributions!

Happy coding!

No comments:

Post a Comment