ReSharper - सिंगल लाइन के चारों ओर घुंघराले ब्रेसिज़ बल


100

क्या मैं C # कोड को ठीक करने के लिए ReSharper को कॉन्फ़िगर कर सकता हूं जब घुंघराले ब्रेसिज़ को एक-लाइन कोड ब्लॉक को घेरने के लिए उपयोग नहीं किया जाता है, जैसे:

if (blnSomeCondition)
   DoSomething();  // complain

if (blnSomeOtherCondition)
{
   DoSomethingElse(); // don't complain
}

धन्यवाद


3
अच्छा सवाल है, लेकिन पहले वाक्य रचना में क्या गलत है? कर्ल ब्रेसिज़ अनावश्यक हैं।
मीका

43
कुछ डेवलपर्स का तर्क है कि सिंगल-लाइन कोड ब्लॉक के आसपास घुंघराले ब्रेसिज़ को शामिल करना बेहतर अभ्यास है क्योंकि यह अधिक पठनीय और अधिक रखरखाव योग्य हो सकता है।
रयान बर्जर

33
इसके अलावा, मैंने देखा है कि कर्लिंग ब्रेसिज़ का उपयोग न करने पर कितनी बार कीड़े पैदा हुए हैं। कोई बदलाव करता है, अगर देखता है और एक नई लाइन जोड़ता है, यह एहसास नहीं है कि यह सशर्त के हिस्से के रूप में निष्पादित नहीं होगा। यह सूक्ष्म है, लेकिन हुआ है।
हादी हरीरी

2
मुझे वास्तव में पहले प्रारूप में कोई समस्या नहीं है, लेकिन मैं देख सकता हूं कि यह उस परिदृश्य में बग पैदा कर सकता है जिसका हादी ने उल्लेख किया था। हमारी टीम ने फैसला किया है कि यह एक कोडिंग मानक है जिसे हम लागू करना चाहते हैं, यही कारण है कि मैं सवाल पूछता हूं।
Booberry

5
मेरी व्यक्तिगत प्राथमिकता सिंगल लाइन के लिए ब्रेसिज़ का उपयोग नहीं करना है 'यदि है, लेकिन' इफ 'और निम्न स्टेटमेंट को एक ही फिजिकल लाइन पर रखने के लिए, उदाहरण के लिए' इफ '(blnSomeCondition) डू समथिंग ();'।
पॉल रुआन

जवाबों:


148

ReSharper के नए संस्करण में (2016.x) को कोड स्टाइल में स्थानांतरित कर दिया गया है। रिस्पेर 2016.1.1

UPD1: ReSharper 2017.x के लिए रिस्पेर 2017.1.2

UPD2: ReSharper 2018.x के लिए रीशर 2018.1

UPD3: ReSharper 2019.x के लिए रीशर 2019.1

UPD4: ReSharper 2020.x के लिए यहां छवि विवरण दर्ज करें


35

