हाल ही में मैंने कुछ टूल्स लिखे हैं जो जावा कोड उत्पन्न करने में मेरी मदद करते हैं जो अन्यथा लंबे और कठिन कार्य होंगे। मैं टेम्पलेट्स लिखने के लिए फ्रीमार्कर का उपयोग करता हूं। हालांकि, टेम्पलेट्स में सभी व्हाइटस्पेस आउटपुट में संरक्षित है, जिसके परिणामस्वरूप काफी गन्दा कोड है। मैं इसे ठीक करने के लिए अपने टेम्पलेट्स से इंडेंटेशन को हटा सकता हूं, लेकिन यह मेरे टेम्पलेट्स को अस्पष्ट बनाता है।अपने प्रोग्राम से ग्रहण कोड फ़ॉर्मेटर का उपयोग
इस सरल उदाहरण टेम्पलेट पर विचार करें:
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>
}
इस सरल मामले यह वास्तव में मेरे टेम्पलेट से खरोज दूर करने के लिए एक समस्या नहीं है, लेकिन आप जटिल टेम्पलेट्स कल्पना काफी अपठनीय हो सकता है के लिए।
एक तरफ मैं वास्तव में चाहता हूं कि मेरा कोड अच्छी तरह से स्वरूपित हो, लेकिन दूसरी तरफ मैं अपने टेम्पलेट्स को अच्छी तरह से स्वरूपित करना चाहता हूं। मैं ग्रहण के रूप में ग्रहण का उपयोग करता हूं, जिसमें अंतर्निर्मित फॉर्मेटर पूरी तरह से मेरी (और मेरी टीम की) इच्छाओं के अनुकूल है। यह बहुत अच्छा होगा अगर मैं किसी भी तरह से फ्रीमार्कर टेम्पलेट्स से कोड उत्पन्न कर सकता हूं और एक पोस्ट प्रोसेसिंग चरण प्रारूप के रूप में एक्लीप्से के फॉर्मेटर के साथ आउटपुट कर सकता हूं।
मैं निश्चित रूप से अपना कोड उत्पन्न करने के बाद मैन्युअल रूप से फॉर्मेटर चला सकता हूं, लेकिन मैं वास्तव में इस प्रक्रिया को स्वचालित करना चाहता हूं।
तो, लंबी कहानी छोटी है, क्या किसी को पता है कि मैं अपने जावा कोड के भीतर ग्रहण कोड कोडेटर का उपयोग कैसे कर सकता हूं?
शायद कुछ [जेइंडेंट] (http://www.jindent.com/) – millimoose
का उपयोग करने का वादा करता है, यह एक खुली एपीआई को इसकी विशेषताओं के रूप में सूचीबद्ध करता है। हालांकि, व्यक्तिगत रूप से मुझे अपने उद्देश्य के लिए थोड़ा लाइसेंस बहुत महंगा लगता है। – verhage
अपने आप को सूट करें, लेकिन मैं इस बात से सहमत नहीं हूं कि एक उपकरण के लिए $ 100 जो आप नौकरी में कुछ सालों तक उपयोग करेंगे जो कम से कम प्रत्येक महीने परिमाण का एक आदेश "बहुत महंगा" भुगतान करता है। – millimoose