VScode のコメントアウト(erb)改造したい

最近SublimeTextからVScodeテキストエディタを変えようとしています。

私はRubyRailsを主に使っているのですが、.erbファイルをVScodeで書いているときに、コメントアウトが使いづらい。

 

というのも、erbのコメントアウト・ショートカットキーでは<%# ~ %>で囲まれます。(ちなみにSublimeTextでは<!-- -->でした)しかし、これしか出力されないのです。

 

もし書いているコードの中に

<%= link_to "ログイン", new_user_session_path, class: 'post' %>

のようにerbテンプレートで囲まれている部分があったとして、、、この部分も含んでコメントアウトしたい!

<div class="grid-6">
<%= link_to "ログイン", new_user_session_path, class: 'post' %>
<%= link_to "新規登録", new_user_registration_path, class: 'post' %>
</div>

この四行を選択してショートカットキーをおすと、こうなる。

<%# <div class="grid-6">
<%= link_to "ログイン", new_user_session_path, class: 'post' %>
<%= link_to "新規登録", new_user_registration_path, class: 'post' %>
</div> %>
 

前二行の途中でコメントアウトが終わって、最後に%>が加わる。

そうなんです。”ログイン”のところの閉じタグ%>に反応してそこまででコメントアウトが終わってしまっています、

 

もともとRubyコメントアウトでは、この問題を解消するためにerbテンプレートの部分は <% if false %>〜<% end %> で囲んでコメントアウトするようになっています。

 

しかしこれがショートカットで出てこないので、問題なのです。困った。

私が試したところ、VScodeで3つあるコメントアウトのショートカットは全て<%# ~ %>になるので、この問題を解決できません。

 

 この解決策は「VScodeコメントアウトのショートカットで出力されるコマンドを変更する。」だと思うんです。でも調べていますがまだ策が見つかっていません。これが見つかり次第、追記します。

 

 いまのところ、<% if false %><% end %>のオリジナル変換キーを作る(ユーザー辞書登録てきな)くらいしか思いついておりません。その方法をまとめます。

 

 

●ユーザースニペットに登録

 VScode用のユーザー辞書登録のようなものです。早速登録します。

 

① [メニュー]⇨ [基本設定]⇨ [ユーザースニペット]を選択

f:id:kc-masui:20190602121729p:plain

 

② 検索バーで「erb.json」を探して選択

f:id:kc-masui:20190602122035p:plain

 

③ erb.json ファイルの中に以下の記述を追加

f:id:kc-masui:20190602122202p:plain

 

"Add comment": {
    "prefix": "comment",
    "body": [
        "<% if false %>",
        " $1",
        "<% end %>"
    ],
    "description": "crate comment"
}

これです。

これにより、prefixのcomment と入力すると予測変換に<% if false %><% end %>が登場します。tabキーで選択すると出力されます。

 

④ comment ⇨ tabキーで出力

f:id:kc-masui:20190602122724p:plain

こんな感じ。

 

とりあえず、これが今のところの最短ルートですかね。いちいち<% if false %><% end %>を打ち込むの面倒臭いですから。事前に登録しておくのがいいですよね。

 

 さて、きちんとコメントアウト・ショートカットーの出力を改造する方法も探しておこう。

 

 以上です。