2012-08-08 26 views
5

कोडमेयरर के स्वतः पूर्ण होने के लिए एक अच्छा उदाहरण है: linkकोडेमिरर रिमोट ऑटोकप्लिशन

विचार है कि सर्वर साइड स्वतः पूर्ण होना (उदा। अजाक्स सेवा जो जावा को स्वत: पूर्ण करती है)। क्या किसी के पास कोडमिरर के साथ एक दूरस्थ स्वत: पूर्णता का उदाहरण है?

+0

क्या आपको लगता है कि मतलब है कॉल? यह सभी ग्राहक पक्ष है। कोडमिरर मोड (स्वत: पूर्णता के लिए उपयोग किया जाता है) ब्राउज़र में निष्पादित सभी जावास्क्रिप्ट प्रोग्राम हैं। –

+0

सुझाव अजाक्स अनुरोध (सर्वर पक्ष) – ic3

उत्तर

0
// javascript code 

var editor; 

function createEditor (data) { 
    editor = CodeMirror.fromTextArea(myTextarea, { 
     mode: "text/x-sql", 
     extraKeys: {"Ctrl-Q": "autocomplete"}, 
     hint: CodeMirror.hint.sql, 
     hintOptions: { 
      tables: data ? data : {} 
     } 
    }) 
} 

(function createEditorWithRemoteData() { 
    $.ajax({ 
     type:'POST', 
     dataType:'json', 
     url:'data.json', 
     success:createEditor, 
     error:function() {} 
    }) 
})(); 

// data.json 

{ 
    "table1": [ "col_A", "col_B", "col_C" ], 
    "table2": [ "other_columns1", "other_columns2" ] 
} 
+0

से आ रहा है यह एक निश्चित समापन सूची का तात्पर्य है – Svend

1

मैं async पूर्तियों (, स्वाद ES6 तो ES3 के लिए, var साथ let की जगह और function साथ =>) निम्नलिखित का उपयोग करके CodeMirror 5.3 के शो-hint.js साथ काम करना आरंभ कर लिया है

हालांकि कोई वास्तविक AJAX नहीं है, यह उम्मीद है कि इसे कैसे हुक करना है, बस अपने AJAX कॉल पूर्ण करने वाले हैंडलर में callback का आह्वान करें।

CodeMirror.registerHelper('hint', 'ajax', (mirror, callback) => { 
    let words = ['foo', 'bar', 'baz']; 
    let cur = mirror.getCursor(); 
    let range = mirror.findWordAt(cur); 
    let fragment = mirror.getRange(range.anchor, range.head); 
    callback({ 
     list: words.filter(w => w.indexOf(fragment) === 0), 
     from: range.anchor, 
     to: range.head 
    }); 
}); 
CodeMirror.hint.ajax.async = true; 

CodeMirror.commands.autocomplete = function(mirror) { 
    mirror.showHint({ hint: CodeMirror.hint.ajax }); 
}; 

कुंजी async गुण सेट करने के लिए के रूप में दस्तावेज़ में आपको बताता है:

यह सच करने के लिए एक हिंट समारोह पर async गुण सेट करने के लिए संभव है जिस स्थिति में यह कहा जाएगा तर्क (सेमी, कॉलबैक, ? विकल्प), और पूरा इंटरफेस के साथ ही पॉप की जाएगी हिंट समारोह कॉलबैक