रयान सही है (ध्यान दें कि उसका लिंक R # 2.0 मदद को संदर्भित करता है)। विशिष्ट प्रक्रिया निम्नानुसार है:

  1. ReSharper> Options> Language> C #> Formatting Style> Braces Layout पर जाएं
  2. "बहु-" के लिए "ब्रेसिज़ का उपयोग करें" में "ब्रेसिज़" "सेट करें"
  3. परिवर्तनों को सहेजने के बाद, सुधार के लिए एक गुंजाइश चुनें (एक कोड चयन, फ़ाइल, फ़ोल्डर, प्रोजेक्ट, समाधान - जो कुछ भी आप चाहते हैं) हो सकता है।
  4. ReSharper> टूल्स> क्लीनअप कोड चुनें।
  5. फायदा।

याद रखें कि कोड क्लीनअप कई काम करता है और वे केवल कोड स्वरूपण से संबंधित नहीं होते हैं ( http://www.jetbrains.com/resharper/webhelp/Code_Cleanup__Index.html पर विवरण देखें ), इसलिए बुद्धिमानी से सुविधा का उपयोग करें।


28

गोरोहोह का हल करीब है, लेकिन "मल्टीलाइन के लिए उपयोग ब्रेसिज़" का चयन करने के बजाय मुझे एकल पंक्ति परिदृश्य में ब्रेसिज़ को जोड़ने के लिए मजबूर करने के लिए "ब्रेसिज़ जोड़ें" का चयन करना पड़ा। और मुझे सभी परिदृश्यों को पकड़ने के लिए "फोर्स ब्रेसेस" के तहत सभी छह ड्रॉपडाउन में सेट करना था:

वैकल्पिक शब्द

जब मैं नियम का उल्लंघन किया गया था, तो पीली चेतावनी या लाल त्रुटि करने के लिए मैं क्या उम्मीद कर रहा था कि ReSharper को स्थापित करने में सक्षम होना चाहिए, लेकिन मुझे ऐसा करने का कोई तरीका नहीं मिला। क्योंकि आप सही कह रहे हैं, गोरोहरोह, क्लीनअप कोड बहुत सारी चीजें करता है और मैं एक बार में नियम उल्लंघन को देखने और उसे ठीक करने का विकल्प रखना चाहूंगा।

आपकी सहायताके लिए धन्यवाद!


8

वर्ष 2016.2.2 के लिए

आपको सफाई के लिए अपनी प्रोफ़ाइल को संपादित करना चाहिए। उचित आइटम को "if-else", "for", "foreach", "जबकि", "do-while", "using" में एकल कथनों के लिए Add / Remove ब्रेसिज़ कहा जाता है । यह आइटम C # => कोड शैलियों आइटम के भीतर पाया जा सकता है ।

यदि आइटम की जांच की जाती है, तो ब्रेसिज़ जोड़े जाएंगे; अगर अनियंत्रित, ब्रेसिज़ हटा दिया जाएगा।

ध्यान दें: जोड़ना अब काम नहीं करता है (न जाने क्यों - शायद, रीशर का बहुत ताज़ा संस्करण)। हालाँकि, यदि आप उल्लिखित आइटम को अनचेक करेंगे, तो एकल कथनों के आसपास मौजूद ब्रेसिज़ को हटाया नहीं जाएगा।

UPD: समस्या का हल, इस पोस्ट के अंतर्गत पहले दो टिप्पणियाँ देखें।


2
यह 2016.3.2 में थोड़ा अलग तरीके से काम करता है - विकल्प के तहत, कोड संपादन -> C # -> कोड शैलियों -> ब्रेसिज़ -> में "अगर" कथन पर जाएं , और फिर प्राथमिकता के तहत "हमेशा लागू करें" चुनें। अन्य विकल्प हैं "लागू न करें", "लागू करें यदि शरीर बहु-पंक्ति है", "लागू करें यदि कथन बहु-पंक्ति है", आदि
चैत

अच्छा लगा। धन्यवाद! और इन सेटिंग्स के बाद, मेरे द्वारा वर्णित सफाई ठीक से काम करती है।
जॉर्डन


1

बस अगर यह किसी और को समय बचाने में मदद कर सकता है, तो मेरी कंपनी की एक मशीन पर, सर्गेई सलाह का पालन करना उनके पद की महान गुणवत्ता के बावजूद पर्याप्त नहीं था।

संबंधित सेटअप पर (VS2017, R # 2019, दोनों अप टू डेट) R # साइड की ये सेटिंग्स पहले से ही अच्छी थीं, लेकिन मुझे इसे Visual Studio विकल्पों में भी संशोधित करना पड़ा:

  • विकल्प विंडो में, टेक्स्ट एडिटर पर जाएं -> C # -> कोड शैली -> स्वरूपण -> सामान्य ,
  • चेक " स्वरूपण के दौरान अतिरिक्त कोड सफाई प्रदर्शन करना " और " जोड़ें / एकल लाइन नियंत्रण बयान को निकालने ब्रेसिज़ "

0

खैर इसे फिर से ले जाया जाता है। नया स्थान संस्करण पर सिंटैक्स शैली के अंतर्गत है ReSharper 2020.01

के लिए जाओ ReSharper > Options > Code Editing > C# > Syntax Style > Braces

यहाँ स्क्रीन शॉट से है ReSharper 2020.01

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.