जावा # C में # भाग के बराबर है


488

मैं ग्रहण में कोड तह के लिए क्षेत्रों का उपयोग करना चाहता हूं ; जावा में कैसे किया जा सकता है?

C # में एक उदाहरण उपयोग :

#region name
//code
#endregion

@MichaelLaVoie: उत्तर हटा दिया गया है। किसी भी मौका यह एक अलग एसई साइट के लिए चले गए?
एडम पार्किन

1
programmers.stackexchange.com/questions/53086/… आत्मा में समान लगता है।
एडम पार्किन

मैं देर से पार्टी में शामिल हुआ। मैं IKashef से सहमत हूं कि ऐसे अन्य विकल्प हैं जो वर्तमान चयनित उत्तर हैं। याकूब अहमद के जवाब से मेरी जान बच गई। मुझे इंटेलिजेंस आईडीई डाउनलोड करने की आवश्यकता नहीं थी। मैंने cking24343 की टिप्पणी से उल्लिखित कॉफीबाइट प्लगइन डाउनलोड किया, मैंने 'नल n शून्य' का विन्यास लागू किया और लूना में अच्छी तरह से काम किया। कॉन्फ़िगरेशन को लागू करने के बाद आपको पुनः आरंभ करने की आवश्यकता है
मैक्सिमस डेसीमस

3
के साथ शुरू //region [Description] और अंत//endregion
आमिर ज़ियारती

जवाबों:


215

ऐसा कोई मानक समकक्ष नहीं है। कुछ IDEs - Intellij, उदाहरण के लिए, या ग्रहण - इसमें शामिल कोड प्रकारों (कंस्ट्रक्टर, आयात आदि) के आधार पर गुना कर सकते हैं, लेकिन ऐसा कुछ भी नहीं है #region


30
वास्तव में यह हासिल किया जा सकता है। यदि आप इस पोस्ट पर नीचे स्क्रॉल करते हैं "याकूब अहमद" बताते हैं कि यह कार्यक्षमता कैसे प्राप्त करें। इसके अलावा यहां एक लिंक है ( kosiara87.blogspot.com/2011/12/… ) जो आपको दिखाता है कि इसे अपने मौजूदा ग्रहण वातावरण में कैसे जोड़ा जाए ... बेहद उपयोगी!
cking24343

14
ज़रूर। लेकिन कुछ भी मानक नहीं है । यह एक भाषा (या पाठ) निर्माण
ब्रायन एग्न्यू

2
@lkashef - तो फिर मानक समकक्ष क्या है ? नीचे दी गई हर चीज एक विशेष IDE से संबंधित है, है ना?
ब्रायन एग्न्यू

4
@BrianAgnew, ओपी ने मानकों के बारे में कुछ भी उल्लेख नहीं किया, बजाय इसके कि वह अपने कोड में क्षेत्रों जैसे ब्लॉकों के लिए सक्षम होना चाहता है। उदाहरण के लिए आपने कहा "लेकिन वहाँ कुछ भी #region की तरह नहीं है।" उदाहरण के लिए IDEA में // क्षेत्र .. // एंड्रीजियन बिल्कुल #region की तरह काम करता है। यह पहली बार में ही ऐसा करने का कोई मानक तरीका नहीं है क्योंकि यह आईडीई ही या एक प्लगइन पर निर्भर करता है। Microsoft पृष्ठभूमि वाले डेवलपर्स हमेशा MS Visual Studio को "The" IDE के रूप में देखेंगे, लेकिन वास्तव में यह सिर्फ एक विकल्प है और दूसरा IDE ऐसी कार्यक्षमता को लागू कर सकता है या नहीं भी कर सकता है।
मेज़न एल्कशेफ़

4
@BrianAgnew, मैंने लगभग तब तक हार मान ली जब तक कि मैंने अन्य लोगों के उत्तरों को नहीं देखा, जिन्होंने आपकी तुलना में अधिक मदद की। गंभीरता से यहां कोई कठिन भावना नहीं है, हम अपने ज्ञान को जानने और साझा करने के लिए यहां हैं और इस तथ्य को बता रहे हैं कि मुझे आपके उत्तर से गुमराह किया गया था, शायद यह 2010 में वापस एक अच्छा था लेकिन आज नहीं। मुझे उम्मीद है कि आपको मेरी बात सही लगेगी।
माज़ेन एल्कशेफ़

