2013-02-09 14 views
10

Recentemente ho scritto alcuni strumenti che mi aiutano a generare codice Java per attività che altrimenti sarebbero lunghe e noiose. Uso freemarker per scrivere modelli. Tuttavia, tutti gli spazi bianchi nei modelli vengono conservati nell'output, risultando in un codice piuttosto disordinato. Potrei rimuovere il rientro dai miei modelli per risolvere il problema, ma ciò rende i miei modelli non più mantenibili.Utilizzo del programma di formattazione del codice Eclipse dal proprio programma

Si consideri questo semplice modello di esempio:

public class MyTestClass 
{ 
    <#list properties as p> 
     private String ${p.name}; 
    </#list> 
} 

Il mio modello è ben formattato, ma il mio codice viene fuori come questo:

public class MyTestClass 
{ 
     private String prop1; 
     private String prop2; 
     private String prop3; 
} 

rientro è un po 'troppo, dovrebbe essere:

public class MyTestClass 
{ 
    private String prop1; 
    private String prop2; 
    private String prop3; 
} 

Per fare questo, devo rimuovere il rientro dal mio modello in questo modo:

public class MyTestClass 
{ 
    <#list properties as p> 
    private String ${p.name}; 
    </#list> 
} 

Per questo semplice caso non è davvero un problema rimuovere il rientro dal mio modello, ma è possibile immaginare che i modelli complessi diventino illeggibili.

Da un lato voglio davvero che il mio codice sia ben formattato, ma dall'altro lato vorrei che anche i miei modelli fossero ben formattati. Uso Eclipse come IDE, con formattatore integrato completamente personalizzato per i desideri del mio (e del mio team). Sarebbe bello se potessi in qualche modo generare codice dai template di freemarker e come formato di post-elaborazione il suo output con il formattatore di Eclipse.

Posso ovviamente eseguire il formattatore manualmente dopo aver generato il mio codice, ma voglio veramente automatizzare questo processo.

Quindi, per farla breve, qualcuno sa come posso utilizzare il formattatore di codice di Eclipse all'interno del mio codice Java?

+0

Forse usare qualcosa come [JIndent] (http://www.jindent.com/) – millimoose

+0

Sembra promettente, elenca una API aperta come le sue caratteristiche. Tuttavia, personalmente trovo la sua licenza un po 'troppo costosa per il mio scopo. – verhage

+0

Adatta te stesso, ma non sono d'accordo che ~ $ 100 per uno strumento che userai per alcuni anni in un lavoro che paga almeno un ordine di grandezza in più ogni mese è "troppo costoso". – millimoose

risposta

4

Se si desidera utilizzare il formatter Eclipse dal proprio codice Java, suggerisco di dare un'occhiata a il maven java formatter plugin.

È un plug-in maven che può essere utilizzato per formattare il codice sorgente in base ai file di impostazioni di formattazione del codice Eclipse.

Se non si desidera utilizzare Maven ma si desidera incorporare il codice di formattazione nel proprio codice, dare un'occhiata allo FormatterMojo. Contiene il codice che avvia Ecatterse Code Formatter (utilizzando le librerie Eclipse)

È tutto gratuito e open source.

+0

Ho intenzione di provarlo. Sembra abbastanza semplice :) – verhage

+0

se ti piace la risposta, non dimenticarti di accettarla :) – ddewaele

+0

Purtroppo la formattazione non è totalmente la stessa di Eclipse. Ho casi in cui l'indentazione è diversa nonostante il fatto che sia eclipse che il plugin form-maven utilizzino la stessa configurazione. – MrSmith42

Problemi correlati