26

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

これは簡単な質問です。私は長い間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でも同じことを行っていますが、それでも正しくラップされません。それは非常に奇妙です。

もちろん、ウィンドウ>設定> JavaScript>コードスタイルを認識していますが、ここで何をしているように見えても、これは修正されます。誰かがEclipseの経験を積んで、何が悪いのかを知ってくれることを願っています。

AndroidDevToolsとPDTをインストールしています。ただし、この動作は、これらのプラグインのインストールにすでに存在します。

どんな助けでもありがたいです、ありがとう。

4

5 に答える 5

47

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

Preferences > JavaScript > Code Style > Formatter

続行:

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

9999文字を超えるコード行で問題が再び発生しますが、私はそれで問題を解決できます。

于 2013-04-24T08:33:39.950 に答える
4

私の経験から、この問題を引き起こすのは長くて壊れない線です。非常に刺激的です。長い文字列定数(「'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>';
    });
}
于 2013-02-11T22:06:12.830 に答える
4

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

チェックを外す>>外部式の折り返しを優先する(ネストされた式を1行に保持)

于 2014-09-27T03:24:47.513 に答える
3

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

于 2013-02-11T21:53:06.443 に答える
0

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

私には解決策がありませんが、少なくともある程度は、私のために働いたいくつかの一般的なヒントを与えることができます。

  1. このような角かっこの代わりに:}); それぞれを新しい行に配置してみてください。
  2. このようなパラメータを解析する代わりに:

    カレンダー(id UNIQUE、要約、説明、場所、開始日、終了日)

多分試してみてください

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

   3.最後に、文字列を連結するときに、新しい行に+を付けてみることができます。

私が言ったように、これはあなたの問題を解決しないことを私は知っています、しかし私は少なくともより良い解決策が来るまであなたを助けるかもしれないと思いました。

幸運を祈ります。

于 2013-02-11T06:55:42.777 に答える