476

Jet Brains IDEA में यह सुविधा है। आप उसके साथ हॉटकी सराउंड का उपयोग कर सकते हैं (ctrl + alt + T)। यह सिर्फ IDEA फीचर है।

वहां के क्षेत्र इस तरह दिखते हैं:

//region Description

Some code

//endregion

3
उसके लिए धन्यवाद! पूरी तरह से एंड्रॉइड स्टूडियो पर काम करता है।
rogcg

2
प्रश्न स्पष्ट रूप से ग्रहण के समाधान का अनुरोध करता है।
डंकन जोन्स

5
@ डंकन 1. लोगों को दिखाने के लिए कुछ भी गलत नहीं है, विकल्प हैं। 2. मैं Intellij के तहत क्षेत्रों के लिए Google और इसे पाया।
BHuelse

2
लिनक्स पर, वह हॉटकी टर्मिनल चलाता है
user1209216

1
बस यह कोशिश की और ऐसा लगता है जैसे IntelliJ नेस्टेड क्षेत्रों के रूप में अच्छी तरह से समर्थन करता है! बहुत बुरा यह मानक नहीं है।
ग्रुबर

209

Android Studio के साथ, इसे आज़माएँ:

//region VARIABLES
private String _sMyVar1;
private String _sMyVar2;
//endregion

सावधान: // क्षेत्र के बाद कोई रिक्त रेखा नहीं ...

और आपको मिलेगा:


सभी जवाबों के माध्यम से जा रहा था और लगा कि एंड्रॉइड स्टूडियो इंटेलीज पर आधारित है तो इस का समर्थन किया जाना चाहिए। हालांकि यह इंगित करने के लिए अच्छी बात है!
सेरिन

5
bummi, मैंने इसे 0.4.2 में एक रिक्त रेखा के साथ आजमाया और अभी भी काम करता है
Serine

2
बस एक टिप्पणी / सलाह (और आपके प्रश्न का उत्तर नहीं है)। यह एक व्यापक राय है कि क्षेत्रों से बचा जाना चाहिए, क्योंकि वे आपको अपनी कोडिंग शैली पर काम करने के बजाय कक्षा की जटिलता को छिपाने देते हैं। विशाल कक्षाओं के बजाय, जहां प्रत्येक वर्ग बहुत अधिक कार्यक्षमता के लिए जिम्मेदार है, इसके बजाय अपने कोड को छोटे वर्गों में तोड़ने का काम करें। यह समय के साथ आपके कोड को प्रबंधित करना आसान बना देगा। यहाँ और अधिक पढ़ें: blog.codinghorror.com/the-problem-with-code-folding
डैनियल सईदी

5
@DanielSaidi ओह, हॉरर! :) लेख में लड़का " मैं कुछ भी नहीं देख सकता हूँ! मुझे इस वर्ग में किसी भी कोड को ब्राउज़ करने के लिए उन अनुभागों को मैन्युअल रूप से विस्तारित करना होगा। " ... इसलिए क्योंकि वह एक कुंजी दबाने के लिए बहुत आलसी है (जो कि वुल्ल्ड सभी का विस्तार करता है फ़ाइल में अनुभाग), सुविधा का उपयोग नहीं किया जाना चाहिए - यह एक सुपर अद्भुत विशेषता है। अभी मैं इसे एक-एक करके उन तरीकों से छिपा रहा हूं, जिन्हें मैंने सत्यापित किया है कि मैं जिस कक्षा में काम कर रहा हूं, उसमें थ्रेड सुरक्षित है, यह वास्तव में संगठित रखने में मदद करता है। एक बार में मुझे आश्चर्य होता है कि मैंने सोचा कि कुछ ऐसा कहां है मैंने सोचा था कि वहाँ है, लेकिन यह भुगतान करने के लिए एक छोटी सी कीमत है ...
16:23

