2014-04-23 6 views
16

इंटेलिज विचार के साथ, मैं कैसे पता लगा सकता हूं कि एक चर क्या दिखता है?क्या एक चर दिखाई देता है (इंटेलिज विचार)

जब यह कठिन है का एक उदाहरण:

  • मान लीजिए आप class A को देखें, और आप एक चर something देखते हैं। यदि आप स्रोत पर कूदते हैं तो आप देखते हैं कि इसे trait X में परिभाषित किया गया है। लेकिन आप extend विशेषता X सीधे नहीं करते हैं। तब आप क्या बढ़ाते हैं, जो इस चर को दृश्यमान बनाता है? यदि आपके पास गहरा घोंसला पदानुक्रम है, तो ट्रैकिंग मुश्किल हो सकती है।

कोई सिफारिश या समाधान?

संपादित करें: http://youtrack.jetbrains.com/issue/IDEA-124369

+1

तो यह स्कैला एकीकरण के बारे में है, जावा नहीं? –

+0

यह जावा पर भी लागू होता है। आपके पास फ़ाइल में एक चर/प्रकार को दृश्यमान बनाने के विकल्प हैं। – VasyaNovikov

+0

मैं हर दिन आईडीईए का उपयोग करता हूं और लंबे समय तक रहता हूं और यदि वह सुविधा उपलब्ध है, तो मुझे इससे अनजान है। जेटब्रेन फीचर अनुरोधों के बारे में बहुत ही संवेदनशील है, इसलिए आपको शायद इसके लिए पूछना चाहिए। –

उत्तर

-2

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

+0

क्षमा करें, नहीं, प्रश्न आईडीई समर्थन और कोड नेविगेशन के बारे में था। तो, कोड पहले ही लिखा गया है और अब आप इसके माध्यम से नेविगेट करते हैं। – VasyaNovikov

0

मुझे इस समस्या के लगभग दो समाधानों के बारे में पता है।

जैसा कि आपने बताया है, गो-टू-घोषणा, स्थानीय चर के मामले में इस समस्या को हल करती है।

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

यह सही नहीं है, लेकिन एक पल के विचार के साथ ये दोनों आम तौर पर आप जो चाहते हैं उसे समझने के लिए पर्याप्त हैं।

+0

दुर्भाग्यवश, न तो 'उपयोग ढूंढें' और न ही 'जाने-जाने-घोषणा' समस्या को पूरी तरह से हल नहीं करती है। इन दृष्टिकोणों में अभी भी "अंडरस्कोर" आयात विवरण जैसे 'आयात smth._' शामिल नहीं है। वे मिश्रण-इन्स के वृक्ष को भी घुमाने में मदद नहीं करते हैं ... – VasyaNovikov

+0

इस मामले में, आप इंटेलिजे के कार्यान्वयन की सीमा के खिलाफ हैं। माफ़ कीजिये। आप जो कुछ भी कर सकते हैं उसके बारे में एक स्ट्रिंग खोज करने के लिए आप "पथ में खोजें" (डिफ़ॉल्ट रूप से CTRL + SHIFT + F) का उपयोग कर सकते हैं। कम से कम आईडीईए ऐसी खोज करता है * तेज़ *:/ –

+0

यूप, जिस तरह से हम वर्तमान में इस तरह के काम करते हैं, "सभी उपयोगों को ढूंढें" आदि का उपयोग करके .. टिप्पणियां मुझे आश्वस्त करती हैं कि ऐसी कोई कार्यक्षमता अंतर्निहित नहीं है, इसलिए मैं कम से कम अपनी साइट पर "फीचर अनुरोध" बनाया .. – VasyaNovikov

0

स्रोत कोड पर जाने के लिए ctrl + b या F4 का उपयोग करें। वैकल्पिक रूप से आप विकल्प/क्रिया प्राप्त करने के लिए ctrl + shift + a का उपयोग कर सकते हैं। आप http://gaerfield.github.io/ide-shortcuts/ पर शॉर्टकट भी पा सकते हैं। उम्मीद है कि यह मदद करेगा।

+0

हाय, क्षमा करें, नहीं, सवाल अलग है। काफी बोलते हुए, मैं अंतर्निहित स्रोत कोड की बजाय वर्तमान फ़ाइल/दृश्य में एक आयात/मिश्रण विवरण पर कूदना चाहता हूं। अधिक विस्तृत, प्रश्न विवरण स्वयं देखें। – VasyaNovikov

0

मुझे नहीं लगता कि इंटेलिजे आईडीईए के पास "एक चर दृश्यमान बनाता है" खोजने के लिए कोई शॉर्टकट है।

हालांकि आप इसे "उपयोग ढूंढें" विकल्प (Alt + F7) का उपयोग करके निर्धारित कर सकते हैं। उदाहरण के लिए:

