दृश्य स्टूडियो, प्रति समाधान इंडेंटेशन सेटिंग्स


89

मैं अलग-अलग चीजों के एक जोड़े पर काम कर रहा हूं और कुछ टैब का उपयोग करते हैं, कुछ इंडेंट के लिए 2 स्पेस का उपयोग करते हैं, दूसरे यूजर्स इंडेंट के लिए 4 स्पेस आदि।

Visual Studio में इसे सेट करने का विकल्प Tools-> Options-> Text Editor -> <language> -> Tabs में है

क्या प्रति समाधान आधारों पर इन सेटिंग्स को ओवरराइड करने का कोई तरीका है?


14
काश, यह फ़ाइल के आधार पर टैब / इंडेंटेशन शैली का पता लगा सकता। यानी जब कोई फ़ाइल खोली जाती है तो वह उस फ़ाइल के लिए टैब / इंडेंटेशन शैली का उपयोग करेगा। उदात्त पाठ करता है।
इस्माइल

जवाबों:


20

यहाँ एक (सुरक्षित रूप से हैकी) तरीका है जिसे आप प्राप्त करना चाहते हैं:

1) एक मैक्रो बनाएं जो इंडेंटेशन ( स्रोत ) को बदलता है

 Sub Set-Indent(indent As integer)
     Dim props As EnvDTE.Properties = DTE.Properties("TextEditor", "C/C++")
     Dim ts As EnvDTE.Property = props.Item("TabSize")
     Dim ins As EnvDTE.Property = props.Item("IndentSize")
     ts.Value = indent 
     ins.Value = indent 
 End Sub

2) हुक जो आपके समाधान के साथ लोड हो रहा है: मैक्रो एक्सप्लोरर में, चुनें EnvironmentEvents, SolutionEventsपहले ड्रॉप-डाउन Openedमें, दूसरे में चुनें। अब आपके पास एक मैक्रो है जो हर बार जब आप कोई समाधान खोलते हैं तो ट्रिगर हो जाएगा। आपको बस अपने समाधान को आवश्यक इंडेंटेशन में मैप करना होगा।


8
हैक, हाँ, लेकिन यह काम करता है। धन्यवाद। C # devs के लिए, यह DTE.Properties ("टेक्स्टएडिटर", "CSharp") है
माइक स्टॉकडेल

2
यदि आप इसे एक समाधान में रखते हैं, तो आपको इसे सभी समाधानों में डालना होगा। विशेष रूप से सार्वजनिक परियोजनाओं के लिए, शायद ही उपयोग करने योग्य है। EditorConfig (अगला उत्तर नीचे) बेहतर IMHO है।
rustyx

93

UPDATE: VS 2017 सपोर्ट करता है EditorConfig को मूल रूप से: https://blogs.msdn.microsoft.com/dotnet/2016/12/15/code-style-configuration-in-the-vs2017-rc-updep/

वीएस 2010 और इसके बाद के संस्करण में, एक विस्तार है जो समाधान / प्रोजेक्ट रूट में .editorconfig फ़ाइल के आधार पर इंडेंटेशन सेट करता है :

http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328

विज़ुअल स्टूडियो कोड के लिए भी ऐसा ही विस्तार है


2
मुझे यह पसंद है - जल्दी से स्थापित करने के लिए, इसमें कुछ अन्य विकल्पों के समान धीमा-डाउन मुद्दा नहीं है, और इसमें जोड़ा गया बोनस है कि आप एक समाधान में व्यक्तिगत परियोजनाओं पर सेटिंग्स बदल सकते हैं, यदि आपको आवश्यकता है सेवा।
कर्केन 12

@ondatra जब मैं अपने सॉल्यूशन फोल्डर ( .slnफाइल के साथ समवर्ती ) में फाइल डालता हूं, तो मैं यह काम नहीं कर सकता । इसके अलावा, यह समर्थन करता है indent_brace_style?
ड्रूज़

@ondatra अभी पता चला है कि यह अभी तक समर्थन नहीं करता indent_brace_styleहै - मैंने इसके लिए एक मुद्दा खोला है।
ढोलकिया

धन्यवाद। कृपया ध्यान दें, मुझे vs2012update3 के लिए github.com/editorconfig/editorconfig/issues/116 से 0.4.0 अपडेट का उपयोग करना पड़ा
SteelBytes

1
VS2017 v15.3 अब कोडिंग स्टाइल के कई गुणों का समर्थन करता है ।
Frédéric

7

