2013-02-22 55 views
7

ठीक के लिए स्वत: पूर्णता, तो यहाँ सौदा है:ऐस संपादक

  • मैं Ace Editor
  • एप्लिकेशन संपादक में एकीकृत है उपयोग कर रहा हूँ, लिखा है ऑब्जेक्टिव-सी/कोको
  • मैं की जरूरत है स्वतः पूर्ण

अब (खोजशब्दों की एक सेट के लिए), यहाँ पकड़ है:

  • मैं जानता हूँ कि स्वतः पूर्ण
  • मैं दूसरों के द्वारा कुछ प्रयास के बारे में पता देशी रूप समर्थित अभी तक नहीं है (उदा Codiad IDE, Gherkin, Alloy-UI), Jquery UI Autocomplete के कुछ इस्तेमाल कर रही है - लेकिन मैं अभी भी समझ नहीं है कि यह कैसे एक मौजूदा ऐस सेटअप करने के लिए अनुकूलित किया जा सकता
  • मैं अभी भी यकीन नहीं है अगर मैं एक जे एस उन्मुख समाधान के लिए या सिर्फ जाना चाहिए उस

के लिए उद्देश्य-सी/कोको का उपयोग करें किसी भी मदद की सराहना की जाएगी।

+0

संभव डुप्लिकेट (http://stackoverflow.com/questions/13545433/autocompletion-in-ace-editor) – endorama

उत्तर

17

.. स्वतः पूर्ण इक्का संपादक में प्राप्त किया जा सकता

कोड:

var editor = ace.edit('editor'); 
    editor.setTheme("ace/theme/eclipse"); 
    editor.getSession().setMode("ace/mode/java"); 
    editor.setShowInvisibles(true); 
    editor.setDisplayIndentGuides(true); 
    editor.getSession().setUseWrapMode(true);  
    var jsonUrl = "JSON/Components/proce.json"; 
    //the url where the json file with the suggestions is present 
    var langTools = ace.require("ace/ext/language_tools"); 
    editor.setOptions({enableBasicAutocompletion: true}); 
    var rhymeCompleter = { 
     getCompletions: function(editor, session, pos, prefix, callback) { 
      if (prefix.length === 0) { callback(null, []); return } 
      $.getJSON(jsonUrl, function(wordList) { 
       callback(null, wordList.map(function(ea) {   
        return {name: ea.word, value: ea.word, meta: "optional text"} 
       })); 
      }) 
     } 
    } 

    langTools.addCompleter(rhymeCompleter); 

JSON फ़ाइल प्रारूप:

[ {"word":"hello"}, 
    {"word":"good morning"}, 
    {"word":"suggestions"}, 
    {"word":"auto suggest"}, 
    {"word":"try this"}] 

संदर्भ/डेमो:

http://plnkr.co/edit/6MVntVmXYUbjR0DI82Cr?p=preview

0

स्वत: पूर्णता का कठिन हिस्सा उन खोजशब्दों को ढूंढ रहा है जो शेष करना आसान है।

  1. आपको पॉपअप की आवश्यकता है, और सूची पूर्णता प्रदर्शित करने के लिए देखें, यह कोको आधारित पॉपअप का उपयोग करने के लिए बेहतर हो सकता है।
  2. कुछ छानने समारोह, सरल startsWith जांच करेंगे, लेकिन आप उदात्त
  3. तुच्छ कॉल की तरह अच्छे फ्लेक्स मैच उपयोग कर सकते हैं चयनित पूरा होने

सम्मिलित करने के लिए 2-3 के लिए editor.session.replace करने के लिए आप अपने विशिष्ट उपयोगकेस के बारे में https://github.com/ajaxorg/ace/issues/110 पर टिप्पणी करनी चाहिए क्योंकि ऑटोकंपलीशन के लिए मूल समर्थन प्राप्त करने के लिए एक काम है।

2

आजकल ऐस लाइव ऑटो समापन जोड़ने के लिए: अपने HTML में इक्का/ext-language_tools.js शामिल हैं। द। कॉल अभी तक अच्छी तरह से काम नहीं करता है, इसलिए आपको इसके लिए ctrl-space या alt-space दर्ज करना पड़ सकता है, लेकिन मानक सिंटैक्स सामग्री जैसे कि लेखन फ़ंक्शन, अब दिखाए जाएंगे।तब :

var editor = ace.edit("editor"); 

ace.require("ace/ext/language_tools"); 
editor.setOptions({ 
    enableBasicAutocompletion: true, 
    enableSnippets: true, 
    enableLiveAutocompletion: true 
}); 
[ऐस संपादक में स्वत: पूर्णता] की
+0

जब एक में एम्बेडेड मेरे लिए काम नहीं किया आवेदन रैपर मुझे 'editor.setOptions (" enableBasicAutocompletion ", true) का उपयोग करना पड़ा;'। मुझे लगता है कि यह एप्लिकेशन रैपर प्रॉक्सी इंटरफ़ेस में एक बग है और ऐस में नहीं है। –