Codemirror плагин simplemode создает регулярное выражение для функции - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь определить регулярное выражение подсветки синтаксиса для определения функции для CodeMirror с помощью плагина простого режима.Я нашел этот пример в документах :

  {
   regex: /(function)(\s+)([a-z$][\w$]*)/,
   token: ["keyword", null, "variable-2"]
  }

, который отлично работает для синтаксиса ниже

enter image description here

но в моем случае я ищу выражение, которое удалось бы отформатировать foobar(arg1, arg2, ...) (без function).Простое переписывание определения в

  {
   regex: /(\s+)([a-z$][\w$]*)/,
   token: [null, "variable-2"]
  }

, похоже, не работает и производит подсветку синтаксиса:

enter image description here

Как получитьПодсветка синтаксиса без ключевого слова "function"?

Обновление

Согласно комментарию @Wiktor Stribiżew, который я пробовал:

{
  regex: /(\w+\s*\(|\G(?!^)\s*,)\s*([a-z$][\w$]*)/,
  token: ["variable-2", null]
}

Мне пришлосьпоменяйте местами элементы токена, иначе имя функции не было бы окрашено.Вопрос теперь в том, как заставить первый аргумент (функции, который я пытаюсь проанализировать) игнорировать, чтобы он был закрашен одним из следующих правил?В приведенном ниже примере var1 должен быть окрашен так же, как и другие стандартные переменные, такие как xyz и abc.

enter image description here

...