9

Bir Chrome uzantısında ACE Editor kullanıyorum. ACE'nin Otomatik Tamamlama özelliğini kullanıyorum ancak tüm yerel dizeler veya parçacıklar yerine otomatik tamamlama için kullanılacak statik dizelerin bir listesini tam olarak tanımlamak istiyorum. (Gelecekte statik bir listeden daha karmaşık bir şey kullanıyor olabilirim, fakat şimdilik statik iyi durumda.)ACE Editor Otomatik Tamamlama - özel dizeler

Bunu nasıl gerçekleştireceğiniz konusunda herhangi bir talimat verebilecek biri var mı? Otomatik tamamlama özelliğini zaten etkinleştirdim ve snippet'leri kapalı, ancak kullanmak için statik bir dizeleri tanımlamakta sorun yaşıyorum.

var bugüne kadar tek şey:

var editor = ace.edit('propertiesText'); 
editor.getSession().setMode('ace/mode/properties'); 
var langTools = ace.require('ace/ext/language_tools'); 

// code here to define custom strings? 

editor.setOptions({ 
    enableBasicAutocompletion: true 
}); 

cevap

17

o aslında/check nasıl olsa önek kullanıyor mu bu

var staticWordCompleter = { 
    getCompletions: function(editor, session, pos, prefix, callback) { 
     var wordList = ["foo", "bar", "baz"]; 
     callback(null, wordList.map(function(word) { 
      return { 
       caption: word, 
       value: word, 
       meta: "static" 
      }; 
     })); 

    } 
} 

langTools.setCompleters([staticWordCompleter]) 
// or 
editor.completers = [staticWordCompleter] 
+0

gibi Completer eklemem gerekiyor? Magic geri çağırmada mı oluyor? Veya girilen önekden bağımsız olarak tüm kelime listesini basitçe döküyor mu? – Xan

+1

Noramlly ace otomatik tamamlayıcı, listeyi daha sonra filtreler, https://github.com/ajaxorg/ace/blob/v1.1.9/lib/ace/autocomplete.js#L427. Önek, içeriğe göre farklı tamamlamalar vermesi gereken daha karmaşık tamamlayıcılar için iletilir. –

+0

Açıklama için teşekkürler. Bu hiçbir yerde belgelenmiş gibi görünmüyor. – Xan