2012-01-20 21 views
6

sto usando autonomo evidenziando (non l'editor), qualcosa di simile: http://codemirror.net/demo/runmode.htmlCodeMirror - lingua auto-detection

Come posso rilevare automaticamente la lingua da utilizzare durante l'esecuzione del evidenziatore?

C'è una modalità di autochanging demo qui: http://codemirror.net/demo/changemode.html

Ma io non so come avrei potuto adattare questo per lavorare con Codemirror.runMode(). Desidero evidenziare l'intero blocco di codice utilizzando lo schema rilevato automaticamente.

risposta

3

La demo "changemode" può distinguere solo tra il linguaggio di programmazione "Scheme" e "tutto il resto", vedere la realizzazione di

function looksLikeScheme(code) { 
    return !/^\s*\(\s*function\b/.test(code) && /^\s*[;\(]/.test(code); 
} 

Quindi questo non funzionerà per rilevare automaticamente altri linguaggi di programmazione, e come dice la pagina demo, anche per scoprire Scheme è molto rozzo.

Sfortunatamente, non è facile rilevare automaticamente una vasta gamma di linguaggi di programmazione da uno snippet di codice sorgente (per i frammenti di piccole dimensioni, i linguaggi di programmazione diversi potrebbero persino utilizzare la stessa sintassi esatta). Tuttavia, un approccio ragionevole è suggerito in Detecting programming language from a snippet.

Problemi correlati