2012-05-06 16 views
9

के एस होर्स्टमैन के "स्कैला फॉर द इंपैटेन्ट" के माध्यम से अपना रास्ता काम करते समय, मैंने पहले अध्याय में पहले अभ्यास से कुछ दिलचस्प बताया।स्कैला आरईपीएल की टैब पूर्णता मुझे यहां बता रही है?

  1. स्कैला आरईपीएल में, टाइप 3 के बाद टैब कुंजी। क्या तरीकों को लागू किया जा सकता है?

जब मैं ऐसा करते हैं, मैं निम्नलिखित

 
scala> 3. 
%    &    *    +    -   /    
>    >=    >>    >>>   ^   asInstanceOf 
isInstanceOf toByte   toChar   toDouble  toFloat  toInt   
toLong   toShort  toString  unary_+  unary_-  unary_~   
|  

मिलता लेकिन मैंने देखा है कि अगर मैं टैब को दूसरी बार मारा, मैं एक अलग सूची मिलता है।

 
scala> 3. 
!=    ##    %    &    *    +    
-   /       >=    >>    >>>   ^   asInstanceOf 
equals   getClass  hashCode  isInstanceOf toByte   toChar   
toDouble  toFloat  toInt   toLong   toShort  toString  
unary_+  unary_-  unary_~  |  

आरईपीएल मुझे यहां बताने की कोशिश कर रहा है? क्या दूसरी बार दिखाई देने वाली विभिन्न विधियों के बारे में कुछ खास है?

उत्तर

11

आरईपीएल raises the verbosity of the completion में दो बार टैब साधते:

हैं "methodName" के बीच z की पूर्तियों है, और verbosity > 0 टैब का संकेत दो बार लगातार दबाया गया है, तो हम alternativesFor फोन और की एक सूची दिखाने के लिए ओवरलोडेड विधि हस्ताक्षर।

interpreter source से निम्न विधियों में से संकेत मिलता है क्या विधि पूरा करने के लिए फ़िल्टर किया है जब verbosity == 0 (यानी, जब आप केवल एक बार टैब पर पहुंच जाते हैं और alternativesFor संस्करण नहीं मिल रहा है):

def anyRefMethodsToShow = Set("isInstanceOf", "asInstanceOf", "toString") 

def excludeEndsWith: List[String] = Nil 

def excludeStartsWith: List[String] = List("<") // <byname>, <repeated>, etc. 

def excludeNames: List[String] = 
    (anyref.methodNames filterNot anyRefMethodsToShow) :+ "_root_" 

def exclude(name: String): Boolean = (
    (name contains "$") || 
    (excludeNames contains name) || 
    (excludeEndsWith exists (name endsWith _)) || 
    (excludeStartsWith exists (name startsWith _)) 
) 

तो साथ एक टैब जिसे आप कुछ नियमों द्वारा फ़िल्टर किए गए तरीकों को प्राप्त कर रहे हैं जिन्हें दुभाषिया डेवलपर्स ने तय किया है वे उचित और उपयोगी हैं। दो टैब आपको unfiltered संस्करण देता है।

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