SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発用エディタのド定番「VSCode」を使いこなそう

VSCodeをWebサイト開発用ツールに ―HTML/CSS/JavaScriptエディタとして強化しよう!

開発用エディタのド定番「VSCode」を使いこなそう 第5回


  • X ポスト
  • このエントリーをはてなブックマークに追加

ビルトインJavaScript/TypeScript言語サポート

 HTML/CSSと同様に、JavaScript(TypeScriptも含む)も組み込みでサポートされています。HTML/CSSと同様にシンタックスハイライト機能、補完機能(図6)を備えます。

図6:JavaScriptのコード補完
図6:JavaScriptのコード補完

 さらに、JavaScriptコードのフォーマット機能を備えます(図7)。

図7:JavaScriptのフォーマット
図7:JavaScriptのフォーマット

 いくつかの機能は設定により有効と無効を切り替えられます。設定は、[拡張機能]-[TypeScript]を開きます。JavaScriptとTypeScriptには、それぞれに独立した項目が割り当てられていますが、ここではJavaScriptをピックアップします。「javascript」を「typescript」に置き換えれば、TypeScriptに適用される項目となります。「js/ts」は、JavaScriptとTypeScriptで共有する設定項目です。表3に、主なビルトインJavaScript/TypeScript言語サポートの設定項目を挙げます。

表3:主なビルトインJavaScript/TypeScript言語サポートの設定項目
項目 デフォルト 概要
javascript.autoClosingTags true JSX(JavaScriptのコード中に直接HTMLを記述できる拡張構文)中の閉じタグを自動入力するか
javascript.format.enable true 既定のフォーマッタを有効にするか
javascript.suggest.autoImports true 自動インポートの提案をするか
javascript.validate.enable true 検証を有効にするか

 javascript.format.*(typescript.format.*)にはフォーマッタ関連の設定が多数あります。例えばカンマの後・カッコの前後・二項演算子の前後などの空白の挿入、波括弧の配置位置などです。どのような設定があるかは実際の設定項目を参照してください。

EmmetによるHTML/CSSサポート

 Emmetは、Dreamweaver、Bracket、Atomなどのテキストエディタあるいは開発環境で利用できるHTML/CSS編集のためのオープンソースのプラグインです。もともとはZen-Codingというプロジェクトでしたが、Emmetに名称変更されました。VSCodeにはEmmetが標準で組み込まれており、特に拡張機能をインストールすることなく利用できます。

 Emmetとはプラグインの名称でもありますが、省略記法の名称でもあります。Emmet記法に則って省略形を入力すると、それに相当する内容を自動的に展開する、そんなイメージになります。表4は、Emmetによる主な展開例です。基本的に、入力後に表示される候補から、[Enter]キーか[Tab]キーを押下して展開します(図8)。

表4:Emmetによる主な展開例
記法 展開される内容 展開例
! テンプレートを挿入 ! ⇒ <!DOCTYPE html>~</html>
!!! DOCTYPE宣言を挿入 !!! ⇒ <!DOCTYPE html>
タグ名 開始タグと終了タグを挿入 div ⇒ <div></div>
.クラス名 タグにclass属性を付与 .class ⇒ <div class="class"></div>
#id名 タグにid属性を付与 #id ⇒ <div id="id"></div>
> 要素を入れ子構造で展開する(親要素と子要素) div>p ⇒ <div><p></p></div>
+ 同階層を展開する(兄弟要素) div+div ⇒ <div></div><div></div>
^ 一つ上の階層で展開する
*数字 繰り返し li*5 ⇒ <li></li>が5つ
$ 連番の数字を展開する .class$*5 ⇒ <div class="class1"></div>~<div class="class5"></div>
( )または{ } グループを作る(テーブルやリストを作るときなどに使う)
[Cntl]+[/] コメントを挿入 コメント ⇒ <!-- コメント -->
図8:Emment記法による省略入力
図8:Emment記法による省略入力

 Emmetによる支援を受けるには、編集中のファイルがHTMLやCSSであることを明示しておく必要があります。既存のHTML/CSSファイルを開くか、あるいは新規ファイル作成後にHTML/CSSファイルとして拡張子を指定して保存する、さらに新規作成後に表示される言語選択の問い合わせに「HTML」か「CSS」などを選択しておく、などです。Emmetの設定は、[拡張機能]-[Emmet]を開いて行います。表5に、主なEmmetの設定項目を挙げておきます。

