Eslint: Ожидается { после условия 'while'

Я форкнул Formatting toolbar, чтобы добавить немного очень кастомного форматирования.

Вот ссылка на код: discourse-formatting-toolbar/assets/javascripts/lib/discourse-markdown/formatting_bbcode.js at master · MonDiscourse/discourse-formatting-toolbar · GitHub

Мой код выглядит так:

function replaceTitle(text) {
  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  );
  return text;
}

Но eslint жалуется:

    9:3  error  Expected { after 'while' condition  curly

Я пробовал перенести этот while и всё, что после него, на одну строку (форматирование здесь применяется vscode и обычно работает с другими моими плагинами), но это не помогло.

Может кто-нибудь подсказать, в чём дело?

EDIT: Ну, оказалось, что эта функция мне на самом деле не нужна, но я всё равно хотел бы понять, в чём проблема.

Причина предупреждения eslint заключается в том, что вам нужны фигурные скобки вокруг вашего return text;

То есть, это должно выглядеть так:

  while (
    text !==
    (text = text.replace(/\[title\](.+?)\[\/title\]/gi, function (match, p) {
      return `<div class="job-title">${p}</div>`;
    }))
  ) {
    return text;
  }

Хотя JavaScript допускает опущение фигурных скобок, ESLint требует единообразного стиля их использования.

Подробнее о правиле curly здесь: