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?
Forse usare qualcosa come [JIndent] (http://www.jindent.com/) – millimoose
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
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