表5:主なEmmetの設定項目
項目 デフォルト 概要
emmet.optimizeStylesheetParsing true 展開位置が適切かの判定を周辺にのみ絞る(falseならファイル全体が判定対象となり精度は上がるが遅くなる)
emmet.showAbbreviationSuggestions true 候補を表示するか
emmet.showExpandedAbbreviation always 候補を表示するファイルの種類(always:全て、never:なし、inMarkupAndStylesheetFilesOnly:html、cssなど11種類)
emmet.showSuggestionsAsSnippets false 候補をスニペットで表示するか
emmet.triggerExpansionOnTab false Tabキーで候補を表示するか
emmet.useInlineCompletions false 候補をインライン表示するか
emmet.variables {} スニペットで参照される変数のリスト

 このうち、emmet.variablesについて例を挙げます。「!」では、HTMLのひな型を自動入力できますが、html要素のlang属性が"en"であるので、これをいちいち"ja"などに書き直すのは面倒です。そこで、スニペットの変数であるlangを"ja"に設定することで、「!」の展開時にlang="ja"にすることができるようになります。

HTMLページ表示のための拡張機能

 ここまでは編集機能を紹介しました。編集したHTMLやCSS、JavaScriptの動作確認は、ブラウザで表示、実行させてみるのが一般的です。ここでは、HTMLページをブラウザで表示させる拡張機能を紹介します。動作検証のために、FinderやExplorerでいちいちファイルをダブルクリックして開く必要はないのです。

HTMLファイルをさまざまなブラウザで表示(open in browser)

 編集中のHTMLファイルをブラウザでサクッと表示させたい!このような場合には、TechERによるopen in browserをインストールしましょう。ショートカットキーあるいはメニューを使って、デフォルトブラウザあるいは任意のブラウザで編集中のHTMLファイルを表示できます(Igor Dimitrijevićによる似た名前のOpen in Browserもあるので注意してください)。

 デフォルトブラウザで開きたい場合には[Option]+[B]/[Alt]+[B]、開くブラウザを選択したい場合には[Shift]+[Option]+[B]/[Shift]+[Alt]+[B]を使います([Shift]+[Option(Alt)]+[B]は、一部の拡張機能と競合することがありますが、キーのカスタマイズはできません)。メニューから開くには、エディタ画面で右クリックして、表示されるメニューから[Open in Default Browser]および[Open in Other Browsers]を選択します。

 ブラウザを選択して表示する場合は、コマンドパレットに表示されるブラウザの一覧から選択してください(図9)。もちろん、インストールされているブラウザしか起動できません。

図10:Touch barの表示
図9:open in browserでブラウザの選択

 設定は、拡張機能のplugin open-in-browserから行えます。設定項目Open-in-browser(open-in-browser.default)でデフォルトブラウザを指定できます。既定値はDefaultであり、この場合はシステムのデフォルトブラウザが使用されます。open in browser自身のデフォルトブラウザを指定でき、その場合には[Set default browser]欄に表6に挙げる値を設定します。

表6:open in browserでブラウザを指定する値
ブラウザ
Chrome chrome, google chrome, google-chrome, gc
Firefox firefox, mozilla firefox, ff
Internet Explorer ie, iexplore
Safari safari
Opera opera
Chromium chromium
Firefox Developer Edition firefox developer, fde, firefox developer edition
Edge edge, msedge, microsoftedge

 open in browserと名乗っているのでWebブラウザ専用と思われがちですが、実際にはファイル拡張子の関連付けに基づいて対応するアプリケーションが起動します。例えばテキストファイル(.txt)の場合は「シンプルテキスト」(macOS)や「メモ帳」(Windows)が起動します。

