Git Angular
Git Angular is an extension to help you use Angular style commit messages in your projects. I occasionally had issue trying to remember some of the options, so I created this largely for myself, but if anyone else wants to use, the more the merrier.
Features
- Helps users stay in Angular-style commits.
- Configurations can be user-wide or workspace specific.
- Configurations are simple arrays, so they can be shared easily between teams for a unified setup.
- Settings can be altered globally or in the workspace.
Extension Settings
This extension contributes 4 settings:
- gitAngular.types
A string array of the allowed types for a commit to be. Defaults to the list provided
- gitAngular.scopes
A string array of the allowed scopes for the commit message.
- gitAngular.allowNewTypes
A boolean (true/false) value on whether or not to allow the user to add new commit types when making a commit. New types will be saved to the workplace's settings.
- gitAngular.allowNewScopes
A boolean (true/false) value on whether or not to allow the user to add new scopes when making a commit. New scopes will be saved to the workplace's settings.
Commands
The extension only provides one command gitAngular.commit
, but does not contribute any keybindings. This was purposeful, as in dealing with some other extensions it bothers me when an extension overrides a keybinding I may be using. If you would like to follow my personal keybinding, I bind this to ctrl+shift+c
(c for Commit). Recently VSCode has added in a command for that same keybinding, so you may have to disable or change it if you want to use ctrl+shift+c
.
The command is bound to an item in the Git source control to call it by clicking on it
Known Issues
- Since I use API provided by VSCode's API, currently there is a limitation involving workspaces that have multiple git repositories. The extension gives you some UI to choose which repository a commit will be for, but unfortunately I am not able to control programmatically which repository will show up when the SCM view is opened.
Bugs / Requests
You can find the issues for this extension at https://gitlab.com/jhechtf/git-angular/issues
Notes
~~This is the very beginning of this extension, and it is possible that I might change the format of how the scopes/types are stored (thinking about using an object so that I might add a description). Just know that if you use this, in a future I may note that we are no longer using pure arrays.~~
Originally I had used objects to map from the commit type into a description. Recently I found out that VSCode will always pull the defaults for object
configurations, and simply merge them with the user's defined config. In order to get around this, I have moved the configuration over to an array of items. This will break old configs, and you will need to update.