El tokenizer en monaco-editor no parece admitir 'ignorar caso' i marca en expresiones regulares. Ejemplo de código a continuación,
Para replicar, puede pegar esto en el patio de recreo e intentar ejecutarlo usted mismo.
monaco.languages.register({ id: 'sample' }); monaco.languages.setMonarchTokensProvider('sample', { tokenizer: { root: [ [/cmd1|cmd2/i, 'keyword'] ] } }); monaco.editor.create(document.getElementById('container'), { value: "cmd1 10\nCMD2 10", language: 'sample' }); cmd1 se vuelve azul mientras que CMD2 no.
¿Es esto intencional? ¿Hay alguna forma de evitarlo?
Agregar ignoreCase:true a las opciones debería funcionar.
monaco.languages.register({ id: 'sample' }); monaco.languages.setMonarchTokensProvider('sample', { ignoreCase:true, tokenizer: { root: [ [/cmd1|cmd2/, 'keyword'] ] } }); monaco.editor.create(document.getElementById('container'), { value: "cmd1 10\nCMD2 10", language: 'sample' });