はじめに
VS Code Conference Japan 2024、ありがとうございました!
nikkieです。
このエントリは、タイトルが全てです。
目次
VS Codeで文字列のちょっとした変換ができるんです!〜実装まで覗くクイックツアー〜
資料類
本日お話しするスライドです
— nikkie / にっきー (@ftnext) 2024年4月20日
VS Codeで文字列のちょっとした変換ができるんです!〜実装まで覗くクイックツアー〜
#vscodejp
コマンドパレットといった操作を紹介しますが、
一番分量があるのはタイトルケースにするのに使う正規表現です。
異色のひとときお楽しみくださいhttps://t.co/QNE1KYbdDT
アーカイブは2:19:06あたりからです。
発表中の様子
Togetterにまとめました(想い出バックアップ)
私のトークはpage=9〜10のあたりです。
いくつかお声を紹介します。
Vscodeのcommand + Pで文字列をcamel caseとかに変換できるの知らなかった!
— Nobu📖WEBエンジニア (@nobubump0) 2024年4月20日
これは便利!
#vscodejp pic.twitter.com/OZgBzXud09
便利ですよね! 伝えられてよかったです🙌
コマンドパレットの先頭記号変える (> とか付ける) と探せるやつ変えられるのめちゃくちゃいいのわかる〜〜〜 #vscodejp
— (ρ_-)ノ (@nemunemu3desu) 2024年4月20日
>
で行き来できるぞ〜!🙌
こんなに知らない正規表現を見るセッション初めてだwwwwww #vscodejp
— ちゅうこ (@y_chu5) 2024年4月20日
正規表現を味わう話だった👏 #vscodejp
— Yoichi Kawasaki (@yokawasa) 2024年4月20日
ちなみに正規表現を可視化してくれる便利なサイトがあるので、こちらに置いておくhttps://t.co/6ybcmxLNeL
この発表の半分は正規表現で占められていました。
\p{L}
はUnicode文字クラスエスケープ。
\d
や\w
の一般化で、Unicode文字のプロパティで文字の集合を指定しています
質問に感謝
Q: 文字列変換のベースクラスがあるということだったが、"僕が考えた最強の文字列変換"を作りたいときはそのクラスを使って実装できるのか、まっさらなところから実装しないといけないのか (2:34:53)
質問ありがとうございます。
宿題とさせていただきます。
発表にいただいた質問に関して #vscodejp
— nikkie / にっきー (@ftnext) 2024年4月20日
最強のCaseActionを作るために今日紹介したVS Codeのクラス達を使ってもよさそうですが、
jaconvをラップするだけで簡単に実現した例もありhttps://t.co/dYUAWgpKem
機能が作りやすい方を採用するのかなと考えていますhttps://t.co/k0P5vQ4lXR https://t.co/syoovUh6QP
- まっさらなところから、文字列変換コマンドを実装している例の1つが上☝️のツイート
- 紹介した
AbstractCaseAction
でもできるのではないかという気がするので、宿題として検証します
発表後記
今回の発表の元は以下のエントリです。
VS Code拡張を作ったことがあったので1実装も少しは読めるぞと記事中で覗いたのを、今回さらに掘り進めました。
Unicode文字クラスエスケープを知ったときは知的興奮がやばかったですね。
知らないものを知れて、たーのしーー!
またJavaScriptの正規表現まわりでかなり理解が深まりました。
私はPythonが好きで、暇があったら標準ライブラリの実装を覗くくらい好きなんですが(だって好きな相手のことは全部知りたいじゃないですか!2)、VS Codeのこともかなり好きなんだなと認識しました。
VS Code Meetupは現在LTを募集するスタイル3のようなので、登壇駆動でVS Codeの実装を読み進めてみたいなと思います。
このたびは登壇の機会をいただき、また聞いていただき、質問までいただき、ありがとうございました!
私の発表は(数点tipsを共有しつつも)VS Codeの実装に使われている正規表現を突然読み解き始めるというカオスな時間だったかと思いますが、持って帰れる知見の共有とかおいておいて実装についてガーッと話した今回のひとときは発表者としてはとても楽しかったです。
P.S. 関連ブログエントリ
- どうかしてるぜ! ↩
- 歩夢ちゃんを纏っています ↩
- 「今回からしばらくLTを中心に、2ヶ月おきに構成した開催を行います。」 VS Code Meetup #28 - connpass↩