2010-03-14 16 views
12

मेरे पास एक कोडबेस है जो कई लोगों द्वारा छुआ है। जबकि अधिकांश लोग कोड को अच्छी तरह से स्वरूपित रखने के लिए प्रयास करते हैं (उदाहरण के लिए लगातार इंडेंटेशन और ब्रेसिज़ का उपयोग), कुछ नहीं करते हैं, और यहां तक ​​कि जो लोग करते हैं वे हमेशा ऐसा नहीं कर सकते हैं क्योंकि हम सभी अलग-अलग संपादकों का उपयोग करते हैं, इसलिए रिक्त स्थान बनाम सेटिंग्स टैब अलग हैं।क्या सी और सी ++ के लिए कोई लिंट टूल है जो स्वरूपण की जांच करता है?

वहाँ किसी भी मानक फाहा उपकरण है जो चेकों कि कोड को ठीक से स्वरूपित किया गया है, लेकिन वास्तव में यह परिवर्तन नहीं करता है (जैसे indent लेकिन यह है कि केवल त्रुटियों और चेतावनियों रिटर्न)?

इस सवाल का आम तौर पर दिए जा सकता है, मेरी ध्यान, C और C++ पर है क्या इस परियोजना में लिखा है, क्योंकि है कि

+1

फ़ाइल की प्रतिलिपि बनाएँ, उस पर इंडेंट लागू करें, फिर दोनों को अलग करें? – kennytm

+0

मैं बिल्ड प्रक्रिया के हिस्से के रूप में इसे स्वचालित रूप से करना चाहता हूं। मैं बस सोच रहा हूं कि कोई बेहतर तरीका है या नहीं। –

उत्तर

3

लिनक्स कर्नेल के लिए एक उपकरण है कि वास्तव में यह करता है का उपयोग करता है -। यह checkpatch कहा जाता है। आपको को अपने कोडिंग मानकों की बजाय जांचने के लिए इसे संशोधित करना होगा, लेकिन यह काम करने का एक अच्छा आधार हो सकता है। (यह सी ++ के बजाय सी कोड के लिए भी डिज़ाइन किया गया है)।

+0

मानक लिनक्स वितरण का यह हिस्सा है? –

+0

नहीं, लेकिन यह सिर्फ एक पर्ल स्क्रिप्ट है (मेरे उत्तर में लिंक पर उपलब्ध है: http://www.kernel.org/pub/linux/kernel/people/apw/checkpatch/) – caf

1

ऐसे कई प्रोग्राम हैं जो आपके लिए स्वचालित रूप से सहेजने (जैसे एक्लिप्स) पर स्वरूपण कर सकते हैं। आपके पास प्रारूप सेटिंग्स हो सकती हैं जो सभी समान प्रारूपण सुनिश्चित करने के लिए उपयोग कर सकते हैं।

कोड होने पर स्वचालित रूप से ऐसे स्वरूपण को लागू करना भी संभव है। जब आप एसवीएन का उपयोग करते हैं, तो ऐसा करने के लिए सिस्टम को svn hooks कहा जाता है। यह मूल रूप से एक प्रोग्राम शुरू होता है जब एक प्रतिबद्धता होती है तो प्रारूपण (या जांच और अस्वीकार) को संसाधित करने के लिए।

This site बताता है कि आप अपना खुद का तरीका कैसे बना सकते हैं। लेकिन यह भी करने के लिए पहले से मौजूद हैं।

+4

ध्यान दें कि एसवीएन के लिए, फ़ाइलों को बदलना प्री-प्रतिबद्ध हुक की अनुशंसा नहीं की जाती है: http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks – sbi

+1

आप सही हैं, इनकार करना बेहतर है फ़ॉर्मेटिंग गलत होने पर प्रतिबद्ध है (लेकिन यह केवल तभी काम करता है जब सभी स्वरूपण स्वचालित हो) – Thirler

+2

एसवीएन का उपयोग न करने की अनुशंसा की जाती है (लिनस टोरवाल्ड्स गिट की सिफारिश करता है :) – Frank

7

Google cpplint का उपयोग करता है। यह उनका style guide है।

+3

बहुत बुरा है कि Google का cpplint आसानी से कॉन्फ़िगर नहीं किया गया है। – dalle

1

Vera++ पर एक नज़र डालें, इसमें rules पहले से ही उपलब्ध है लेकिन अच्छा हिस्सा यह है कि आप उन्हें संशोधित कर सकते हैं या अपना खुद का लिख ​​सकते हैं।

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