2013-02-09 12 views
10

हाल ही में मैंने कुछ टूल्स लिखे हैं जो जावा कोड उत्पन्न करने में मेरी मदद करते हैं जो अन्यथा लंबे और कठिन कार्य होंगे। मैं टेम्पलेट्स लिखने के लिए फ्रीमार्कर का उपयोग करता हूं। हालांकि, टेम्पलेट्स में सभी व्हाइटस्पेस आउटपुट में संरक्षित है, जिसके परिणामस्वरूप काफी गन्दा कोड है। मैं इसे ठीक करने के लिए अपने टेम्पलेट्स से इंडेंटेशन को हटा सकता हूं, लेकिन यह मेरे टेम्पलेट्स को अस्पष्ट बनाता है।अपने प्रोग्राम से ग्रहण कोड फ़ॉर्मेटर का उपयोग

इस सरल उदाहरण टेम्पलेट पर विचार करें:

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> 
} 

इस सरल मामले यह वास्तव में मेरे टेम्पलेट से खरोज दूर करने के लिए एक समस्या नहीं है, लेकिन आप जटिल टेम्पलेट्स कल्पना काफी अपठनीय हो सकता है के लिए।

एक तरफ मैं वास्तव में चाहता हूं कि मेरा कोड अच्छी तरह से स्वरूपित हो, लेकिन दूसरी तरफ मैं अपने टेम्पलेट्स को अच्छी तरह से स्वरूपित करना चाहता हूं। मैं ग्रहण के रूप में ग्रहण का उपयोग करता हूं, जिसमें अंतर्निर्मित फॉर्मेटर पूरी तरह से मेरी (और मेरी टीम की) इच्छाओं के अनुकूल है। यह बहुत अच्छा होगा अगर मैं किसी भी तरह से फ्रीमार्कर टेम्पलेट्स से कोड उत्पन्न कर सकता हूं और एक पोस्ट प्रोसेसिंग चरण प्रारूप के रूप में एक्लीप्से के फॉर्मेटर के साथ आउटपुट कर सकता हूं।

मैं निश्चित रूप से अपना कोड उत्पन्न करने के बाद मैन्युअल रूप से फॉर्मेटर चला सकता हूं, लेकिन मैं वास्तव में इस प्रक्रिया को स्वचालित करना चाहता हूं।

तो, लंबी कहानी छोटी है, क्या किसी को पता है कि मैं अपने जावा कोड के भीतर ग्रहण कोड कोडेटर का उपयोग कैसे कर सकता हूं?

+0

शायद कुछ [जेइंडेंट] (http://www.jindent.com/) – millimoose

+0

का उपयोग करने का वादा करता है, यह एक खुली एपीआई को इसकी विशेषताओं के रूप में सूचीबद्ध करता है। हालांकि, व्यक्तिगत रूप से मुझे अपने उद्देश्य के लिए थोड़ा लाइसेंस बहुत महंगा लगता है। – verhage

+0

अपने आप को सूट करें, लेकिन मैं इस बात से सहमत नहीं हूं कि एक उपकरण के लिए $ 100 जो आप नौकरी में कुछ सालों तक उपयोग करेंगे जो कम से कम प्रत्येक महीने परिमाण का एक आदेश "बहुत महंगा" भुगतान करता है। – millimoose

उत्तर

4

यदि आप अपने स्वयं के जावा कोड से एक्लिप्स फॉर्मेटर का उपयोग करना चाहते हैं तो मेरा सुझाव है कि आप maven java formatter plugin पर एक नज़र डालें।

यह एक मैवेन प्लगइन है जिसका उपयोग ग्रहण कोड स्वरूपण सेटिंग्स फ़ाइलों के आधार पर स्रोत कोड को प्रारूपित करने के लिए किया जा सकता है।

यदि आप मेवेन का उपयोग नहीं करना चाहते हैं, लेकिन अपने कोड में स्वरूपण कोड एम्बेड करना चाहते हैं, तो FormatterMojo पर एक नज़र डालें। इसमें कोड शामिल है जो ग्रहण कोड फॉर्मेटर (ग्रहण पुस्तकालयों का उपयोग करके)

यह सभी निःशुल्क और मुक्त स्रोत है।

+0

मैं निश्चित रूप से इसे जांचने जा रहा हूं। बहुत सरल लगता है :) – verhage

+0

यदि आपको उत्तर पसंद है, तो इसे स्वीकार करना न भूलें :) – ddewaele

+0

अफसोस की बात यह है कि स्वरूपण पूरी तरह से ग्रहण के समान नहीं है। मेरे पास ऐसे मामले हैं जहां इस तथ्य के बावजूद इंडेंट अलग है कि ग्रहण और फॉर्मेटर-मैवेन-प्लगइन दोनों एक ही कॉन्फ़िगरेशन का उपयोग करते हैं। – MrSmith42

संबंधित मुद्दे