2017-08-15 15 views
1

今、IntelliJでプログラミング中に自分のHTMLファイルに自己閉鎖タグを置いておきたい。だから、基本的に、私はIntelliJのは、警告として、次のコードスニペットを発見するでしょうIntelliJ構造検索で自己閉鎖HTMLタグを見つけよう

<img src='foo.png' /> 
<br /> 

私はIntelliJの上、構造検索を使用して、任意の自己終了タグを持っているかどうかを判断しようとしています。 $tag$のテキスト制約が[a-zA-Z]ある

<$tag$ /> 

:私は、次のコードを使用しようとしました。

ただし、ファイル内のほとんどすべてのタグと一致します。私が描いた2つの例を強調する方法はありますか?

+0

この単純なケースでは、SSRが過剰なことがあります。あなたは '<.*/>'正規表現でパスで検索しようとしましたか?範囲を特定のHTMLファイルに制限することもできます。 – CrazyCoder

+0

私はそれをやろうとしましたが、検査として正規表現を使用したいと思いますが、IntelliJがそのオプションを持っているとは思いません。純粋な正規表現を検査として使用する方法はありますか? – mtber75

+0

text/regexpが '\ <[a-zA-Z] +。*/\>'として定義されている '$ tag $'で構造検索テンプレートを作成しようとしました。それは '
'をキャプチャする必要がありますが、私のコードでそれをキャプチャしていません。 – mtber75

答えて

2

構造検索&置換は実際にこの種のもののために設計されていません。コードパターンを検索し、スタイルを無視します。しかし、望ましい動作はハックで達成することができます。次のパターンを使用する:

<$tag$> 

これは、すべてのタグに一致するかどうかを示します。 text constraintを追加しますが、次のGroovyスクリプトテキストでscript constraintを使用しないでください:今のパターンが"/>"で終わるすべてのタグを見つける必要があります

tag.parent.text.endsWith("/>") 

+0

ありがとう、私はより適切にスクリプトの制約を使用する方法を学びたいと思います。あなたにこれを教える良い情報源が分かりますか? – mtber75

+0

申し訳ありません。 stackoverflowのstructure-searchタグの下にいくつかの例がありますが、例を調べてみてください。スクリプトの制約により、基本的にIntelliJ IDEAの内部にアクセスすることができます。ここでは、ソースコードを照会するためのHTML PSI API(抽象構文ツリー)を使用しました。このAPIに精通していると多くのことができます。しかし、多くの類似点がありますが、すべての言語には独自のpsiがあります。スクリプトの制約を完全に記述することは、おそらくかなり厚い本を埋めるでしょう。 –

関連する問題