import java.nio._ 
object TempObj extends App { 
    def func = 2 
    val p = file.Paths.get("some-path") 
    func 
} 

तो "फाइल" पर Usages का पता लगाएं, आपको बताता है कि अपने पैकेज "फाइल" से (नया टैब के शीर्षक में यह भी पूरा पैकेज का नाम पता चलता है, उदाहरण के लिए: जावा के Usages का पता लगाएं। परियोजना फाइलों में nio.file)। जबकि समारोह पर Usages खोजें आपको बता देंगे कि अपनी एक विधि (और टैब अब शीर्षक कहते हैं: समारोह के Usages() परियोजना में और पुस्तकालय का पता लगाएं)

तो अब रास्ते में आप यह निर्धारित कर सकते हैं, वास्तव में क्या चर से दिखाई दे रही । यह आयात के लिए भी काम करता है क्योंकि यह उस पैकेज को दिखाता है जहां से इसे आयात किया जाता है और फिर आप उस पैकेज के आयात की तलाश कर सकते हैं।

+0

आईएमओ, यह स्रोत ('Ctrl B') पर कूदने जैसा ही है। आप कूदते हैं और फिर आप पैकेज का नाम जानते हैं। फिर भी, आप नहीं जानते कि इस संदर्भ में आपके चर में क्या दृश्यमान दिखाई देता है। उदाहरण के लिए: 'विशेषता ए {def जहां एएमआई = 1}; विशेषता बी ए फैलाता है; क्लास मिस्ट्री अन्य के साथ अन्य 2 के साथ बी 2 को विस्तारित करता है {println (whereAmI)} 'अब' मिस्ट्री 'के स्रोत को देखते हुए, मैं समझ नहीं पा रहा हूं कि चर कहां से है। क्या यह 'बी' से है? या 'अन्य' से? या शायद उस ऑब्जेक्ट से जो 'ए' को बढ़ाता है और हमने ऑब्जेक्ट सामग्री आयात की है? – VasyaNovikov

+0

... दरअसल, "उपयोग ढूंढें" पहले ही प्रस्तावित किया गया था। दुर्भाग्य से, यह वर्णित कारणों से काम नहीं करता है। – VasyaNovikov

+0

हां, आप सही हैं इसलिए संक्षिप्त जवाब यह नहीं है कि आप इस समय इसे नहीं ढूंढ पाएंगे। – KarateKid

0

जो मैं समझता हूं उससे आप उस कोड को देखना चाहते हैं जो आपके द्वारा उपयोग किए जाने वाले ऑब्जेक्ट को बनाता है, उदाहरण के लिए Mystery someMystery;
कि आपके पास दो विकल्प देता है someMystery पॉप्युलेट करने के लिए:

  1. someMystery = ... जहां ... someMystery को पॉप्युलेट करने के लिए आपका कोड है और यदि ऐसा है तो आपको उस कोड (ctrl + B के साथ जहां तक ​​आपको आवश्यकता हो) के साथ वास्तव में Mystery ऑब्जेक्ट बनाता है।
  2. आपके लिए उस ऑब्जेक्ट इंस्टेंस को पॉप्युलेट करने के लिए सीडीआई का उपयोग करें, इस मामले में आपको ऑब्जेक्ट इंस्टेंस के तरीके के तरीके को देखने के लिए सीडीआई तंत्र में देखना चाहिए। यदि someMystery उदाहरण है, क्योंकि यह क्रम में निर्णय लिया गया है, Mystery की तुलना में कुछ अधिक ठोस वर्ग की है संकलन समय में नहीं

या तो रास्ते में IMO कोई रास्ता निश्चित रूप से जानना है, तो अपने अगले शर्त होगी प्रोग्राम को डीबग में चलाएं और देखें कि कौन सा ऑब्जेक्ट someMystery में जाता है, हालांकि आपको हर बार एक ही प्रकार की ऑब्जेक्ट प्राप्त करने की गारंटी नहीं है।

पीएस। मेरा जवाब पूरी तरह से विषय की मेरी जावा समझ पर आधारित है, यह नहीं कह सकता कि यह स्कैला के लिए मान्य है।

+0

काफी नहीं। मैं कोड के वर्तमान ब्लॉक में संकलन समय पर एक चर _be visible_ बनाता हूं। जब यह समझना मुश्किल हो सकता है तो इसका एक उदाहरण एक गहरा 'विस्तार' पदानुक्रम है। आप जानते हैं कि, आखिरकार, यह 'विशेषता एक्स' का सदस्य है। लेकिन आप सीधे 'एक्स' का विस्तार नहीं करते हैं। तब यह आपके कोड पर कहां आता है? वैसे भी, इस मुद्दे में कहा गया है। – VasyaNovikov

+0

पीएस मैंने टेक्स्ट को और अधिक स्पष्ट करने के लिए संपादित किया है। – VasyaNovikov

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