web-dev-qa-db-fra.com

Formateur Javascript Eclipse (ctrl-shift-f)

Je n'aime pas poser cette question mais j'ai honnêtement cherché un moyen de comprendre cela depuis très longtemps.

Ceci est une question simple. J'utilise NetBeans depuis longtemps, mais j'ai récemment opté pour Eclipse pour plusieurs raisons que je n'entrerai pas. Quoi qu'il en soit, je trouve le comportement de formatage de la source javascript très étrange.

Voici un exemple de bloc de code javascript que j'ai moi-même formaté:

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>';
    });
}

trucs très simples. Maintenant, si je frappe Ctrl+Shift+F pour le formater (car franchement, cette fonctionnalité est un énorme gain de temps) pour des raisons que je ne peux pas comprendre, cela ressemblera maintenant à ceci:

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>';
                    });
}

Pourquoi veut-il déplacer .transaction vers une nouvelle ligne? Il ne se rapproche pas de la largeur de ligne de 80. Il est vraiment désordonné. Il fait de même avec le deuxième .executeSql, et il ne se termine toujours pas correctement. C'est juste très étrange.

Maintenant, bien sûr, je suis au courant de Fenêtre> Préférences> JavaScript> Style de code mais peu importe ce que je semble faire ici résout ce problème. J'espère que quelqu'un a plus d'expérience avec Eclipse pour savoir ce qui ne va pas.

J'ai le Android Dev Tools installé et PDT. Cependant, ce comportement préexiste à l'installation de ces plugins.

Toute aide serait appréciée, merci.

26
Jeff

D'après mon expérience, ce sont les longues lignes incassables qui causent ce problème. Très irritant. Essayez de mettre les constantes de chaîne longue (comme "'CREATE TABLE IF NOT EXISTS calendar (id UNIQUE, summary, description, location, startdate, enddate)'") dans une variable distincte, ou si cela vous dérange vraiment, vous pouvez le séparer et concaténer avec +.

J'ai essayé ceci:

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.

Le problème peut être résolu en accédant

Preferences > JavaScript > Code Style > Formatter

Procéder:

  1. Créez un nouveau profil (puisque vous ne pouvez pas modifier le profil intégré), si vous ne l'avez pas déjà fait, et cliquez sur Edit....
  2. Ouvrez le Line Wrapping tab.
  3. Dans le Maximum line width champ, entrez 9999.
  4. Cliquez sur Apply et Ok.

Le problème se présente à nouveau pour les lignes de code qui ont plus de 9999 caractères, mais je peux vivre avec cela.

47
Luca Fagioli

Préférences> JavaScript> Style de code> Formateur> Habillage de ligne (onglet)

décocher >> préférez encapsuler les expressions externes (garder l'expression imbriquée sur une seule ligne)

4
user1493328

J'ai eu le même problème. Ce que j'ai fait a été d'installer le Aptana Studio Plugin et de commencer à utiliser l'éditeur JavaScript fourni. Il est beaucoup plus agréable que celui fourni avec WTP.

3

J'ai également trouvé cela, et c'est l'une des principales raisons pour lesquelles je suis largement revenu à NetBeans.

Je n'ai pas la solution, mais je peux vous donner quelques astuces générales qui ont fonctionné pour moi, du moins dans une certaine mesure.

  1. Au lieu de crochets comme celui-ci:}); essayez de mettre chacun sur une nouvelle ligne.
  2. Au lieu d'analyser des paramètres comme celui-ci:

    calendrier (id UNIQUE, résumé, description, emplacement, date de début, date de fin)

peut-être essayer

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

3. Enfin, vous pouvez essayer de mettre le + sur une nouvelle ligne lors de la concaténation de chaînes.

Comme je l'ai dit, je sais que cela ne résout pas votre problème, mais j'ai pensé au moins que cela pourrait vous aider jusqu'à ce qu'une meilleure solution arrive.

Bonne chance.

0
NotMyName