HTMLファイルをデフォルトブラウザで表示(Open in Default Browser)

 この拡張機能も、編集中のHTMLファイルを表示させるためのものです。open in browserと異なるのは、ショートカットキーに加えてエクスプローラーのコンテキストメニューでのブラウザ起動が可能であること、macOSのTouch barに対応していること(図10)、ローカルHTTPサーバが利用可能なこと、そして多言語対応であることです。デフォルトのブラウザは、システムのデフォルトブラウザをそのまま使います。open in browserのような拡張機能自身のデフォルトブラウザを持つことはできません。このような違いを踏まえて、どちらの拡張機能を使うか選択しましょう。

図9:open in browserでブラウザの選択
図10:Touch barの表示

 ショートカットキーとしては[Command]+[1]/[Control]+[1]が使用できます。コンテキストメニューから開くには、エクスプローラーでファイルを右クリックして、表示されるメニューから[ブラウザで開く]を選択します。「開いているエディター」で開くコンテキストメニューには表示されないので注意してください。

 設定は、拡張機能のOpen in Default Browserから行えます。設定項目[ローカルHTTPサーバーで開く](Open With Local Http Server)で、HTMLファイルをブラウザで開く際にファイルシステムから開くか、HTTPサーバーから開くか指定できます。HTMLコンテンツがJavaScriptを読み込むなどHTTPサーバーを必要とする場合には、このオプションを有効にしておきます。

HTMLファイルをサーバから表示(Live Server)

 上記の2つは、ファイルシステムあるいは簡易的なサーバからHTMLファイルをブラウザで開く拡張機能でした。ここで紹介するRitwick DeyによるLive Serverは、シンプルですが本格的な開発用のHTTPサーバとして機能します。主な機能を挙げておきます。

  • VSCodeのステータスバーから起動と停止が可能
  • カスタマイズ可能なショートカットキーか、コンテキストメニューから起動可能
  • ファイルの変更を検出して再読み込みが可能(監視対象から除外するファイルも指定可能)
  • サーバルート、ポート番号、デフォルトブラウザを変更可能
  • SVG(Simple Vector Graphics)のサポート
  • HTTPSのサポート
  • CORS(Cross-Origin Resource Sharing)に対応
  • Web ExtensionによりPHPなどの動的ページにも対応可能

 ご覧のとおり、実運用にこそ向かないものの、手軽な開発環境のためのHTTPサーバとしての機能は十分に備えていると言えます。特にCORSに対応しているので、Same-Originに制約のあるコンテンツを表示させる必要のある場合には非常に便利です。

 Live ServerはHTTPサーバであるので、ワークグループかフォルダのコンテンツをブラウザに提供するのが基本です。フォルダにインデックスファイル(index.htmlなど)があればそれを開き、ない場合にはリストから開くファイルを選択します。このとき、ブラウザのアドレス欄には「127.0.0.1:5500」のように表示され、サーバから開いていることを確認できます。

 サーバの起動と停止は、ステータスバーの表示をクリックするほか(図11)、コマンドパレットから「Live Server」を検索して表示される選択肢からも可能です。ショートカットキーとしては、起動が[Command]+[L][Command]+[O]/[Alt]+[L][Alt]+[O]、停止が[Command]+[L][Command]+[C]/[Alt]+[L][Alt]+[C]となっています。

図11:Live Serverのステータスバーからの起動と停止
図11:Live Serverのステータスバーからの起動と停止

 エクスプローラーのコンテキストメニューからは、[Open with Live Server]を選択するとサーバを起動でき、ファイルを個別に表示できます(「開いているエディター」で開くコンテキストメニューには表示されないので注意してください)。

 設定は、拡張機能のLive Server Configから行えます。設定項目[Custom Browser](liveServer.settings.CustomBrowser)で、起動するブラウザを選択できます(既定値はnullで、システムのデフォルトブラウザ)。設定項目[Https](liveServer.settings.https)で、HTTPSの有効/無効を切り替えられます(既定値は無効《false》)。有効(true)にすると、証明書ファイルやパスフレーズなどの設定も必要になります。このほか、[Port](liveServer.settings.port)や[Use Local Ip](liveServer.settings.useLocalIp)で待機ポートやローカルIPアドレスの指定も可能です。

次のページ
便利な拡張機能

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
開発用エディタのド定番「VSCode」を使いこなそう連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook <個人紹介> WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/18066 2023/08/25 18:05

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング