nikkie-ftnextの日記

イベントレポートや読書メモを発信

テキストのちょっとした変換(全小文字化など)をPythonでやっていたのですが、VS Codeでサクッとtransformできることを知りました

本日は簡略版です。

目次

はじめに

VS Codeに詳しい方と一緒に作業する機会があり、ちょっとしたtips(ですが記事を書きたくなるくらいテンション上がったtips)を知りました。
それがこいつだ! transform1!!

テキストを選択してからコマンドパレットを立ち上げ2、「transform」と入力してコマンドを絞り込んでいます

手元のVS Codeのバージョン
Version: 1.81.1 (Universal)

Transform text commands ✨

https://code.visualstudio.com/docs/getstarted/tips-and-tricks#_transform-text-commands

You can change selected text to uppercase, lowercase, and title case with the Transform commands from the Command Palette.

意訳 コマンドパレットからTransformコマンドを使って、選択したテキストを大文字、小文字、タイトルケースに変えられます

Pythonを対話モードで立ち上げなくても、VS Codeのコマンドパレットからできたのか!

実装も覗いてみた

VS Code拡張を作ったこともあった3ので、ちょっとは読めるだろうとすこーしだけ覗いてみました。

https://github.com/microsoft/vscode/blob/1.81.1/src/vs/editor/contrib/linesOperations/browser/linesOperations.ts#L1051

export class UpperCaseAction extends AbstractCaseAction {

抽象クラス(っぽいもの)を継承して大文字に変換するクラスが定義されている!
他の具体CaseActionもAbstractCaseActionを継承しています

実装は、JavaScriptの文字列のtoLocaleUpperCaseメソッドで大文字にしています

toLocaleUpperCase() メソッドは、呼び出した文字列の値を、ロケールに依存した対応付けに基づいて大文字に変換して返します。

registerEditorActionしているところ
https://github.com/microsoft/vscode/blob/1.81.1/src/vs/editor/contrib/linesOperations/browser/linesOperations.ts#L1251

TitleCaseActionなどは、条件分岐してregisterEditorActionという実装でした。
常に提供するわけじゃないんだ

終わりに

VS Codeで英語テキストを選んでコマンドパレットからtransformできることを知りました。
これでプログラミングが捗っちゃうぞ〜🙌
教えていただいたことに深く感謝です。


  1. 奇しくも今週はtransform(ers)にちなんだアウトプットが多いですね。https://nikkie-ftnext.hatenablog.com/archive/2023/09
  2. macOSだと⇧⌘Pです。
  3. どうかしてるぜ!