अब एक और ऐड-इन को "Rebracer" कहा जाता है ... लिंक यहाँ है: http://visualstudiogallery.msdn.microsoft.com/410e9b9f-65f3-4495-b68e-15567e5bc58


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

4

VS एक्सटेंशन एडिटरकॉन्फिग ( http://visualstudiogallery.msdn.microsoft.com/c8bccfe2-650c-4b42-bc5c-845e21f96328 ) वेबसाइट से:

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

(जोर मेरा)

पूर्ण प्रकटीकरण: मैं व्यक्तिगत रूप से इसका परीक्षण नहीं कर पाया हूं (क्योंकि ReSharper पदभार संभालता है)।


2

VS2017 RC ने .editorconfig प्रारूप के लिए समर्थन जोड़ा।


5
हां, लेकिन समाप्त फ़ाइल का एक उदाहरण अच्छा होगा :)
toddmo


0

अद्यतन: ऐसा लगता है कि इंडेंटेशन को रेस्परर द्वारा प्रबंधित नहीं किया जाता है, इसलिए यह उत्तर वास्तव में विशिष्ट प्रश्न को संबोधित नहीं करता है। हालाँकि, यह सामान्य शब्दों में लागू होता है; यानी "विजुअल स्टूडियो, प्रति समाधान सेटिंग्स" यदि कोई भी यहां खोजता है तो वह उसे ढूंढता है।


यदि आप Resharper का उपयोग कर रहे हैं , तो आप केवल समाधान के लिए स्वरूपण सेटिंग्स (वास्तव में, कोई भी सेटिंग) सहेज सकते हैं। आप आगे निर्दिष्ट कर सकते हैं यदि सिर्फ आपके लिए (यानी स्रोत-नियंत्रण के लिए प्रतिबद्ध नहीं) या साझा समाधान-विशिष्ट सेटिंग्स (यानी स्रोत-नियंत्रण के लिए प्रतिबद्ध)।

Resharper > Options > Code Editing > C# (or whatever language) > Formatting Style > Braces Layout

फिर विंडो के निचले भाग में, Save To"समाधान XYZ व्यक्तिगत" (या साझा, आपके उद्देश्य पर निर्भर करता है) चुनें।

यह YOURSOLUTION.sln.DotSettings.userमानों के साथ एक xml फ़ाइल बनाता है जैसे:

<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/ANONYMOUS_METHOD_DECLARATION_BRACES/@EntryValue">NEXT_LINE</s:String>
<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/CASE_BLOCK_BRACES/@EntryValue">NEXT_LINE</s:String>

Resharper Settings - केवल समाधान के लिए सहेजें


1
2 स्थानों या 4 स्थानों के लिए इंडेंट सेट करने के लिए किस रिसर्चर सेटिंग का उपयोग किया जाता है?
एंडी तजहोनो

@EndyTjahjono यह एक VS सेटिंग है: टूल्स> विकल्प> टेक्स्ट एडिटर> (भाषा)> टैब> "टैब साइज" या "इंडेंट साइज"। और VS2012 के बारे में अच्छी बात यह है कि आप त्वरित लॉन्च खोज ( CTRL+Q) का उपयोग कर सकते हैं और सभी उपलब्ध भाषा सेटिंग्स पर सही कूदने के लिए "टैब" टाइप कर सकते हैं ।
ड्रेजॉस

लेकिन यह वीएस सेटिंग वैश्विक है (प्रति समाधान / परियोजना के अनुसार नहीं) और आपने इसका उपयोग करने का सुझाव दिया है क्योंकि इसमें प्रति समाधान / परियोजना सेटिंग्स हैं?
एंडी तजहोनो

आपने मुझे प्राप्त किया - मैं कुछ अन्य सेटिंग्स को बदलने के बीच में था, इसलिए मैंने माना कि यह इंडेंटेशन का भी प्रबंधन करेगा। मैंने अभी टैब सेटिंग्स के लिए फिर से रिचार्ज के माध्यम से देखा, लेकिन मैं इसे नहीं ढूंढ सका। तो चेतावनी है "बहुत ज्यादा किसी भी सेटिंग को छोड़कर जो कि पुनर्व्यवस्थित प्रबंधन नहीं करता है, जैसे इंडेंट आकार"। जब से मैं पर्याप्त ध्यान नहीं दे रहा था, मैं उत्तर को अपडेट कर दूंगा, बेझिझक।
drzaus

अद्यतन के लिए धन्यवाद। FYI करें मैं आपको ठीक करने की कोशिश नहीं कर रहा था, लेकिन वास्तव में उम्मीद कर रहा था कि resharper के पास प्रोजेक्ट इंडेंट सेटिंग है और मुझे इसे सेट करने की जगह नहीं मिली है।
एंडी तजहोनो