4
@DanielSaidi यह जटिलता को छिपाने के बारे में नहीं है, बल्कि परिवर्तनशील घोषणाओं, गेटर्स, इनिशियलाइज़ेशन कोड इत्यादि जैसे सांसारिक कोड को छिपाने के बारे में है। यह भी ध्यान दें कि आपको फ़ंक्शन और कक्षाओं में पाए जाने वाले "जटिल कोड" को ध्वस्त करने के लिए #regions की आवश्यकता नहीं है। प्रोग्रामर के साथ एक उपकरण का गलत तरीके से उपयोग करने वाला गोमांस "उपकरण खराब है" की राशि नहीं है।
user1567453

96

भाषा में कोई समकक्ष नहीं ... आईडीई के आधार पर ...

उदाहरण के लिए netbeans में:

NetBeans / निर्माता इस सिंटैक्स का समर्थन करता है:

// <editor-fold defaultstate="collapsed" desc="Your Fold Comment">
...
// </editor-fold>

http://forums.java.net/jive/thread.jspa?threadID=1311


1
भले ही यह एक भाषा विशिष्ट तह नहीं है लेकिन फिर भी नेटबीन्स में मेरी मदद की। बिल्कुल वही जो मैं हासिल करना चाहता था। बस मेरा कोड मेरे लिए अधिक उपयोगी और व्यवस्थित होना चाहता है।
इंडिगो

क्या कोई शॉर्टकट है जो ऑटो इस लाइन को भर सकता है?
पीनी चेइनी

1
@ pini-cheyni - ui.netbeans.org/docs/ui/code_folding/cf_uispec.html के पास फोल्डिंग के लिए शॉर्टकट उपलब्ध हैं ....
केविन लाब्रानेच

@ जेडचैइन: ओपी ने ग्रहण के बारे में पूछा, लेकिन इस बात से सहमत हूं कि यह नेटबींस के लिए अच्छा है। सिंटेक्स थोड़ा अनाड़ी है लेकिन कॉपी-पेस्ट इसे काफी आसान बना देता है।
AlainD

50

7
इस जानकारी के लिए +1 धन्यवाद। चूंकि प्लगइन के विकासकर्ता की मूल वेबसाइट अब 2012 में उपलब्ध नहीं है - मुझे स्थापना और उपयोग के लिए एक छोटा सा विवरण मिला ।
k3b

किसी को भी एक intelliJ विकल्प मिला?
०४ पर फिल्क्स_एक्स

डाउनलोड लिंक अब मौजूद नहीं है।
डेरूगो जूल

49

कस्टम कोड फोल्डिंग फीचर को कॉफीस्क्रिप्ट कोड फोल्डिंग प्लगइन का उपयोग करके ग्रहण में जोड़ा जा सकता है।

यह ग्रहण लूना और जूनो के साथ काम करने के लिए परीक्षण किया गया है। यहाँ कदम हैं

  1. यहां से प्लगइन डाउनलोड करें

  2. संग्रह की सामग्री निकालें

  3. एक्लिप्स इंस्टॉलेशन डायरेक्टरी के अंदर प्लग इन के कंटेंट को पेस्ट करें और उसी नाम वाले फोल्डर में फोल्डर को कॉपी करें
  4. ग्रहण को पुनः आरंभ करें
  5. नेविगेट Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold

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

  6. दिखाए गए अनुसार नया क्षेत्र बनाएँ:

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

  7. ग्रहण को पुनः प्रारंभ करें।

  8. यह निर्धारित करने का प्रयास करें कि क्या निर्दिष्ट निर्दिष्ट आरंभ और समाप्ति पहचानकर्ताओं के साथ तह काम करती है

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

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

आप आर्काइव डाउनलोड कर सकते हैं और इस ब्लॉग पर भी कदम उठा सकते हैं।


