2013-03-01 5 views
5

Ho problemi a ottenere il mio JavaScript bene per il formato di eclissi. In questo primo esempio, si comporta come previsto (non la lunghezza del secondo url):Eclipse JavaScript formatter pazzesco (cioè troppo imbottito)

Behaving good

ogni volta che ho un URL più lungo, eclissi impazzisce formattare il mio codice e ottengo chilo in più in tutto il mondo, come nell'esempio riportato di seguito:

Behaving bad

Perché il formattatore JavaScript comportarsi in questo modo, e come posso risolvere il problema?

(Solo nel caso: non ho installato alcun plugin formattatore, mi basta usare il default che viene fornito con Eclipse Juno)

+0

Non inserire URL lunghi nel mezzo delle funzioni. Definiscili da qualche altra parte. –

+0

Ci ho già pensato, ma davvero non voglio avere un gruppo di variabili stringa. So che potrei creare un oggetto JSON, ma comunque, una piattaforma così grande come Eclipse non dovrebbe comportarsi in questo modo. – Twinone

+0

Non c'è bisogno di hackerare! Dai un'occhiata alla mia risposta. –

risposta

10

La lunga url nell'esempio colpisce "$ .ajax (..." e "$ (function() ...".

Per quanto riguarda "$ (function() ...", il l'impostazione è in Preferenze/JavaScript/Stile codice/Formatter/Line Wrapping/Funzione Chiamate/Argomenti. "Non avvolgere" disponibile

Come per "$ .ajax (...", è simile a "Qualificato invocazione 'nel formattatore Java. (Preferenze/Java/Stile codice/Formatter/Line Wrapping/Chiamate di funzione) Sfortunatamente, JSDT non ha un'interfaccia utente per questo (Preferenze/JavaScript/Stile codice/Formatter/Line Wrapping/Chiamate di funzione)

Questo è un trucco per JSD T 1.4.1 (WTP R3.4.1).

  1. Avviare Eclipse
  2. Aprire Preferenze/JavaScript/Codice Stile/Formatter
  3. Clicca
  4. nome del profilo di input 'Nuovo' come volete, selezionare 'Eclipse [Built-in]' (o convenzioni JavaScript) in casella di riepilogo, deselezionare 'Aprire la finestra di modifica ora' (non c'è bisogno di modificare), e fare clic su 'OK'
  5. Chiudi preferenze e chiudere Eclipse
  6. aperta seguente file con un editor di testo
    workspace/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.wst.jsdt.core.prefs
  7. Find seguente riga e sostituire 16 al 0
    org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation=16
  8. Salva esso
  9. Avviare Eclipse

(visto che hai il tuo profilo, forse 1-5 sono inutili)

Questo hack verrà ripristinato quando hai modificato le impostazioni del formattatore nelle preferenze. - (Per evitare la sovrascrittura, tutto ciò che devi fare è esportare il tuo profilo di formattazione, modificare l'XML e cambiare "org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" a 0. Salvare e reimportare di nuovo ora. permanente.

io non credo che questo soddisfa le vostre esigenze, è meglio utilizzare un altro formattatore (3 ° plugin di partito), immagino.

+0

Non c'è bisogno di hackerare. [Vedi la mia risposta] (http://stackoverflow.com/a/16187151/636561). –

1

ho trovato una soluzione temporanea:

  1. Vai a Window -> Preferences -> JavaScript -> Code Style -> Formatter

  2. Impostare il profilo attivo su convenzioni JavaScript.

  3. Clicca Modifica

  4. Nella scheda Indentation, situato a soliTab policy a Spaces.

  5. Impostare sia Indentation size e Tab size a .

  6. Poiché non è possibile sovrascrivere i profili predefiniti, modificare il nome del profilo e salvare.

  7. Press Ctrl +Maiusc +F e godere.

NOTA: Non mi piace avere 3 spazi, preferisco preferisco mio buon vecchio 4 spazi, ma questa è una soluzione temporanea, fino a quando qualcuno trova un modo migliore per risolvere questo problema. Mi sentivo come se condividessi.

+0

Probabilmente la soluzione dipende dalla lunghezza della stringa. Rendi la corda più lunga e accadrà di nuovo. Ha a che fare con il margine della pagina, se vai oltre. Correggo questo inserendo "+" al centro dei letterali a stringa lunga. È una soluzione schifosa ma funziona. – codefactor

11

Il problema può essere risolto accedendo

Preferences > JavaScript > Code Style > Formatter 

Questi sono i passaggi:

  1. Creare un nuovo profilo (poiché non è possibile modificare quello incorporato), se non lo si è già fatto, e fare clic su Edit....
  2. Apre la scheda Line Wrapping.
  3. Nel campo Maximum line width, immettere .
  4. Fare clic su Apply e Ok.

Il problema si presenta di nuovo per le righe di codice che hanno più di 9999 caratteri, ma posso conviverci.

+0

In realtà ho provato anche quello, ma in realtà sto solo rimandando il problema a quando hai una stringa di 500 lunghezze, quindi le parentesi si comportano ancora male. – Twinone

+0

Personalmente preferisco questo su un hack, che comunque rappresenta una soluzione temporanea, fino a quando è necessario modificare le impostazioni del formattatore per qualsiasi motivo. Ho modificato la mia risposta per inserire il valore massimo ammesso da Eclipse: da 500 a 9999. –

+0

Grazie, questo funziona per me –