0

तो, स्वीकृत समाधान कहता है "आपको बस अपने समाधान को आवश्यक इंडेंटेशन में मैप करने की आवश्यकता है", जो महान है, सिवाय इसके कि आप ऐसा कैसे करते हैं? बहुत समय बर्बाद करने के बाद यह पता लगाने की कोशिश कर रहा है कि मुझे एक ऐसी विधि मिली, जिसे मैं यहाँ पसंद करता हूँ । यह विधि किसी भी निर्यात की गई संख्या को लोड करती है जो हर समाधान के लिए अलग हो सकती है। सेटिंग्स में इंडेंट से लेकर कलर्स या विंडो लेआउट (मुझे लगता है) तक कुछ भी शामिल हो सकता है।

  • Visual Studio 2008 में, उपकरण> मैक्रोज़> मैक्रो एक्सप्लोरर खोलें
  • MyMacros> Module1 पर डबल क्लिक करें (यदि आपके पास मॉड्यूल 1 नहीं है, तो MyMacros पर राइट क्लिक करें और इसे बनाने के लिए 'नया मॉड्यूल ...' चुनें)।
  • मैक्रो एक्सप्लोरर विंडो में, बाईं ओर 'एनवायरनमेंट' पर डबल क्लिक करें।
  • ऊपरी-बाएँ ड्रॉपडाउन में, 'SolutionEvents' चुनें।
  • ऊपरी-दाएँ ड्रॉपडाउन में, 'Opened' चुनें।
  • SolutionEvents.Opened घटना को संभालने के लिए कोड स्वचालित रूप से जोड़ा जाता है। उस कोड को निम्नलिखित में बदलें:

    Private Sub SolutionEvents_Opened() Handles SolutionEvents.Opened
        Dim item As ProjectItem = DTE.Solution.FindProjectItem("solution.vssettings")
        If Not item Is Nothing Then
            'MsgBox("Uncomment this to see a message when settings are loaded")
            Dim name = item.FileNames(1)
            DTE.ExecuteCommand("Tools.ImportandExportSettings", "/import:""" & name & """")
        End If
    End Sub
    
  • मैक्रो को सहेजें।

  • टैब सेटिंग और जो कुछ भी आप सेट करना चाहते हैं, उसके लिए अपने UI को बदलने के लिए टूल्स> विकल्पों का उपयोग करें।
  • उपकरण> आयात और निर्यात सेटिंग्स ...> चयनित पर्यावरण सेटिंग्स> अगला निर्यात करें
  • टैब सेटिंग्स को निर्यात करने के लिए, 'सभी सेटिंग्स' को अनचेक करें फिर विकल्प> टेक्स्ट एडिटर> C / C ++ चेक करें
  • अगला क्लिक करें, फिर 'solution.vssettings' को 'आप अपनी सेटिंग फ़ाइल का नाम क्या देना चाहते हैं?' टाइप करें। और जहाँ भी आपके पास समाधान है उन सेटिंग्स का उपयोग करने के लिए फ़ाइल को सहेजें।
  • समाधान एक्सप्लोरर विंडो में किसी भी स्थान पर solution.vssettings खींचें।
  • विजुअल स्टूडियो से बाहर निकलें और अगली बार जब आप समाधान युक्त समाधान खोलें, तो इसे उन सेटिंग्स को लोड करना चाहिए।

यदि मैक्रो नहीं चलता है, तो यह MS सुरक्षा पैच के कारण हो सकता है। के आधार पर इस जोड़ने, निम्न स्ट्रिंग:

<AllowDComReflection enabled="true"/>

निम्न तीन फ़ाइलों में <रनटाइम> टैग के नीचे:

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"
"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"

संपादक का उपयोग आप उन फ़ाइलों को संपादित करने के लिए सुनिश्चित करें जो प्रशासक विशेषाधिकारों (यानी राइट क्लिक नोटपैड पर क्लिक करें और 'व्यवस्थापक के रूप में चलाएँ' का चयन करें)।

मुझे एक प्लग-इन भी मिला , जो कि ऊपर बताए गए मैक्रो के समान ही करना चाहिए, लेकिन किसी कारण से मैंने इसके इंस्टॉलर को चलाने के बाद भी कुछ नहीं किया।


0

क्लैंग-फॉर्मेट आपके सोर्स कोड को फॉर्मेट करने के लिए काफी परिष्कृत विकल्प प्रदान करता है।

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

http://llvm.org/builds/

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