Подсветка синтаксиса

Для облегчения редактирования в режиме исходного кода системы ФЭНДОМА предусматривают функцию **подсветки синтаксиса**. Многие профессиональные и не очень редакторы кода типа Visual Studio Code или Notepad++ также имеют в своем распоряжении рассматриваемую функцию.

## Старая платформа

~~То есть та, на которой работаем мы сейчас. Ей, конечно, уже недолго осталось, но это совсем другая история.~~ Итак, подсветку синтаксиса можно встретить в редакторе исходного кода, обычном и классического визуального редактора. Модерновый визуал, который так любят юзать новички, исходник поддерживает в стиле "на всякий случай": там нет ни инструментов, ни подсветки. Также подсветка используется в специализированных редакторах типа Ace.

Поговорим, однако, о подсветке в самом обыкновенном редакторе исходника. В котором, собственно, и пишется сей материальчик. От вики к вики его стиль не меняется, только есть подразделение на светлую тему и темную. Интересующие систему куски кода накладываются на "пометки маркером", то есть на цветные подложки определенного цвета. По цвету подложки можно собрать в следующую таблицу:

И вот что интересно: все это добро просто невозможно персонализировать. В любом случае, нельзя адекватными способами. А чем же дело? Смех и грусть в том, что расширение, отвечающее за подсветку, выставляет подложки лютым способом. Смотрите сами:

```
<div id="wpTextbox0" dir="ltr" lang="ru" style="background-color: rgb(255, 231, 200); font-family: Consolas, &quot;Eupheima UCAS&quot;, Ayuthaya, Menlo, monospace; font-size: 13px; resize: none; tab-size: 8; height: 302px;">
    <span id="s0">
        :before
        :after
    </span>
    <span id="s1">
        :before
        :after
    </span>
    ...
</div>

```

Здесь используются псевдоэлементы. Каждый "бифор" и "афтер" — цветной кусочек кода! Трагизма ситуации добавляет и то, что псевдоэлементы не имеют CSS-селекторов, и достать их можно только через JavaScript. Достать, но не изменить.

К тому же, чем больше код, тем больше пачка этих спанов. При каждом обновлении кода обновляется весь див, в результате чего может произойти красивейшая ошибка со сбитым синтаксисом. То, что должно было помогать, становится диким винегретом, который усложняет восприятие текста. Лечится это, кстати, перезагрузкой редактора.

## Unified Community Platform

Платформа, общая для ФЭНДОМА и Геймпедии, на которую со старой перешли уже, кажется, все проекты. Она продолжает получать обновления, а центральной вики, признана эта.

А что здесь? Подсветка синтаксиса встречается по-прежнему в редакторе исходного кода. Но здесь уже гораздо больше вариантов подсветки, причем окрашивается не фон текста, а сам текст. В коде эта система называется CodeMirror. На старой платформе цветные элементы расположены буквально в соседнем диве, а тут это все обернуто еще в фигову тучу блоков. В конечном счете все упирается в спаны, а каждый кусок (!) какого-то фрагмента кода имеет свой класс. Всего я насчитал 14 разновидностей подсветки и три вида, дополняющие основные:

Как видим, кастомизация может проходить легко и непринужденно, и это не зря: некоторые виды подсветки выглядят просто нечитабельно. Не знаю, столько разных цветных элементов — благо или нет, но хочется верить, что это разноцветие не помешает работе с кодом, а только облегчит ее. Тем более, новый редактор пока не был замечен в сбившейся подсветке.

## Примечания

1. ↑ Из-за бага ФЭНДОМА цвет отсутствует.
2. ↑ Примеры даны на белом фоне для наглядности.
3. ↑ 3,0 3,1 В данном случае. Сейчас используется один из оттенков цветовой схемы проекта, и это, кажется, цвет ссылок