Любая тема — чей-то чужой вкус. Тридцать штук идут в комплекте с Codeshot, каждая в светлом и тёмном варианте, и одна из них обычно подходит достаточно близко — но достаточно близко — странная планка для картинки, под которой стоит ваше имя.

На Mac мириться с этим больше не нужно. Настройки → Темы дают вам собственную тему: тринадцать цветов, превью, которое перерисовывается по мере выбора, и файл, который можно кому-то отдать.

Где это находится

Откройте настройки Codeshot и перейдите на вкладку Темы. Слева — список ваших тем. + добавляет тему, удаляет выбранную.

Справа — пример кода в выбранной теме, под ним поле имени, а ниже список цветов. Вся панель живая: поменяйте цвет, и пример сверху перерисуется сразу же.

Важны два элемента. Поле имени переименовывает тему. Use This Theme делает её той темой, которой приложение действительно рисует, — редактирование темы не переключает на неё, и именно этот шаг обычно забывают.

Тринадцать цветов

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

Цвет Что охватывает
Background Бумага за кодом
Plain Text Всё, на что подсветка не претендует: знаки препинания, скобки, операторы
Keywords let, var, struct, func, return
Strings Текст в кавычках
Numbers Числовые литералы
Comments Комментарии и документация
Declared Types Типы, объявленные в самом фрагменте
Library Types Типы из фреймворка: String, View, CGFloat
Functions Имена функций и методов
Members Свойства и члены, к которым обращаются через точку
Variables Имена переменных
Annotations Property wrappers и аннотации, @State и подобные
Attributes Имена атрибутов, в основном в языках разметки

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

Порядок, который работает

Начните с Background и Plain Text и доведите эту пару до ума, прежде чем трогать остальное. Все прочие решения оцениваются относительно них, так что выбирать их последними — значит выбирать всё заново.

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

Дальше ключевые слова, строки и числа — именно туда в реальном фрагменте попадает большая часть цвета. Типы, функции и члены после них, а последние вполне могут повторять уже выбранные цвета.

Смотрите в превью на каждом шаге, а не в конце. Панель для того и сделана, чтобы судить палитру по настоящему коду: пипетки врут, код — нет.

Что стоит знать до выбора цветов

Контраст — не роскошь. Картинки с кодом уменьшаются в ленте, их смотрят с телефона при дневном свете, и платформа сжимает их ещё раз. Сдержанная низкоконтрастная палитра, которая выглядит изысканно в полном размере, к моменту прочтения уже нечитаема. Если цвет трудно прочесть в превью, в ленте его нет.

Избегайте чисто чёрного фона, если только вы не экспортируете с прозрачностью или на тёмную подложку. На светлых обоях #000000 читается как дыра. Хорошие тёмные темы держатся в районе #1F1F24#282C34 именно поэтому.

Комментарии и обычный текст должны различаться. Если их яркость близка, проза и код сливаются в один серый блок и форма фрагмента исчезает.

Можно повторить тему редактора, но проверьте её вне редактора. Тема Xcode настроена на большое окно за столом. Те же цвета в картинке шириной 1000 пикселей на чужом телефоне — совсем другая история, и обычно им нужен чуть больший контраст, чем оригиналу.

Как поделиться темой

Меню внизу списка тем импортирует и экспортирует файлы тем.

Экспорт записывает тему в файл, импорт читает её обратно. Так тема попадает с вашего Mac на другой ваш Mac, в резервную копию или к кому-то в команде — и именно это делает общую палитру пригодной больше чем для одного человека.

Когда встроенные тридцать — ответ получше

Собирать свою тему стоит, когда вы делаете картинки регулярно и хотите, чтобы они выглядели как серия: цикл постов, документация продукта, слайды доклада.

Ради одного фрагмента — нет. Тридцать тем из комплекта все сделаны аккуратно, все есть в светлом и тёмном варианте и находятся в двух кликах. Сравните их рядом и возьмите ту, что подходит фрагменту.

Редактор нужен для случая, когда вы это уже сделали, а ответ всё равно был почти.