📅

俺はただVS Codeで tomorrow とか next monday とか打つだけで日付を入力したかったんです【拡張機能自作】

2024/05/26に公開

みなさんは、VS Code で日付をさくっと入力したいときありませんか。

私はあります。今日の日付だけなら良いのですが、私がよく使うものとして「明日」「次の月曜日」「次の金曜日」「N日後」「来月の初日」などがあります。

VS Code の拡張機能を探してみるのですが手に馴染むものが見つけられませんでした。

そこで、「俺のニッチな要望は俺にしか答えられないかもしれない」ということで、VS Code の拡張機能を自作して、公開してみました。

さっそくデモ

実装した機能のデモは以下のとおりです。

今日・明日・次の月曜日などの日付を入力

Demo

N(日/週/月/年)後の日付を入力

N after Example

使い方

インストール

まずは、以下の拡張機能をインストールします。

https://marketplace.visualstudio.com/items?itemName=bun913.easy-date-insert

フォーマットの指定

cmd + , で設定画面を開き、easyDateInsert.format と検索することで、日付のフォーマットを指定できます。(今は用意しているものだけで、デフォルト値はYYYY-MM-DDです)

Format

特定のキーワードで日付を入力

Mac の場合は、 cmd+shift+p でコマンドパレットを開き、以下のコマンドを呼び出すことで日付を入力できます。

Tomorrow Example

こちらは 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(日/週/月/年)後の日付を入力

N after Example

  • Easy Date Insert: Insert Date コマンドを入力することで、日付を入力可能
    • 例えば、3 と 入力した後に day を選択することで、3日後の日付を入力可能
    • 2 と 入力した後に week を選択することで、2週間後の日付を入力可能

TIPS: キーバインドの設定

いちいち cmd+shift+p でコマンドパレットを開くのが面倒な人は、キーバインドを設定することで、より簡単に日付を入力できます。

例えば以下は、cmd+shift+Dtomorrow の日付を入力するように設定した例です。(フォーマットは YYYY年MM月DD日 を設定)

shortcut image

{
  // 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のおかげで、ブログネタメモや、技術書メモなどは捗るようになってきました。

https://zenn.dev/voluntas/scraps/7721c58680931b

  • 慣れたエディターで文書入力できる
  • マークダウン形式で文書入力できる
  • Vimのキーバインドで文書入力できる
  • Gitでバージョン管理可能

だいたいの文書の場合はこれだけで十分なのですが、Todo管理などもしようと思うと頻繁に「いつまでにやるか」という情報を入力する必要があります。

Todo

今日の日付だけなら、ショートカットや他の拡張機能でなんとかなりそうなのですが、ToDoでよく使う「来週の月曜日」「次の金曜日」などの日付をさくっと入力したかったのです。

https://jsstudy.hatenablog.com/entry/How-to-set-a-shortcut-to-enter-the-current-date-and-time-in-Visual-Studio-Code

ということで、このような拡張機能を自作してみました。

まとめ

  • 自分のニッチな要望に答えるため、VS Code の拡張機能を自作してみました
  • 感想
    • これだけの単純な機能なら数時間で作成できました
    • とはいえ日々の日付入力で1秒でも短縮できるのは結構大きいです
    • 今後も良さげな拡張機能を見つけられなかったら、自作も検討します
  • 今後の課題
    • フォーマットは自由入力にしてもいいかもしれない
    • 今時点で使わなさそうなコマンドもあるし、もっと欲しいコマンドがありそう
      • 次のHoge曜日は全部あってもいいかもしれない
    • 使ってみて欲しい便利コマンドがあれば追加していく

リポジトリはこちらですので、何か不具合や改善点があれば、Issue や Pull Request などお気軽にお寄せください。

https://github.com/bun913/vscode-extension-easy-date-insert

参考資料

拡張機能を作成するまでに以下の記事を参考にしました。

https://dev.classmethod.jp/articles/easy-vs-code-extension-development/

https://code.visualstudio.com/api/get-started/your-first-extension

また、拡張機能を公開するまでに以下の記事を参考にしました。

https://qiita.com/yusu79/items/44520c4c67864b0bb3e9

いずれも写真が豊富で非常にわかりやすい記事でした。
本当にありがとうございます。

GitHubで編集を提案

Discussion