तो, बजना प्रारूप कोड में चारों ओर गड़बड़ और कुछ पैच बना रहा है, यहाँ मेरी दो सेंट है:
बजना प्रारूप पर आधारित है,
libclang
का उपयोग कर एएसटी को पार्स करना, जो मूल रूप से उन्मूलन ट सभी खाली स्थान के
- "unwrapped लाइनों" जो "तार्किक" कोड लाइनों
- नियमों/विन्यास जानकारी को लागू करने में कभी कभी
- स्पिट यह सब वापस छोटी इकाइयों में "unwrapped लाइनों" को विभाजित करने की तरह हैं में टोकन अनुक्रम को तोड़ने नए व्हाइटस्पेस/इंडेंटेशन
इसे मूल व्हाइटस्पेस का सम्मान करना आसान नहीं है, जब आप पहले कोड को पार्स करते हैं तो उस तरह का फेंक दिया जाता है।
जहां यह पंक्ति विराम देता है, सबसे आसानी से
- स्तंभ सीमा
- सेटिंग "बिन पैक पैरामीटर" विकल्प
- टूट जाता है के विभिन्न प्रकार के लिए सेटिंग दंड का उपयोग करके आप यह नियंत्रित कर सकते हैं - - फ़ंक्शन के रिटर्न प्रकार के बाद ब्रेक करें, पहले कॉल पैरामीटर से पहले तोड़ें, एक स्ट्रिंग शाब्दिक तोड़ें, एक टिप्पणी तोड़ें ...
- लाइन के अंत में टिप्पणियां रखकर (क्लैंग प्रारूप टिप्पणी को हटा नहीं सकता है और इसलिए लाइन को विभाजित करना चाहिए)
- बंद बजना-स्वरूप का उपयोग/निर्देशों पर
यहाँ है एक बात आप की कोशिश कर सकते:
std::vector<std::string> get_vec()
{
return std::vector<std::string> { //
"this is a test", //
"some of the lines are longer", //
"than other, but I would like", //
"to keep them on separate lines" //
};
}
// clang-format off
पर इस का लाभ यह है कि, आप बाद में टैब बदलते हैं चौड़ाई या कुछ अन्य विकल्प, वे कोड लाइनें अभी भी उन स्वरूपण परिवर्तनों को प्राप्त करेंगी, इसलिए आपको इसे ठीक करने के लिए // clang-format off
क्षेत्रों में मैन्युअल रूप से जाने की आवश्यकता नहीं है। हालांकि यह अभी भी हैक, वाईएमएमवी का थोड़ा सा है।
आखिरकार, clang-format
पूरे कोड बेस पर एक समान प्रारूप को लागू करने के बारे में बहुत कुछ है, यह सुनिश्चित कर लें कि सभी स्ट्रिंग अक्षर आपके प्रोग्राम में हर जगह एक ही शैली में स्वरूपित हों। यदि आप लाइन-ब्रेक फैसलों पर माइक्रो-स्तरीय नियंत्रण रखना चाहते हैं, तो यह वास्तव में टूल की भावना में नहीं है, और आपको इसे अक्षम करने जैसी चीजें करना होगा।
यह कभी-कभी निराशाजनक esp हो सकता है।
static luaL_Reg const methods[] = {
{"matches", &dispatch::intf_match_unit},
{"to_recall", &dispatch::intf_put_recall_unit},
{"to_map", &dispatch::intf_put_unit},
{"erase", &dispatch::intf_erase_unit},
{"clone", intf_copy_unit},
{"extract", &dispatch::intf_extract_unit},
{"advance", intf_advance_unit},
};
बजना प्रारूप उस पर चलता है, यह आम तौर पर संरेखित करने के लिए नहीं जा रहा है: - जब आप सरणियों के साथ बातें करते हैं और कॉलम गठबंधन या कुछ और करना चाहते हैं उदाहरण के लिए, यहाँ lua सी एपीआई से कुछ प्राकृतिक कोड है सही कॉलम, यह कॉमा के बाद रिक्त स्थान की एक निश्चित संख्या रखने जा रहा है और इसके बारे में आप इसके बारे में ज्यादा कुछ नहीं कर सकते हैं।
या, अगर आपके पास ओपन साथ प्रयोग के लिए 4 x 4 मैट्रिक्स:
constexpr float shadow_skew_hardcoded[16] =
{ 1.0f, 0.0f, 0.0f, 0.0f,
0.5f, 0.5f, 0.0f, 0.0f,
0.0f, 0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 0.0f, 1.0f };
आप इस तरह बातें यह सिर्फ उन्हें वध करने जा रहा है से अधिक बजना प्रारूप को चलने देने के लिए, और afaik वहाँ कोई आसान तरीका करने के लिए है, तो इसे अच्छी तरह से प्रारूपित करें, इसलिए आपको या तो "बहुत छोटी टिप्पणियों" हैक का सहारा लेना होगा, या जब आपके पास ऐसा कुछ हो तो क्लैंग-प्रारूप का उपयोग करें। ये उपकरण की आंतरिक सीमाएं हैं। यदि आप ऐसी चीजों को करने के लिए कभी भी खुश नहीं हैं तो शायद यह आपके लिए उपकरण नहीं है।
अपने विशेष उदाहरण के लिए, 'AllowShortFunctionsOnASingleLine सेट करें: कोई भी' काम नहीं करेगा। – dejvuth
वैसे यह इसे 'मुख्य' खोलने से रोकता है लेकिन मैं सामान्य रूप से वेक्टर प्रारंभिकरण के बारे में अधिक चिंतित हूं। यदि वेक्टर को इस तरह से दूसरे (लंबे) फ़ंक्शन में प्रारंभ किया गया था, तो यह अभी भी अनचाहे हो जाएगा। – zmb
मुझे आश्चर्य है कि विभिन्न "जुर्माना" विकल्पों में बदलाव करने में मदद मिलेगी, लेकिन वे सभी तोड़ने वाली लाइनों से जुड़ी जुर्माना लगती हैं, न कि उन्हें "बेबुनियाद"। – zmb