2013-02-09 1 views
10

최근에 길고 지루한 작업이 될 Java 코드를 생성하는 데 도움이되는 도구를 작성했습니다. 나는 freemarker를 사용하여 템플릿을 작성합니다. 그러나 템플릿의 모든 공백은 출력에 보존되어 꽤 복잡한 코드가됩니다. 내 템플릿에서 들여 쓰기를 제거하여이 문제를 해결할 수는 있지만 템플릿을 유지하기가 어렵습니다.자신의 프로그램에서 Eclipse 코드 포맷터 사용

이 간단한 예제 템플릿 고려 :

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

내 템플릿이 잘 포맷,하지만 내 코드는 다음과 같이 나온다된다

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

들여 쓰기가 조금 너무 많이, 그것은해야한다 :

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

이렇게하려면 템플릿과 같은 들여 쓰기를 다음과 같이 제거해야합니다.

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

이 간단한 경우 템플릿에서 들여 쓰기를 제거하는 것은 실제로 문제가되지 않지만 복잡한 템플릿은 꽤 읽을 수 없을 것이라고 생각할 수 있습니다.

한 쪽에서는 코드의 형식을 멋지게 만들고 싶지만 다른면에서는 템플릿의 모양도 멋지게 만들고 싶습니다. 나는 이클립스를 IDE로 사용하며 내 (그리고 팀의) 소망에 맞게 완벽하게 커스터마이즈 된 포매터가 내장되어있다. freemarker 템플릿에서 코드를 생성 할 수 있고 후 처리 단계 형식으로 Eclipse의 포맷터로 출력 할 수 있다면 좋을 것입니다.

물론 코드를 생성 한 후에 수동으로 포맷터를 실행할 수는 있지만 실제로이 프로세스를 자동화하고 싶습니다.

간단히 말해서, 내 Java 코드에서 Eclipse의 코드 포맷터를 사용하는 방법을 아는 사람이 있습니까?

+0

어쩌면 [JIndent] (http://www.jindent.com/)와 같은 것을 사용하십시오. – millimoose

+0

유망 해 보입니다. 오픈 API를 기능으로 나열합니다. 그러나, 개인적으로 나는 내 면허가 너무 비싸다. – verhage

+0

자신에게 적합하지만 적어도 매 달 더 많은 비용을 지불하는 직장에서 몇 년 동안 사용할 도구에 대해 ~ 100 달러가 "너무 비싸다"는 것에 동의하지 않습니다. – millimoose

답변

4

자바 코드에서 Eclipse 포맷터를 사용하려면 maven java formatter plugin을 살펴 보는 것이 좋습니다.

Eclipse 코드 포맷 설정 파일을 기반으로 소스 코드를 포맷하는 데 사용할 수있는 maven 플러그인입니다.

maven을 사용하고 싶지 않지만 자신의 코드에 형식 지정 코드를 포함 시키려면 FormatterMojo을 살펴보십시오. 이클립스 코드 포매터를 실행하는 코드가 포함되어 있습니다 (이클립스 라이브러리 사용)

모두 무료이며 오픈 소스입니다.

+0

확실히 확인해 보겠습니다. 꽤 똑바로 보인다 :) – verhage

+0

당신이 대답을 좋아한다면, 그것을 받아들이는 것을 잊지 마라. :) – ddewaele

+0

슬프게도 형식화는 일식과 완전히 같지 않다. 이클립스와 formatter-maven-plugin이 동일한 구성을 사용한다는 사실에도 불구하고 들여 쓰기가 다른 경우가 있습니다. – MrSmith42

관련 문제