Статичне підсвічування синтаксису


Статичне підсвічування синтаксису - це підсвічування коду, який користувач не може змінити. Сюди належать фрагменти коду, ітерації та інше.

Note

Онлайн-редактор не використовує статичне підсвічування синтаксису, адже користувач може змінювати код на льоту. Якщо хочеться дізнатися більше про те, як ми працюємо з підсвічуванням синтаксису в онлайн-редакторі, зазирніть до документації з динамічного підсвічування синтаксису.

Реалізація

Статичне підсвічування синтаксису виконує бібліотека highlightjs.

Коли ми додаємо підтримку своєї мови, є три варіанти:

  1. Мову підтримує highlightjs з коробки (тобто її внесено до списку підтримуваних мов). Якщо так, переходимо до розділу Налаштування треку.
  2. Мову підтримують через наявний плагін highlightjs. Якщо так, переходимо до розділу Використання наявного плагіна.
  3. Мову не підтримують. Тепер є три варіанти:
    1. Написати плагін highlightjs з нуля, як описано в розділі Створення нового плагіна.
    2. Синтаксис нашої мови (значною мірою) нагадує синтаксис іншої мови (наприклад, синтаксис Unison нагадує Haskell), і тоді можна скористатися підсвічуванням синтаксису тієї мови для своєї. Докладніше про це в розділі Налаштування треку.
    3. Не мати статичного підсвічування синтаксису.

Налаштування треку

Щоб увімкнути підтримку highlightjs для мови нашого треку, потрібно змінити файл config.json цього треку. У файлі config.json додаємо або встановлюємо ключ online_editor.highlightjs_language з відповідним ідентифікатором мови highlightjs (його можна знайти в документації).

Приклад

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

Використання наявного плагіна

Щоб скористатися наявним плагіном, його потрібно опублікувати на NPM. Якщо плагін не опубліковано на NPM, є такі варіанти:

  1. Запитати автора плагіна, чи не хоче він опублікувати його на NPM.
  2. Зробити форк репозиторію й опублікувати його самостійно.
  3. Попросити нас (Exercism) зробити форк репозиторію, і ми його опублікуємо. Для цього створюємо тему на форумі із цим проханням.

Наступний крок - увімкнути плагін.

Увімкнення плагіна

Щоб увімкнути плагін (який має бути опублікований на NPM), створюємо тему на форумі із проханням додати підтримку цього плагіна до сайту. Тоді ми (Exercism) створимо Pull Request, який додає плагін до сайту. Після того як PR буде змерджено, можна увімкнути підтримку highlightjs, виконавши інструкції з розділу Налаштування треку.

Створення нового плагіна

Якщо хочеться створити плагін, є два варіанти розміщення:

  1. Створити репозиторій на власному акаунті й опублікувати його самостійно.
  2. Попросити нас (Exercism) створити репозиторій і дозволити нам його опублікувати. Для цього створюємо тему на форумі із цим проханням.

Коли репозиторій є, реалізуємо плагін за інструкціями зі створення мови.

Далі плагін потрібно опублікувати на NPM. Наступний крок - увімкнути плагін.

Використання іншої мови

Синтаксис нашої мови (значною мірою) нагадує синтаксис іншої мови, і тоді можна скористатися підсвічуванням синтаксису тієї мови для своєї. Для цього налаштовуємо трек на використання ідентифікатора мови highlightjs тієї іншої мови. Докладніше про це в розділі Налаштування треку.