2
मेरे लिए काम नहीं कर रहा ग्रहण नियॉन पर: कॉपी और पेस्ट ने कुछ नहीं किया: केवल एक चीज जो बदल गई थी वह थी बाज़ार के तहत >> स्थापित प्लगइन्स >> अपडेट। मैंने कॉफीस्क्रिप्ट प्लगइन को अपडेट किया, लेकिन मुझे जावा के तहत "सेलेक्ट फोल्डिंग टू यूज" का विकल्प नहीं मिला >> संपादक >> फोल्डिंग
एंजेलो ओपराह

यह ग्रहण ऑक्सीजन में काम करता है, हालांकि आपको फिर से ग्रहण को फिर से शुरू करने की आवश्यकता है। मेरे लिए प्रदर्शित आइकन एक लाल आइकन था, इसलिए मैंने कॉन्फ़िगरेशन में परिवर्तन किया, विंडो → वरीयता → जावा → संपादक → तह उन्नत टैब पर क्लिक करें और आइकन थीम को आधुनिक में बदल दें
Michieru

38

यह एक भाषा सुविधा की तुलना में IDE सुविधा से अधिक है। नेटबीन्स आपको निम्नलिखित परिभाषा का उपयोग करके अपनी स्वयं की तह परिभाषाओं को परिभाषित करने की अनुमति देता है :

// <editor-fold defaultstate="collapsed" desc="user-description">
  ...any code...
// </editor-fold>

जैसा कि लेख में कहा गया है, यह अन्य संपादकों द्वारा भी समर्थित हो सकता है, लेकिन इसकी कोई गारंटी नहीं है।


Android स्टूडियो में, कम से कम, आप किसी ब्लॉक का हिस्सा नहीं मोड़ सकते। यदि तह युक्ति एक ब्लॉक के बाहर शुरू होता है, और एक ब्लॉक के अंदर समाप्त होता है, तो यह सक्रिय नहीं होगा।
प्रो वॉन लेमनगर्ल

30

Android Studio(या IntelliJ IDEA) में सबसे तेज़ तरीका

  1. highlight the code आप इसे घेरना चाहते हैं
  2. प्रेस ctrl+ alt+t
  3. प्रेस c==> फिर विवरण दर्ज करें
  4. का आनंद लें

// क्षेत्र <नाम> आपका कोड ... // एंड्रेगियन अधिक कुशल और सरल है!
हेह

30

AndroidStudioक्षेत्र
बनाएँ क्षेत्र

Surround Withमेनू के लिए पहले , (और यदि आवश्यक हो तो शॉर्ट कट को परिभाषित करें)यहाँ छवि विवरण दर्ज करें

फिर , कोड चुनें Ctrl+Alt+Semicolon- प्रेस -> चुनेंregion..endregion...
यहाँ छवि विवरण दर्ज करें

क्षेत्र में जाओ

सबसे पहले, अपने कोड में कहीं से भी Custom Foldingशॉर्ट कट
यहाँ छवि विवरण दर्ज करेंदूसरा ढूंढें , दबाएंCtrl+Alt+Period('>' on keyboard) यहाँ छवि विवरण दर्ज करें


20

क्या पोस्ट कर रहे हैं के विपरीत, यह एक आईडीई बात नहीं है। यह एक भाषा की बात है। # भाग एक C # कथन है।


55
जो सबसे ज्यादा पोस्ट कर रहे हैं वह है IN IN JAVA यह एक IDE फीचर है।
WhyNotHugo

1
मैं 2 सबसे लोकप्रिय उत्तरों को यह कहता हूं कि ऐसी कोई भाषा सुविधा नहीं है। -1।
मोहयमीन

23
C # में यह आंशिक रूप से IDE है, आंशिक रूप से भाषा है। भाषा प्रीप्रोसेसर निर्देशों का समर्थन करती है, लेकिन प्रीप्रोसेसर केवल उन्हें अनदेखा करता है (उसी तरह प्रोसेसर टिप्पणियों की उपेक्षा करता है)। आईडीई (विजुअल स्टूडियो) कोड फोल्डिंग करने के लिए उनका उपयोग करता है।
ADTC

जावा में केवल IDE (Netbeans) के लिए कोड फोल्डिंग निर्दिष्ट नहीं है, Netbeans में "TODO" जैसी और भी विशेष टिप्पणियाँ हैं। वे SW परियोजना विकास प्रक्रिया के माध्यम से आपकी प्रगति को ट्रैक करने के लिए बहुत उपयोगी हैं
Pini Cheyni

