Search code examples
javascripteditormonaco-editor

monaco-editor tokenizer do not support "ignore case" regex


The tokenizer in monaco-editor do not seem to support 'ignore case' i flag in regex. Sample code below,

To replicate, you can paste this in playground and try running yourself.

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 turns blue while CMD2 do not.

Is this intentional? Is there a way around?


Solution

  • Adding ignoreCase:true to the options should work.

    Editor Reference

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