Во всех IDE есть такая замечательная функция, как подсветка синтаксиса. Все бы хорошо, но везде она разная и даже внутри одной среды разработки может отличаться для разных языков. Но главное то, что подсветка не помогает достаточно часто (лично мне) различать структурные компоненты, такие как методы, переменные, классы, структуры… Они, как правило, отрисовываются одним цветом и я решила подобрать свою цветовую схему, которая бы выполняла функцию дифференциации не только синтаксических элементов (как то ключевые слова), но и семантических (классы, структуры, методы и функции).

Начало концепции положила цветовая схема Ciapre для Xcode. Она изначально (да и стоит признать, сама IDE) предоставляет такое семантическое деление именно цветом. Flat цвета не режут глаза и достаточно сильно отличаются для разных типов семантических элементов.
В результате получилось примерно следующее разделение:
- Ключевые слова — красный
- Reference Types (классы) — желтый
- Интерфейсы — оранжевый
- Value Types — фиолетовый
- Константные значения — тоже фиолетовый, но поярче
- Методы и функции — синий (внешние, из пакетов/модулей — чуть ярче)
- Поля и свойства типов — зеленый
После переноса в разные IDE получилось примерно следующее (да-да, я знаю первую реакцию — «что за кислятина» :-) ):
- Swift (Xcode)
В Xcode проблемы с интерфейсами (в плане разделения от классов), они считаются за reference type и тоже отображаются желтым.

- Kotlin (Android Studio) (можно сравнить с примером выше — darkula)
В котлине существуют разного рода квалифаеры и метки, для них тоже есть отдельный цвет

- Java (Android Studio)

- C# (Visual Studio)
В шарпе есть неймспейсы, для них — отдельный цвет. Ну а еще студия огорчает тем, что нет четкого семантического разделения в настройках (поле класса, метод и т.п.). В этом мне помогает ReSharper.

Из дополнительных бонусов — зрение позволяет сразу находить странности уже на уровне цветового восприятия даже не прочитав текст. Если я знаю, что должен быть интерфейс, то я увижу, что не хватает оранжевого цвета там, где я это ожидаю (например, может быть написан тип, соответствующий интерфейсу и все вроде как валидно, но нет).
Собственно и все :)
Хорошего и красивого кода всем!