17

मैं C # से जावा में आ रहा था और उसी समस्या थी और क्षेत्र के लिए सबसे अच्छा और सटीक विकल्प नीचे की तरह है (एंड्रॉइड स्टूडियो में काम कर रहा है, न ही इंटेलीजे के बारे में जानते हैं):

 //region [Description]
 int a;
 int b;
 int c;
//endregion

शॉर्टकट नीचे दिया गया है:

1- कोड चुनें

2- प्रेस ctrl+ alt+t

3- cअपना विवरण लिखें और लिखें


AndroidStudio संस्करण 2.3.1 में यह तह करता है। मुझे नहीं पता कि यह कब शुरू हुआ।
मिगेलस्लैव

धन्यवाद। एंड्रॉइड स्टूडियो 3.0 बीटा 2 में पूरी तरह से काम करता है। उत्सुकता से मैंने ग्रहण ऑक्सीजन में कोशिश की, यह डिफ़ॉल्ट रूप से काम नहीं करता है लेकिन आगे नहीं खोजा।
लॉरेंट

15

सबसे अच्छा तरीका

//region DESCRIPTION_REGION
int x = 22;
// Comments
String s = "SomeString";
//endregion;

युक्ति: "रखो?" "एंडग्रीन" के अंत में


1
ग्रहण कोड को मोड़ते नहीं हैं, आप किस आईडीई का उपयोग कर रहे हैं?
ओहद कोहेन

यह Android Studio और IntelliJ IDEA के साथ काम करता है (दोनों JetBrains द्वारा एक ही कोडबेस से बने हैं)
prashu132

आईडीई "एकीकृत विकास पर्यावरण" के लिए खड़ा है
पीनी चेनी

12

अगर किसी को दिलचस्पी है, तो ग्रहण में आप एक ही बार में अपने सभी तरीकों आदि को ध्वस्त कर सकते हैं, बस ठीक क्लिक करें जब आप सामान्य रूप से एक विराम बिंदु सम्मिलित करेंगे, तो 'तह'> 'सभी को संक्षिप्त करें' पर क्लिक करें। यह पता है कि यह सवाल का जवाब नहीं है, लेकिन सिर्फ त्वरित कोड तह का विकल्प प्रदान करता है।


1
स्रोत कोड फ़ाइल खोलने पर आप सबकुछ ग्रहण ऑटो-पतन भी कर सकते हैं। वरीयताएँ> जावा> संपादक> तह> "शुरू में इन तत्वों को मोड़ो" (सूची में सभी की जाँच करें)। मुझे केवल उसी पर ध्यान केंद्रित करना सुविधाजनक लगता है जो मुझे विशेष रूप से लंबे स्रोत कोड फ़ाइलों में चाहिए।
ADTC

@ADTC - धन्यवाद - इतनी बार सैकड़ों बार मैंने मैन्युअल रूप से हर बार जब मैंने एक फ़ाइल खोली है - फिर कभी नहीं !!
टूलमेकरसैट

@ToolmakerSteve आप एक कंप्यूटर पर मैन्युअल रूप से कुछ भी दोहराव कर सकते हैं, वहाँ सिर्फ है यह स्वचालित करने के लिए एक तरह से किया जाना है। = डी
एडीटीसी

8
#region

// code

#endregion

वास्तव में केवल आपको आईडीई में कोई लाभ मिलता है। जावा के साथ, आईडीई में कोई सेट मानक नहीं है, इसलिए इसके समानांतर कोई मानक नहीं है #region


3
ठीक है, अगर वहाँ एक मानक है region, तो हम यह सुनिश्चित कर सकते हैं कि जावा आईडीई का समर्थन करेगा यह नहीं है?
पचेरियर

@ स्पेसर अगर वे उस मानक का समर्थन करते हैं, तो हाँ। मुझे लगता है कि #region एक मानक से अधिक IDE सुविधा है। सिद्धांत रूप में जावा आईडीई इस व्यवहार को लागू कर सकता है और इसे एक वास्तविक मानक बना सकता है
एल मैक

