9

Utilizzo editor ACE in un'estensione di Chrome. Sto utilizzando la funzione di completamento automatico di ACE, ma voglio essere in grado di definire completamente un elenco di stringhe statiche da utilizzare per il completamento automatico, invece di stringhe o snippet locali. (In futuro potrei usare qualcosa di più sofisticato di un elenco statico, ma per ora statico va bene.)Completamento automatico di ACE Editor - stringhe personalizzate

Qualcuno può fornire alcune istruzioni su come eseguire questo? Ho già attivato l'autocomplete e alcuni snippet, ma non riesco a definire un elenco statico di stringhe da utilizzare.

Tutto quello che ho finora è:

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 
}); 

risposta

17

è necessario aggiungere una più completa come questo

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

Vuol effettivamente controllare/utilizzare il prefisso comunque? Successo magico in 'callback'? O semplicemente scarica l'intera lista di parole indipendentemente dal prefisso inserito? – Xan

+1

L'autocompletatore Noramlly asso filtra l'elenco in seguito, https://github.com/ajaxorg/ace/blob/v1.1.9/lib/ace/autocomplete.js#L427. Il prefisso viene passato per i completatori più complessi che devono fornire diversi completamenti in base al contesto. –

+0

Grazie per il chiarimento. È un peccato che questo non sembra essere documentato da nessuna parte. – Xan

Problemi correlati