Барвистий код як колір допомагає працювати з кодом

Як програміст, що працює з різними мовами і на різних платформах, я зіткнулася в певний момент часу з однією несподіваною проблемою: для проведення ревью або написання власного коду доводилося витрачати досить багато часу на перемикання між IDE і мовами. Виникла потреба в якомусь інструменті, який допоміг мені робити це ефективніше і без втрати концентрації. І раптово мені на допомогу прийшов колір . І хочу поділитися цим маленьким лайфхаком. У всіх 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.

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