2012-05-07 7 views
5

का उपयोग कर उपयोगकर्ता परिभाषित वर्ग विधियों को कैसे पूरा करें मैक ओएस एक्स 10.7 के तहत काम कर रहा हूं। मुझे javacompleteरोगजनक की सहायता से काम कर रहा है, लेकिन केवल जेडीके कक्षाएं पूरी करता है, न कि मेरे द्वारा बनाए गए वर्गों में। मेरी वस्तुओं में से एक को पूरा करने की कोशिश करते समय मुझे 'पैटर्न नहीं मिला' मिल रहा है। क्या यह वास्तव में जेडीके कक्षाओं तक ही सीमित है? यदि नहीं, तो क्या कोई उनकी कॉन्फ़िगरेशन का वर्णन कर सकता है।javacomplete

बीटीडब्ल्यू, मैंने ctags बनाया है, लेकिन यह या तो javacomplete के साथ काम नहीं किया है। हालांकि, ctrl-x ctrl-] बनाए गए ctags के साथ ठीक काम करता है।

उत्तर

0

मैंने supertab के साथ javacomplete प्लगइन का उपयोग किया है और मैंने पाया कि विधि पूर्ण करने में आसान तरीका easytags.vim नामक एक और प्लगइन का उपयोग करके है जो स्वचालित रूप से टैग बनाता है जैसे आप अपनी कक्षाओं को संकलित करते हैं। स्मृति से यह उपयोगकर्ता परिभाषित वर्ग और विधि पूर्णता प्रदान करता है।

1

आपको अपने स्रोतों के लिए क्लास पथ सेट अप करने की आवश्यकता है।

javacomplete प्रलेखन से:

3. Set classpath using the following function: > 
    javacomplete#AddClassPath('jarfile_or_classes_path') 
    javacomplete#DelClassPath('jarfile_or_classes_path') 
    javacomplete#SetClassPath('semicolon_separated_string') 

    Another two variables will be used if they are existing: 
     |g:java_classpath| global classpath 
     |b:classpath|  associated with current buffer 

मैं स्वत: पूर्ण एंड्रॉयड परियोजनाओं मेरी .vimrc करने के लिए निम्न जोड़ लिया है:

if filereadable('AndroidManifest.xml') 
    call javacomplete#SetClassPath('/home/tidbeck/android/sdk/android-sdk-linux_x86/platforms/android-17/android.jar:libs/android-support-v4.jar:bin/classes') 
    call javacomplete#SetSourcePath('src') 
endif 

दो चीजें हैं जो मैंने देखा है:

  • javacomplete#AddClassPathका समर्थन नहीं करता हैफ़ाइलें भले ही डॉक्स का कहना है कि इतनी
  • मैं
0

काम कर रहा vim आप प्लगइन स्थापित करने के बाद करने के लिए पूरा होने पाने के लिए मेरे टैग फ़ाइल को निकालने के लिए है .vimrc में इन पंक्तियों को जोड़ने के लिए किया था:

" Only do this part when compiled with support for autocommands. 
if has("autocmd") 
    autocmd Filetype java setlocal omnifunc=javacomplete#Complete 
endif 

मैं भी, मौजूदा टैग फ़ाइल (ctags द्वारा निर्मित) के साथ काम करने में असमर्थ था। जैसा कि बताया गया है, एक वर्कअराउंड .vimrc के अंदर विम विकल्प tags को अनसेट करना है। लेकिन यह मेरे लिए एक विकल्प नहीं था। मैंने टैग फ़ाइल को "अनदेखा" करने के लिए बस javacomplete.vim का उपयोग किया।

पैच इस प्रकार है:

 
--- autoload/javacomplete.vim 2011-01-30 21:33:46.000000000 +0100 
+++ /home/kndl/.vim/autoload/javacomplete.vim 2015-02-12 20:46:48.227465321 +0100 
@@ -2510,7 +2510,8 @@ 
fu! s:GetClassInfoFromSource(class, filename) 
    let ci = {} 
    if len(tagfiles()) > 0 
- let ci = s:DoGetClassInfoFromTags(a:class) 
+ " kndl: Deactivate ctags feature as this does not work. It seems that I am unable to build an accepted tags file. 
+ "let ci = s:DoGetClassInfoFromTags(a:class) 
    endif 

    if empty(ci)