4

यहाँ एक उदाहरण है:

//region regionName
//code
//endregion

एंड्रॉइड स्टूडियो में 100% काम करता है


मुझे नहीं पता कि आपको क्यों अपमानित किया गया है, यह वास्तव में किसी भी कॉन्फ़िगरेशन की आवश्यकता के बिना एंड्रॉइड स्टूडियो में काम करता है!
मैक्सडेलिया

2

मुझे आमतौर पर टिप्पणी कोड के लिए इसकी आवश्यकता होती है इसलिए मैं शुरू और अंत में घुंघराले कोष्ठक का उपयोग करता हूं।

{
// Code
// Code
// Code
// Code
}

इसका उपयोग कोड स्निपेट के लिए किया जा सकता है लेकिन कुछ कोड में समस्याएं पैदा कर सकता है क्योंकि यह चर के दायरे को बदल देता है।


1

दरअसल जोहान, द # इंगित करता है कि यह एक प्रीप्रोसेसर निर्देश है, जिसका मूल अर्थ है कि यह आईडीई को बताता है कि क्या करना है।

उपयोग करने के मामले में #regionऔर#endregion आपके कोड में, यह अंतिम कोड में कोई अंतर नहीं है कि यह वहां है या नहीं। क्या आप वास्तव में इसे भाषा तत्व कह सकते हैं यदि इसका उपयोग करने से कुछ नहीं बदलता है?

इसके अलावा, जावा में प्रीप्रोसेसर निर्देश नहीं हैं, जिसका अर्थ है कि कोड तह का विकल्प प्रति-आधार पर परिभाषित किया गया है, उदाहरण के लिए netbeans में // <code-fold> स्टेटमेंट के साथ


1
क्या आप इसे वास्तव में एक भाषा तत्व कह सकते हैं यदि इसका उपयोग करने से कुछ नहीं बदलता है? - टिप्पणियों के बारे में कैसे !?
7

2
मैंने तर्क सुना है इससे पहले कि यह भाषा का कार्य नहीं है। और यह सवाल "क्या आप इसे वास्तव में एक भाषा तत्व कह सकते हैं यदि इसका उपयोग करने से कुछ भी नहीं बदलता है?" हास्यास्पद है। बहुत समय से रिफ्लेक्टिंग करने से कोड को मनुष्यों के लिए पढ़ना आसान हो जाता है और कोड के कार्य को प्रभावित करने के लिए कुछ भी (उम्मीद) नहीं करता है।
मिएन्की

1

Mac और Android Studio पर इस क्रम का पालन करें:

  1. फोल्ड करने के लिए सोर्स कोड हाइलाइट करें
  2. प्रेस Alt+ Command+t
  3. चुनते हैं <editor-fold>

इसके अलावा आप अन्य विकल्पों का चयन कर सकते हैं:

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


-1

ग्रहण में आप कोष्ठक क्षेत्र खंड को लपेटने वाले कोष्ठकों को ध्वस्त कर सकते हैं। निकटतम ऐसा कुछ करना है:

public class counter_class 
{ 

    { // Region

        int variable = 0;

    }
}

8
यह बेकार है। यह एक विधि के अंदर काम नहीं करता है, इसके अलावा यह कोड बनाता है! (निजी चर शिकायत करेंगे कि वे अंतिम होना चाहते हैं। बिना किसी दायरे की परिभाषा के परिवर्तनीय आंतरिक कोष्ठक के बाहर सुलभ नहीं होंगे!)
ADTC

1
मुझे यह विधि पसंद नहीं है, बहुत अधिक घुंघराले ब्रेसिज़ जोड़ता है। इससे भ्रामक कोड हो सकता है :(
Broken_Window

-3

बस कॉफी-बाइट्स प्लगइन को ग्रहण और सक्षम करें (ग्रहण)


न केवल पहले के उत्तर में इसका उल्लेख किया गया है , बल्कि आपने इसके बारे में कोई उपयोगी जानकारी भी नहीं दी है।
Xynariz

-12

समान प्राप्त करने के लिए कुछ विकल्प है, नीचे दिए गए बिंदुओं का पालन करें।

1) ओपन मैक्रो एक्सप्लोरर:

