この記事はtraPアドベントカレンダー8日目の記事です。
いくら・はむ(@ikura-hamu)です。主にGoを書いています。
まずは
まずは、らすさん(@Ras)のこちらの記事をご覧ください。
読みましたか?
この記事は勝手に書いた続編です。僕はこれを読んでVimでの設定をやったのですが、VSCodeでのコミットが個人的に好みだったので、VSCodeでも快適にEmoji Prefixのコミットメッセージを書く設定をしました。
Emoji Prefixが何たるかとかモチベーションとかは前の記事を参考にしてください。
Emoji Prefix with your VSCode
コミット用エディタをVSCodeにする
シェルで下のコマンドを実行します。Gitのコミット用エディタをVSCodeにして、タブが閉じるまで待つという意味です。VSCodeにパスが通っている必要があります。
git config --global core.editor "code --wait"
VSCodeの設定から、git.useEditorAsCommitInput
にチェックを入れます。(デフォルトで入ってるっぽいです。)
ユーザースニペットを設定する
ユーザースニペットを設定することで、短い単語を入力するだけで絵文字を出せるようにします。
左下の歯車マークから「ユーザースニペット」をクリックします。上に言語を選ぶ欄が出てくるので、git-commit.json
を選びます。
git-commit.json
というJSONファイルが開くので、編集します。
git-commit.json{
"タイトル": {
"prefix": "{{省略形}}",
"body": "{{スタンプ}} ",
"description": "{{説明}}"
},
"...": {
...
}
}
{{省略形}}
に書かれた部分を入力すると、補完候補から{{スタンプ}}
が選べます。僕はよく使うものをこんな感じで設定しています。使う絵文字はhttps://gitmoji.dev/ を参考にするといいんじゃないでしょうか。
git-commit.json{
// Place your snippets for git-commit here. Each snippet is defined under a snippet name and has a prefix, body and
// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the
// same ids are connected.
// Example:
// "Print to console": {
// "prefix": "log",
// "body": [
// "console.log('$1');",
// "$2"
// ],
// "description": "Log output to console"
// }
"Feature": {
"prefix": "fe",
"body": ":sparkles: ",
"description": "Introduce new feature"
},
"Bugfix": {
"prefix": "bu",
"body": ":bug: ",
"description": "Fix a bug"
},
"Refactor": {
"prefix": "re",
"body": ":recycle: ",
"description": "Refactor code"
},
"Documentation": {
"prefix": "do",
"body": ":memo: ",
"description": "Add or update documentation"
},
"Test": {
"prefix": "te",
"body": ":white_check_mark: ",
"description": "Add or update tests"
},
"WIP": {
"prefix": "wip",
"body": ":construction: ",
"description": "Work in progress"
},
"Bandage": {
"prefix": "ad",
"body": ":adhesive_bandage: ",
"description": "Simple fix for a non-critical issue"
},
"Breaking Change": {
"prefix": "bo",
"body": ":boom: ",
"description": "Introduce breaking changes"
},
"Remove": {
"prefix": "rm",
"body": ":fire: ",
"description": "Remove code or files"
},
"Configuration": {
"prefix": "co",
"body": ":wrench: ",
"description": "Change configuration files"
},
"Update": {
"prefix": "up",
"body": ":arrow_up: ",
"description": "Update dependencies"
},
"Format": {
"prefix": "fo",
"body": ":art: ",
"description": "Improve structure / format of the code"
},
"Performance": {
"prefix": "zap",
"body": ":zap: ",
"description": "Improve performance"
},
"Performance2": {
"prefix": "isu",
"body": ":chair: ",
"description": "Improve performance"
}
}
このように設定すると、例えば fe
まで入力すると補完の1番上にfe
が出てきて、それを選択すると :sparkles:
(✨)が入力できます。
(お好みで)コミットテンプレートを用意する
https://trap.jp/post/1995/#おまけ を参考にコミットメッセージのテンプレートを用意しておくと絵文字のカンペができてうれしいです。#
がついた行はコメントとして認識され、コミットメッセージには含まれません。
git config --global commit.template {{テンプレートのパス}}
(お好みで)Verbose Commitを有効にする
VSCodeの設定からgit.verboseCommit
にチェックを入れます。ここにチェックを入れると、コミットメッセージのエディタが開いたときに変更箇所がエディタに表示されます。
これの嬉しいところは、GitHub Copilotがdiffを読んでいい感じのコミットメッセージを生成してくれるところです。しかし、上のコミットテンプレートを使うとなぜか読んでくれなくなってしまいました。自分でメッセージを書くのにも便利なので設定はオンにしています、
こんな感じになる
設定を全部入れるとこんな感じになります。VSCodeのコマンドパレットを使えば最速でコミットできると思います。
やってることは
Ctrl+Shift+P
でコマンドパレットを開くCommit All
を選ぶfe
と打つfe
に対応する設定したスニペットFeature
が補完に出てくるので、Enter
を押す:feature:
と入力される- 普通にコミットメッセージを書く
Ctrl+S
で保存Ctrl+W
でタブを閉じる
です。サクッとコミットできてうれしいです。
おわり
絵文字付きのにぎやかなコミットメッセージをらくらく書けるようになって、コミットするたびに楽しいです。みなさんはどのようにコミットメッセージを書いていますか? "Emoji Prefix with your core.editor
(3)"、待ってます。
明日は @mehm8128さん の記事と、 @karoさんさんの記事です。