2013-04-09 17 views
12

Sto lavorando a un progetto che utilizza un backend java/scala (Lift, per essere precisi, sebbene ciò non dovrebbe influire su questa domanda), e come parte del frontend usiamo Ace Editor. Sono stato googling per un po 'e devo ancora trovare una risposta a questa domanda:Come selezionare automaticamente una "modalità" per Ace Editor, data un'estensione di file

Dato un estensione del file (ad esempio js, c, cpp, h, java, rb, ecc), come posso scegliere automaticamente un Ace "mode" per la lingua appropriata?

Spero di evitare di creare manualmente una mappa, a la js -> javascript, c -> c_cpp, java -> java. C'è una libreria java/scala disponibile per questo? O meglio ancora, Ace ha questa funzionalità costruita in qualche modo?

risposta

25

Ace ora fornisce l'estensione modellista per farlo.

var modelist = ace.require("ace/ext/modelist") 
var filePath = "blahblah/weee/some.js" 
var mode = modelist.getModeForPath(filePath).mode 
editor.session.setMode(mode) // mode now contains "ace/mode/javascript". 

Si noti che se si utilizza prebuilt versione di asso è necessario includere ace.js e ext-modelist.js file nella tua pagina.
Con la versione di origine, è necessario sostituire ace.require con require e require.js caricherà automaticamente tutte le dipendenze.

Vedi https://github.com/ajaxorg/ace/blob/master/demo/modelist.html e https://github.com/ajaxorg/ace-builds/blob/master/demo/modelist.html per gli esempi di come usarlo

+0

Era questo fusa? Come si usa ora? –

+0

È stata aggiornata la risposta per includere collegamenti alle pagine demo di ACE. –

+1

Grazie signore! e qui è il tuo upvote. Aggiunto il comando esatto alla risposta per renderlo più facile da trovare. –

Problemi correlati