2011-06-20 11 views
3
私は、コマンドラインを介してjsbeautifier使用しています

(http://jsbeautifier.org/)と、それはそれ猫よりも見事に他の作品私の長いjqueryのチェーン文:の連鎖jsbeautify jqueryの

$('#foo').closest('div') 
     .closest('input') 
     .val(); 

へ:

$('#foo').closest('div').closest('input').val(); 
明らか

は、少しシンプルthatsのが、時には連鎖が少し長くなるか、そのAN if文のような:

if ((foo === bar) && 
    c > 5 && 
    d != 2) 

として、それが終わる:

if ((foo === bar) && c > 5 && d != 2) 

は、誰もが、私はVIMを使用して(私はそれがない限りのAptanaのようなIDEのソリューションを使用することを希望されないこのことを経験し、ビューティを修正または回避策または代替パーサを知っていますコマンドライン経由で呼び出すことができます)?あるいは、長いif条件を避けるためにコードを調整する必要がありますか(そして、その場合は、それをより読みやすいものに抽象化する最良の方法は何ですか?)

ありがとうございます!

+0

私はこれを自分自身で調べることを意味してきました+1 – Zevan

+0

スター付き、いつも私を悩ませました。 – adardesign

答えて

0

長いif条件は、読み戻しおよびデバッグが非常に困難です。あなたは次のことを試みることができる:

var matchesBar = (foo === bar), 
    greaterThenFive = (c > 5), 
    notTwo = (d != 2); 

if (matchesBar && greaterThenFive && notTwo) { 
    // Do stuff 
} 

あなたが変数にあなたがtruthy部品とそれらの比較のうち、作業を分離意味のある名前を与え、そしてif文が読み少し簡単になります。

これはあなたの質問に直接答えるものではありません:jsbeautifier他の回避策がない場合は、読みやすさに役立つかもしれません。

0

コマンドラインで-Bまたは--break-chained-methodsを渡して、改行を維持することができます。

ifなどの文の場合は、制限に達すると、-wまたは--wrap-line-lengthを使用して改行してください。それ以外source -B, --break-chained-methods Break chained method calls across subsequent lines -w, --wrap-line-length Maximum characters per line (0 disables) [250]

から

は、あなたのコードに応じて、そのことについては、長いifまたは任意のステートメントを持たないために、常に優先です。私は個人的に80文字の制限内に収まるようにしようとしますが、時には長い文を受け入れる必要があります(特にレガシープロジェクトを扱う場合)。