Highlighty только полные слова в codemirror - PullRequest
0 голосов
/ 27 ноября 2018

Я пытаюсь написать простую подсветку синтаксиса для командных файлов для редактора codemirror.Но я застрял в выделении команд.Я хочу, чтобы были выделены только полные слова.Но в некоторых случаях подсвечиваются также части имени переменной или пути.

Вот как выглядит подсветка:

enter image description here

Я использую \b(commands)\b в своем регулярном выражении, так что сопоставляются только полные слова.Но это не похоже на работу.Возможно, это ошибка codemirror?

Это код режима codemirror для простого выделения команд

CodeMirror.defineSimpleMode("batch", {
    start: [
        {   //commands
            regex: /\b(?:assoc|aux|break|call|cd|chcp|chdir|choice|cls|cmdextversion|color|com1|com2|com3|com4|com|con|copy|country|ctty|date|defined|del|dir|do|dpath|else|endlocal|erase|errorlevel|exist|exit|for|ftype|goto|if|in|loadfix|loadhigh|lpt|lpt1|lpt2|lpt3|lpt4|md|mkdir|move|not|nul|path|pause|popd|prn|prompt|pushd|rd|rename|ren|rmdir|setlocal|set|shift|start|time|title|type|verify|ver|vol)\b/i,
            token: "builtin"
        }
    ]
});

1 Ответ

0 голосов
/ 28 ноября 2018

Я наконец нашел решение для этого.

Вместо \b(commands)\b я использую (?:\s|^)(commands)(?:\s|$), как предложил Джон Смит.При этом только команды выделяются пробелом или началом строки перед командой и пробелом или концом строки после команды.

...