俺はただVS Codeで tomorrow とか next monday とか打つだけで日付を入力したかったんです【拡張機能自作】
みなさんは、VS Code で日付をさくっと入力したいときありませんか。
私はあります。今日の日付だけなら良いのですが、私がよく使うものとして「明日」「次の月曜日」「次の金曜日」「N日後」「来月の初日」などがあります。
VS Code の拡張機能を探してみるのですが手に馴染むものが見つけられませんでした。
そこで、「俺のニッチな要望は俺にしか答えられないかもしれない」ということで、VS Code の拡張機能を自作して、公開してみました。
さっそくデモ
実装した機能のデモは以下のとおりです。
今日・明日・次の月曜日などの日付を入力
N(日/週/月/年)後の日付を入力
使い方
インストール
まずは、以下の拡張機能をインストールします。
フォーマットの指定
cmd + ,
で設定画面を開き、easyDateInsert.format
と検索することで、日付のフォーマットを指定できます。(今は用意しているものだけで、デフォルト値はYYYY-MM-DD
です)
特定のキーワードで日付を入力
Mac の場合は、 cmd+shift+p
でコマンドパレットを開き、以下のコマンドを呼び出すことで日付を入力できます。
こちらは tomorrow
まで入力している例ですが、 monday
などで 次の月曜日
の日付などを呼び出すことも可能です。
-
Easy Date Insert: Today
のコマンドを呼び出すと、今日の日付を入力-
today
くらいまでの入力で候補としてすぐに出てくる可能性が高い
-
-
Easy Date Insert: Tomorrow
のコマンドを呼び出すと、明日の日付を入力 -
Easy Date Insert: Next Friday
のコマンドを呼び出すと、次の金曜日の日付を入力 -
Easy Date Insert: Next Monday
のコマンドを呼び出すと、次の月曜日の日付を入力 -
Easy Date Insert: Last of Month
のコマンドを呼び出すと、今月の最終日の日付を入力
N(日/週/月/年)後の日付を入力
-
Easy Date Insert: Insert Date
コマンドを入力することで、日付を入力可能- 例えば、
3
と 入力した後にday
を選択することで、3日後の日付を入力可能 -
2
と 入力した後にweek
を選択することで、2週間後の日付を入力可能
- 例えば、
TIPS: キーバインドの設定
いちいち cmd+shift+p
でコマンドパレットを開くのが面倒な人は、キーバインドを設定することで、より簡単に日付を入力できます。
例えば以下は、cmd+shift+D
で tomorrow
の日付を入力するように設定した例です。(フォーマットは YYYY年MM月DD日 を設定)
{
// example for tommorow command
{
"key": "cmd+shift+d",
"command": "easy-date-insert.tomorrow"
"when": "editorTextFocus"
}
// You can set another command in the same way.
}
背景
私はできるだけ多くの文章を、どのPCでも同じように書きたいと思っています。
できれば慣れたエディターでバージョン管理できる形が良いです。
以下のブログで知ったGistPadのおかげで、ブログネタメモや、技術書メモなどは捗るようになってきました。
- 慣れたエディターで文書入力できる
- マークダウン形式で文書入力できる
- Vimのキーバインドで文書入力できる
- Gitでバージョン管理可能
だいたいの文書の場合はこれだけで十分なのですが、Todo管理などもしようと思うと頻繁に「いつまでにやるか」という情報を入力する必要があります。
今日の日付だけなら、ショートカットや他の拡張機能でなんとかなりそうなのですが、ToDoでよく使う「来週の月曜日」「次の金曜日」などの日付をさくっと入力したかったのです。
ということで、このような拡張機能を自作してみました。
まとめ
- 自分のニッチな要望に答えるため、VS Code の拡張機能を自作してみました
- 感想
- これだけの単純な機能なら数時間で作成できました
- とはいえ日々の日付入力で1秒でも短縮できるのは結構大きいです
- 今後も良さげな拡張機能を見つけられなかったら、自作も検討します
- 今後の課題
- フォーマットは自由入力にしてもいいかもしれない
- 今時点で使わなさそうなコマンドもあるし、もっと欲しいコマンドがありそう
- 次のHoge曜日は全部あってもいいかもしれない
- 使ってみて欲しい便利コマンドがあれば追加していく
リポジトリはこちらですので、何か不具合や改善点があれば、Issue や Pull Request などお気軽にお寄せください。
参考資料
拡張機能を作成するまでに以下の記事を参考にしました。
また、拡張機能を公開するまでに以下の記事を参考にしました。
いずれも写真が豊富で非常にわかりやすい記事でした。
本当にありがとうございます。
Discussion