Как я перестал использовать цвета и стал подсвечивать код по важности
Highlighting My Code Based on How Much I Care
Автор, вдохновившись статьей Никиты Прокопова о неэффективной подсветке синтаксиса, решил создать собственную тему. Он обнаружил, что светлые темы сложны из-за контраста, и в итоге отказался от цвета в пользу оттенков серого. В своей системе он выделяет только то, что действительно важно: комментарии, определения переменных и функций, а также управляющие конструкции. Обычные ключевые слова и пунктуация становятся почти незаметными. Подсветка призвана помогать глазу быстро находить смысловые части кода, а не отвлекать на синтаксис.
Если вы не можете вспомнить, какого цвета в вашей теме имена классов, значит, ваша цветовая схема не работает — она лишь успокаивает, а не помогает.
- nrabulinski
nrabulinski:
> попробуй вспомнить, какого цвета в твоей теме оформления имена классов?
Хотя я в целом согласен с мыслью этого поста и поста, на который он ссылается, я не согласен с предпосылкой, что нужно уметь активно вспоминать такие факты. Тема, которую я лично использую, довольно приглушённая, но она использует разные цвета для переменных, ключевых слов, аргументов, имён типов и нескольких других классов токенов. Я не думаю сознательно «хм, а какого цвета аргумент», чтобы искать их в коде — я просто их вижу, выучил за годы, и это уже мышечная память, которая помогает мне читать код. Так же, как я не могу вспомнить код от подъезда, но ввожу его несколько раз каждый день.
- sph
sph:
Я убеждён, что все неправильно понимают подсветку синтаксиса, и эта статья меня поддерживает.
Мои любимые раздражители:
- Я понятия не имею, как люди умудряются быть продуктивными с не-семантическими темами-радугой, которые так популярны в современных редакторах. У меня слишком СДВГ, чтобы быть чрезмерно стимулированным бесполезной информацией.
- Я постоянно ненавижу встречать код Zig на Github, где используемая тема превращает всё в коричневый. А, это потому что это член структуры. Чувак, в Zig всё — члены структур, глупо выделять яркий цвет для того, что составляет 90% исходного кода. Случайный пример из истории браузера: https://github.com/foxnne/aftersun/blob/main/src/time/enviro...
- Вчера я открыл какой-то код на Lisp в текстовом редакторе KDE KWrite, и каждая тема по умолчанию выделяет скобки жирным шрифтом и ярким цветом, чтобы они бросались в глаза. Скобки в Lisp должны сливаться с фоном, а не выпрыгивать в лицо. Это было совершенно непригодно, мне пришлось отключить подсветку синтаксиса.
Всегда ищу хорошие, минималистичные, приглушённые цветовые темы для своих редакторов. Хотелось бы, чтобы серьёзные дизайнеры создавали темы для удобства и комфорта, а не люди, которым не следует играть с цветами.
Помню коллегу, который писал код с выключенной подсветкой синтаксиса, и думал, что это эксцентричный выбор. Чем старше я становлюсь, тем больше ценю его мудрость. Я бы предпочёл отсутствие подсветки синтаксиса плохой; по крайней мере, можно было бы попытаться сделать код легко парсируемым по одной лишь структуре (сокращено…)
- wzdd
wzdd:
Эти посты о переосмыслении подсветки всегда начинаются с неверной предпосылки. Цвет имён классов в моём коде — это цвет, который есть у всех имён классов. Поработав с кодом некоторое время, я бы заметил, если бы один выглядел неправильно.
Мозг на самом деле очень эффективен. Ты не оптимизируешься на случайное запоминание вне контекста, если только не прилагаешь к этому усилий. Это ничего не говорит об эффективности схемы.
- mattlondon
mattlondon:
Хм, это не совсем то, что я ожидал.
Я думал, что это будет какая-то подсветка на основе сложности/риска/важности. Это сразу показалось мне моментом «почему я до этого не додумался?!», хотя на самом деле они тоже не додумались.
Так что я могу представить сценарий, где ты просматриваешь дифф от LLM-агента в IDE во время итераций. Дифф был бы подсвечен по важности/сложности для человеческого ревью. Тривиальные вещи вроде геттеров и сеттеров были бы серыми. Очень сложный или рискованный код был бы выделен высококонтрастным жирным цветом (возможно, со шкалой яркости в зависимости от критичности). Тогда при просмотре диффа от агента ты мгновенно видишь и сосредотачиваешься на самых важных частях, требующих наибольшего внимания.
Мне бы это очень пригодилось.
- twitchard
twitchard:
Если подсветка синтаксиса на основе правил действительно полезна для чтения кода, то почему никто не использует подсветку синтаксиса на основе правил для прозы?
Почему бы, например, не выделять визуально глагол в предложении и не приглушать артикли и предлоги?
В прозе автор может *выделить* текст жирным или курсивом для акцента, или использовать ## заголовки для сканирования. Почему мы не можем делать такие же ad-hoc выделения в коде?