2013-11-15 22 views
7

Mi piacerebbe sapere se è possibile abilitare il completamento automatico mentre l'utente sta digitando in editor ace.js. Al momento nel mio progetto il completamento automatico è abilitato quando il tipo di utente: ctrl + spazio. Quindi, è possibile aggiungere alcune parole chiave nell'elenco di completamento automatico?completamento automatico in editor ace.js

Grazie

risposta

15

per l'attivazione di completamento automatico use

editor.commands.on("afterExec", function(e){ 
    if (e.command.name == "insertstring"&&/^[\w.]$/.test(e.args)) { 
     editor.execCommand("startAutocomplete") 
    } 
}) 

Per addidng alcune parole chiave è possibile aggiungere un altro completer per l'editor o eseguire l'override getCompletions metodo della modalità.

+0

Grazie! Mostra il completamento automatico mentre l'utente sta digitando, ma sostituisce automaticamente anche le parole digitate quando c'è una sola corrispondenza nelle opzioni di completamento automatico. C'è un modo per evitarlo? – Proghero

+2

@Proghero hai mai trovato una risposta alla tua domanda? Ho lo stesso problema. –

+1

L'ultima versione di ace ha il supporto incorporato per questo vedere https://github.com/ajaxorg/ace/blob/4599dc6/lib/ace/ext/language_tools.js#L150 –

3

È già integrato! Vedere le opzioni che ho scelto in editor.setOptions:

var langTools = ace.require("ace/ext/language_tools"); 
    var editor = ace.edit("editor"); 

    editor.setTheme("ace/theme/monokai"); 
    editor.getSession().setMode("ace/mode/yaml"); 

    editor.setOptions({ 
     enableBasicAutocompletion: true, 
     enableSnippets: true, 
     enableLiveAutocompletion: true 
    }); 
Problemi correlati