🎉

日本語と他の文字の間にカーソルを移動しやすくするVS Codeの拡張機能を作った

2024/12/23に公開

この記事は、みすてむず いず みすきーしすてむず その2 Advent Calendar 2024の23日目の記事である。

22日目の記事はアキルノさんの運動不足エンジニアがBeat Saberで体力を取り戻した話だった。楽しんで運動できるのは羨ましいね。私はVR酔いで死にかけるだろうなあ…。

これはなに

VS Codeの拡張機能で、日本語(ひらがな・カタカナ・漢字のかたまり)と、他の文字(アルファベット・数字・記号)の間にカーソルを移動しやすくするものを作ったので、それを紹介するだけである。

作ったもの

何ができるのか

たとえば、以下のようなテキストがある。

VS Codeは、Microsoftが提供するソースコードエディタです。

デフォルトのVS Codeでは、Ctrl + Rightでカーソルを移動すると、次のように移動する。

Original cursor movement

どうしてCode以降が1単語になってしまうのか。おろかな。

そこで、この拡張機能の出番である。この拡張機能をインストールすると、Ctrl + Rightでのカーソル移動が次のように変わる。

Improved cursor movement

Code以降が1単語にならず、Codeの間や、Microsoftの間にカーソルを移動できるようになる。

これだけ。

もちろん、Ctrl + Leftで逆方向にも移動できる。Ctrl + Shift + Right/Leftによる選択、Ctrl + DeleteCtrl + Backspaceによる削除も対応している。
現時点では、ダブルクリックによる選択には対応していない。

なぜ作ったのか

私はよくMarkdownで文章を書いたり手順書を書いたりする。その中で、日本語と英語交じりの文を書くことが多々ある。「私はよくMarkdownで文章を書いたり手順書を書いたりする」がもうすでにそうだ。
そうしていると、日本語と英単語の間にカーソルを移動したいと思うことがままある。日本語の文章を単語単位で変えたいと思うことは全然ないのだが、間の英単語だけを変えたいと思うことはたまにある。そういうときに、デフォルトのカーソル移動だとかなり不便だった。ちょうどいい感じにカーソルを移動してくれない。
そこで、拡張機能を作ることにした。

どうやって作ったのか

作り方をまとめたらZennの本が1冊できたので、そちらを参照してほしい。

作っている中で思ったこと

結構思いつきと勢いで作ってみたのだが、拡張機能自体は意外と作りやすくて驚いた。環境構築も簡単だし、ひな型の時点でデバッグもテストもできるようにしてあるため、苦労する点が少ない。さすがに公開するときはドキュメントの整備や各種設定が必要だが、自分用に作るだけなら1日あれば十分だろう。公式が豊富なサンプルを用意しているのもありがたい。

また、カーソルを移動するだけの機能なのだが、意外と類似の拡張機能が存在していて驚いた。まあ自分にとっては自分の作ったものが使いやすいのだが、意外と知らないところで同じような機能を提供している拡張機能があるものだと思った。

今回作った拡張機能はカーソルの移動だけだが、画像を表示したり右下にアイコンを表示したりと、自由度高く拡張機能を作れるのも面白いと思った。逆に言うと、結構簡単にマルウェアとかキーロガーとか仕込めそうだなとも思った。そういう点では発行元の信頼は大事だし、怪しい機能はソースコードを見るなど警戒して使うべきだと感じた。気をつけようね。

おわりに

自分のために作った拡張機能だが、まあ使えそうだったら使ってみてほしい。もちろん、バグや要望があれば、IssueやPull Requestを送っていただければ対応するかもしれない。

おまけ

ちなみに、みすてむず いず みすきーしすてむずアドベントカレンダーは3つもある。

みすてむずはITエンジニアが仕事の話をしたりしなかったりするSNSなので、興味があれば見てみてほしい。

次回はsysnote8mainさんの「いろんな探査アルゴリズムを手で書いて、仕組みを知る」である。

Discussion