Commit Message Editor
Edit commit messages in a convenient way.
Highlighs
- Commit messages can be editable in a customizable form. This helps you to use a standardized format.
- Portable configuration to share settings with teammates.
- A huge textarea on a dedicated tab.
- Clean look, thanks to Vscode Webview Elements
The factory settings follows the Conventional Commits specification.
More screenshots
Requirements
Built-in Git extension
Extension Settings
This extension contributes the following settings:
commit-message-editor.confirmAmend
: Show confirm dialog before amend the commit messagecommit-message-editor.staticTemplate
: Template for the text viewcommit-message-editor.dynamicTemplate
: Template for the form viewcommit-message-editor.tokens
: Editable inputs in the form viewcommit-message-editor.view.defaultView
: Default view of the editor (textarea or form)commit-message-editor.view.fullWidth
: The editor fills the whole available spacecommit-message-editor.view.showRecentCommits
: Show recent commits in the main viewcommit-message-editor.view.saveAndClose
: Close commit message editor tab after savingcommit-message-editor.view.visibleViews
: Which tab(s) should be visible: text, form or bothcommit-message-editor.view.visibleLines
: Visible lines in the text viewcommit-message-editor.view.useMonospaceEditor
: Use monospace font in the text viewcommit-message-editor.view.tabSize
: Tab size in the monospace editorcommit-message-editor.view.useTabs
: Use tabs for indentation in the monospace editorcommit-message-editor.view.rulers
: Render vertical rulers after a certain number of monospace characters in the monospace editor. Use multiple values for multiple rulers. No rulers are drawn if array is empty.
Customizing the commit message form
The easiest way to customizing the commit message form is to use the
Configuration Editor. To open the configuration editor, choose the
Commit Message Editor: Open Settings Page
command from the Command Palette, or
click on the gear icon in the top right corner of the Commit Message Editor tab.
Here, you can export the current configuration or import another one. The loaded
configuration can be saved to the user or the workspace settings.
A JSON schema is created for the portable configuration file format. This means, you can use the VSCode toolset to edit the configuration file manually. Just create a new JSON file with this content and start to edit:
{
"$schema": "https://bendera.github.io/vscode-commit-message-editor/schemas/config-v1.schema.json"
}
Structure of the portable configuration file
configVersion
Currently: "1"
. It might change in the future.
staticTemplate
Template for the text view, an array of strings. Every item in the array is a single line.
dynamicTemplate
Template for the form view, an array of strings. Every item in the array is a single line.
Form fields (see the next section) can be referenced in the the template with the {token_name}
format.
tokens
An array of token objects. It defines the form fields. The table below shows the structure of a token object:
Name | Type | Description | Valid for |
---|---|---|---|
label | string | The label of the form item. | all |
name | string | The token name in the template. | all |
type | enum | The type of the token. Valid values are: text: displayed as a text input boolean: displayed as a checkbox enum: displayed as a dropdown selector |
all |
description | string | A longer text under the form item | all |
prefix | string | Text before the value. It will only be applied if the value is not empty | all |
suffix | string | Text after the value. It will only be applied if the value is not empty | all |
multiline | boolean | Multiline text input | text |
lines | number | Textarea initial height in lines | text |
maxLines | number | Textarea maximum height in lines | text |
maxLength | number | Maximum length of the value | text |
multiple | boolean | Multiple options | enum |
separator | string | Separator character when multiple options were selected | enum |
combobox | boolean | Is the selector filterable or not | enum |
options | array | Available options | enum |
options[{n}].label | string | The value of the option | enum |
options[{n}].description | string | A longer description for the option | enum |
Sample configs
You can customize the Gitmoji config with the scripts/gitmoji-config.js
script
Happy coding!