2) नया मैक्रो बनाएँ:

3) इसे "बाह्यरेखा" नाम दें (या जो भी आप चाहते हैं)

4) "आउटलाइन रीजन्स" पर राइट क्लिक करें (मैक्रो एक्सप्लोरर पर दिखाते हुए) "एडिट" विकल्प चुनें और उसमें निम्न VB कोड पेस्ट करें:

    Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports EnvDTE90a
Imports EnvDTE100
Imports System.Diagnostics
Imports System.Collections

Public Module OutlineRegions

    Sub OutlineRegions()
        Dim selection As EnvDTE.TextSelection = DTE.ActiveDocument.Selection

        Const REGION_START As String = "//#region"
        Const REGION_END As String = "//#endregion"

        selection.SelectAll()
        Dim text As String = selection.Text
        selection.StartOfDocument(True)

        Dim startIndex As Integer
        Dim endIndex As Integer
        Dim lastIndex As Integer = 0
        Dim startRegions As Stack = New Stack()

        Do
            startIndex = text.IndexOf(REGION_START, lastIndex)
            endIndex = text.IndexOf(REGION_END, lastIndex)

            If startIndex = -1 AndAlso endIndex = -1 Then
                Exit Do
            End If

            If startIndex <> -1 AndAlso startIndex < endIndex Then
                startRegions.Push(startIndex)
                lastIndex = startIndex + 1
            Else
                ' Outline region ...
                selection.MoveToLineAndOffset(CalcLineNumber(text, CInt(startRegions.Pop())), 1)
                selection.MoveToLineAndOffset(CalcLineNumber(text, endIndex) + 1, 1, True)
                selection.OutlineSection()

                lastIndex = endIndex + 1
            End If
        Loop

        selection.StartOfDocument()
    End Sub

    Private Function CalcLineNumber(ByVal text As String, ByVal index As Integer)
        Dim lineNumber As Integer = 1
        Dim i As Integer = 0

        While i < index
            If text.Chars(i) = vbCr Then
                lineNumber += 1
                i += 1
            End If

            i += 1
        End While

        Return lineNumber
    End Function
End Module

5) मैक्रो को सहेजें और संपादक को बंद करें।

6) अब मैक्रो को शॉर्टकट असाइन करते हैं। टूल्स-> विकल्प-> एनवायरनमेंट-> कीबोर्ड पर जाएं और अपने मैक्रो के लिए "शो कमांड्स" वाले टेक्स्टबॉक्स में टाइप करें (टाइप करें: मैक्रो टेक्स्ट बॉक्स में है, यह मैक्रोस नाम का सुझाव देगा, अपना एक चुनें।)

7) अब "प्रेस शॉर्टकट कुंजियों" के तहत टेक्स्टबॉक्स में आप वांछित शॉर्टकट दर्ज कर सकते हैं। मैं Ctrl + M + N का उपयोग करता हूं।

उपयोग:

return
{
//Properties
//#region
Name:null,
Address:null
//#endregion
}

8) सेव की गई शॉर्टकट की दबाएं

नीचे देखें परिणाम:

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


मैक्रो एक्सप्लोरर कहाँ है? मैं ४.३.१ ग्रहण का उपयोग कर रहा हूं और इसे नहीं पा सकता हूं।
मोहम्मद अल-नकिब

1
यह जावा भी नहीं है?
बुरक कराक्यूस

@CJBS - re: This code seems to be for Visual Basic.NETजो सुझाव देगा IDE है Visual Studio
जेसी चिशोल्म

@JesseChisholm - यह मेरी बात थी। ओपी जावा चाहता है, वीबी नहीं, और एक्लिप्स आईडीई को लक्षित कर रहा है, न कि वी.एस.
CJBS

1
रिप जवाब। यदि वह दृश्य स्टूडियो का उपयोग कर रहा था, तो वह बस इस्तेमाल कर सकता था #regionऔर#endregion
PNDA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.