Разработчик делится фрагментом кода в виде скриншота в Twitter. Учебный блог рендерит примеры как изображения вместо блоков кода. Документация внутреннего инструмента существует только в виде скриншотов терминала. Код отлично читается, но заперт внутри изображения — а перепечатывание кода с картинки — один из самых надёжных способов внести незаметные баги.
Почему перепечатка кода с изображений не работает
Код не прощает неточностей. Пропущенная точка с запятой, строчная L, спутанная с цифрой 1, фигурная скобка вместо круглой, тире вместо дефиса — любая из этих вещей молча сломает ваш код. Перепечатывая со скриншота, вы занимаетесь визуальным разбором символ за символом на скорости, которая как раз и провоцирует такие ошибки.
Проблема широко распространена. Социальные сети превращают код в изображения ради красивого отображения. Старая документация никогда не мигрировала со скриншотов. Сообщения с кодом в Slack и Teams часто скриншотят и пересылают. Внутренние вики годами накапливают вставленные скриншоты терминала, которые никто не переписал.
Извлекайте код прямо с экрана
Optic считывает символы кода прямо с экрана. Откройте скриншот или страницу с изображением кода, активируйте Optic из строки меню и выделите код. Извлечённый текст попадает в буфер обмена, готовый к вставке в редактор или терминал.
Команды терминала
Длинные команды установки, инструкции Docker run, запросы curl с несколькими флагами — их часто передают в виде скриншотов. Одно выделение с Optic извлекает всю команду целиком, сохраняя специальные символы, флаги и пути, которые легко ввести с ошибкой.
Фрагменты кода из соцсетей
Публикации в Twitter, LinkedIn и Instagram часто отображают код в виде изображений с помощью таких инструментов, как Carbon или Ray.so. Optic извлекает код из этих стилизованных скриншотов так же легко, как и из обычного вывода терминала.
Многострочное извлечение
Выделите блок кода на несколько строк, и Optic сохранит структуру строк. Вставьте его в редактор — код сохранит форму, никакого ручного форматирования не потребуется. Каждый захват сохраняется в истории строки меню, так что можно извлечь несколько фрагментов из урока и вставлять их по одному.