うわー、タイトルはかなり口いっぱいです。説明させてください。ページが.jsp
あります。このページには JavaScript<script ..>
要素があり、JavaScript 内には EL 式 ( ${..}
) があります。コードは次のようになります。
<script type="text/javascript">
jQuery(document).ready(function() {
var HOST_ID = ${host.id};
...
});
</script>
問題:
Eclipse JavaScript フォーマッターは、デフォルト${host.id}
で複数行に展開されます。EL式が何らかの形でJavaScriptオブジェクトとして解釈されていると推測しています。とにかく、タグは次のようになります。
var HOST_ID = $
{
host.id
}
;
=>これは実際にコードを壊します!
複数の行に分割されている場合、タグは有効な EL 式として認識されなくなり、JavaScript コードの実行は例外のスローを停止します。
// @formatter:off
タグ (または)を使用して Java フォーマッタで書式設定アドホックをオフにする方法については知っていon
ますが、Eclipse の JavaScript フォーマッタにはそのようなオプションはありません。
これを修正する (回避策を読む) 唯一の方法は、JavaScript フォーマッターがオブジェクトを展開しないようにすることです。しかし、これには次の 2 つの点で問題があります。
- オブジェクトを展開しないと、非常に煩雑になり、非常に判読不能なコードになる可能性があります。
- 複数行にわたるオブジェクトの展開は、Eclipse JavaScript フォーマッターのデフォルトです。
これは、私のチームのメンバーが.jsp
記述された構造を含むファイルを誤って自動フォーマットすると、コードが黙って壊れることを意味します。それでも有効な JS のように見え、ビルドなどに合格しますが、実行時には機能しません。
誰にもこれに対する解決策はありますか?最善の解決策は、Java フォーマッターで使用されているようなタグを使用して書式設定を何らかの方法で無効にすることです (この解決策は、会社/チーム全体のフォーマッター標準を強制したり、Shift + Ctrl + F を誤って押してしまうことを期待しなくても機能します)。