web-dev-qa-db-ja.com

Eclipse Javascriptフォーマッター(ctrl-shift-f)

私はこの質問をするのは好きではありませんが、非常に長い間、正直にこれを理解する方法を探していました。

これは簡単な質問です。私は長い間NetBeansを使用してきましたが、最近、いくつかの理由で、Eclipseに切り替えませんでした。とにかく、JavaScriptソースのフォーマット動作は非常に奇妙だと思います。

次に、私が自分でフォーマットしたJavaScriptコードのサンプルブロックを示します。

function buildDatabase () {
    db.transaction(function (tx) {
        tx.executeSql('DROP TABLE IF EXISTS calendar');
        tx.executeSql('CREATE TABLE IF NOT EXISTS calendar(id UNIQUE, summary, description, location, startdate, enddate)');
    }, function (err) {
        document.querySelector('#debugLog').innerHTML += '<p><code>' + err.message + '</code></p>';
    });
}

非常にシンプルなもの。今、私がヒットした場合 Ctrl+Shift+F それをフォーマットするために(率直に言って、この機能は時間を大幅に節約できるため)、理由が理解できないため、次のようになります。

function buildDatabase() {
    db
            .transaction(
                    function(tx) {
                        tx.executeSql('DROP TABLE IF EXISTS calendar');
                        tx
                                .executeSql('CREATE TABLE IF NOT EXISTS calendar(id UNIQUE, summary, description, location, startdate, enddate)');
                    },
                    function(err) {
                        document.querySelector('#debugLog').innerHTML += '<p><code>'
                                + err.message + '</code></p>';
                    });
}

.transactionを新しい行に移動したいのはなぜですか?線の幅が80に近くなることはありません。 2番目の.executeSqlでも同じことを行っていますが、適切にラップされません。それは非常に奇妙です。

もちろん、私はWindow> Preferences> JavaScript> Code Styleを知っていますが、ここで何をしたように見えても、これを修正します。誰かがEclipseの経験を積んで、何が悪いのかを知ってほしいと思っています。

Android Dev Toolsがインストールされ、PDTを使用しています。ただし、この動作はこれらのプラグインのインストールに先立って存在します。

どんな助けでも感謝します、ありがとう。

26
Jeff

私の経験から、この問題を引き起こすのは長くて壊れない線です。非常にイライラします。長い文字列定数(「 'CREATE TABLE IF NOT EXISTS calendar(id UNIQUE、summary、description、location、startdate、enddate)'」など)を別の変数に入れてみてください。または、本当にバグがある場合は、バラバラにすることができます+と連結します。

私はこれを試しました:

function buildDatabase() {
    var sql1 = 'CREATE TABLE IF NOT EXISTS calendar(id UNIQUE, summary, description, location, startdate, enddate)';

    db.transaction(function(tx) {
        tx.executeSql('DROP TABLE IF EXISTS calendar');
        tx.executeSql(sql1);
    }, function(err) {
        document.querySelector('#debugLog').innerHTML += '<p><code>'
            + err.message + '</code></p>';
    });
}
3
Steve H.

アクセスすることで問題を解決できます

Preferences > JavaScript > Code Style > Formatter

続行:

  1. まだ作成していない場合は、新しいプロファイルを作成します(組み込みのプロファイルは編集できないため)、[Edit...]をクリックします。
  2. Line Wrappingタブを開きます。
  3. Maximum line widthフィールドに9999と入力します。
  4. Apply、およびOkをクリックします。

この問題は、9999文字を超えるコード行で再び発生しますが、それでも問題ありません。

47
Luca Fagioli

設定> JavaScript>コードスタイル>フォーマッタ>行の折り返し(タブ)

チェックを外す >>外側の式のラップを優先(ネストされた式を1行に保つ)

4
user1493328

私も同じ問題を抱えていました。私がしたことは Aptana Studioプラグイン をインストールして、付属のJavaScriptエディターの使用を開始することでした。 WTPに付属しているものよりもはるかに優れています。

私もこれを見つけました。それが、NetBeansに大きく戻った主な理由の1つです。

私には解決策はありませんが、少なくともある程度はgeneralのヒントが私に役立ちました。

  1. このような括弧の代わりに:});それぞれを新しい行に入れてください。
  2. 次のようにパラメーターを解析する代わりに:

    カレンダー(ID一意、概要、説明、場所、開始日、終了日)

たぶん試す

calendar(id 
UNIQUE, 
summary, 
description, 
location, 
startdate, 
enddate)

3.最後に、文字列を連結するときに、+を新しい行に配置することもできます。

私が言ったように、これはあなたの問題を解決しないことを知っています、しかし私はより良い解決が来るまであなたに役立つかもしれないと私は考えました。

幸運を祈ります。

0
NotMyName