Visual Studio Code の拡張機能を作ってみる(1)
まずはチュートリアルに従って進めてみよう。
Visual Studio Code(以下VSC)いいですよね。会社の先輩たちもVSCにガンガン乗り換えてて、「あの拡張機能が良い感じ」とかの話題で盛り上がってます。でもまだ「拡張機能を作ってみたよ」という人は居なさそう。
前の記事で「HTMLの山括弧のエスケープめんどくさいね~」という話があったんですけど、練習題材にちょうどいいなと思ったので、これをVSCの拡張機能で作ってみようと思います。「一括置換でいいやん」とか言わない。
参考にしたサイト
公式のチュートリアルです。よく出来ています。
環境準備
Windows10で開発します。npm/Node.jsが必要なので公式サイトからインストールします。インストール後にコマンドプロンプトでnpmとか使えたらOK。
導入
チュートリアルによれば、すぐに動作できる拡張機能のテンプレート("Hello world" が出てくる)まで生成してくれるみたい。とても良い。チュートリアルに従って以下を実行します。
yoすると拡張機能の名前とか色々聞かれるので適当に答えます。左側は誰なんだろう。
yoしたディレクトリ配下でワークスペースが作られるので、適当なディレクトリに移動してからyoするのがベターです。
動かしてみる
何はともあれ、テンプレを実行してみましょう。ワークスペース作成後の指示に従ってVSCを起動します。F5キーを押すと、拡張機能がインストールされた状態のVSCが別窓で起動するので、これを使って動作確認・デバッグを進めます。
Ctrl + Shift + P を押してコマンドパレットを開き、"Hello world" と入力するとテンプレが実行できます。画面右下に通知が出ました。なるほどね。
拡張機能の動作ログ(console.logとか)は、ワークスペースを開いているVSCのデバッグコンソールに表示される。
ソースコードを読む
ソースコードは src/extension.ts というもので、こんな具合のコードが生成されます。実物はコメントがたくさん入ってて優しい感じになってるけど、スペースの関係で消しました。
activate関数がコマンドパレットから呼び出されたときに1度だけ呼ばれる関数。この中で登録されている 'extesion.sayHello' が通知を出していた部分。ちなみのこの関数名は package.json というファイルでも定義されていて、ここの名前が一致する必要がありそう?
deactivate関数はいつ呼ばれるのかまだ分からない。あとでログ仕込んで確認してみましょう。
長くなったので、今日はここまで。
Visual Studio Code(以下VSC)いいですよね。会社の先輩たちもVSCにガンガン乗り換えてて、「あの拡張機能が良い感じ」とかの話題で盛り上がってます。でもまだ「拡張機能を作ってみたよ」という人は居なさそう。
前の記事で「HTMLの山括弧のエスケープめんどくさいね~」という話があったんですけど、練習題材にちょうどいいなと思ったので、これをVSCの拡張機能で作ってみようと思います。「一括置換でいいやん」とか言わない。
公式のチュートリアルです。よく出来ています。
環境準備
Windows10で開発します。npm/Node.jsが必要なので公式サイトからインストールします。インストール後にコマンドプロンプトでnpmとか使えたらOK。
導入
チュートリアルによれば、すぐに動作できる拡張機能のテンプレート("Hello world" が出てくる)まで生成してくれるみたい。とても良い。チュートリアルに従って以下を実行します。
npm install -g yo generator-code
yo code
yoすると拡張機能の名前とか色々聞かれるので適当に答えます。左側は誰なんだろう。
C:\work>yo code
? ==========================================================================
We're constantly looking for ways to make yo better!
May we anonymously report usage statistics to improve the tool over time?
More info: https://github.com/yeoman/insight & http://yeoman.io
========================================================================== No
_-----_ ╭──────────────────────────╮
| | │ Welcome to the Visual │
|--(o)--| │ Studio Code Extension │
`---------´ │ generator! │
( _´U`_ ) ╰──────────────────────────╯
/___A___\ /
| ~ |
__'.___.'__
´ ` |° ´ Y `
? What type of extension do you want to create? New Extension (TypeScript)
? What's the name of your extension? espace-html-bracket
? What's the identifier of your extension? espace-html-bracket
? What's the description of your extension? Espace HTML bracket
? What's your publisher name (more info: https://code.visualstudio.com/docs/tools/vscecli#_publishin
g-extensions)? mahirun
? Enable stricter TypeScript checking in 'tsconfig.json'? Yes
? Setup linting using 'tslint'? Yes
? Initialize a git repository? Yes
yoしたディレクトリ配下でワークスペースが作られるので、適当なディレクトリに移動してからyoするのがベターです。
動かしてみる
何はともあれ、テンプレを実行してみましょう。ワークスペース作成後の指示に従ってVSCを起動します。F5キーを押すと、拡張機能がインストールされた状態のVSCが別窓で起動するので、これを使って動作確認・デバッグを進めます。
Ctrl + Shift + P を押してコマンドパレットを開き、"Hello world" と入力するとテンプレが実行できます。画面右下に通知が出ました。なるほどね。
拡張機能の動作ログ(console.logとか)は、ワークスペースを開いているVSCのデバッグコンソールに表示される。
ソースコードを読む
ソースコードは src/extension.ts というもので、こんな具合のコードが生成されます。実物はコメントがたくさん入ってて優しい感じになってるけど、スペースの関係で消しました。
export function activate(context: vscode.ExtensionContext) {
console.log('Congratulations, your extension "espace-html-bracket" is now active!');
let disposable = vscode.commands.registerCommand('extension.sayHello', () => {
vscode.window.showInformationMessage('Hello World!');
});
context.subscriptions.push(disposable);
}
export function deactivate() {
}
activate関数がコマンドパレットから呼び出されたときに1度だけ呼ばれる関数。この中で登録されている 'extesion.sayHello' が通知を出していた部分。ちなみのこの関数名は package.json というファイルでも定義されていて、ここの名前が一致する必要がありそう?
deactivate関数はいつ呼ばれるのかまだ分からない。あとでログ仕込んで確認してみましょう。
長くなったので、今日はここまで。
コメント
コメントを投稿