22 марта 2023
В Xcode бывает сложно вести большие проекты, особенно если вы вносите большие изменения в большое количество файлов. В зависимости от того, как настроен ваш проект, измененные файлы будут распределены по нескольким вложенным каталогам и нескольким таргетам.
Перед тем, как закоммитить свои изменения и отправить запрос на их включение, я предпочитаю в последний раз пройтись по написанному коду. В этот момент я делаю структурные исправления и оптимизирую код, если это необходимо, и в целом убираю мусор. В частности, когда я вношу большие изменения, которые затрагивают массу файлов, навигация в Xcode может быть громоздкой. Чтобы найти и открыть файл, я часто использую Quick Open (cmd-shift-O), но запомнить все названия файлов в огромном проекте невозможно. Xcode любезно показывает M (modified) рядом с измененными файлами и A (added) рядом с добавленными файлами. Но когда в боковой панели отображаются тысячи файлов, трудно понять, что происходит с вашим конкретным изменением. Это
может угнетать.
Xcode: боковая панель без фильтрации, показывающая все файлы
Для ревью и коммитов своих изменений я обычно использую Git Tower, но в нем нельзя редактировать файлы, что означает, что при необходимости внесения дополнительных изменений нужно переключаться между Xcode и Git Tower. Xcode предоставляет подробный интерфейс для коммитов, допускающий редактирование, но работать с ним не всегда легко - вид с двумя колонками заставляет строки переноситься, а иногда прокрутка работает неправильно. Выбор файла в этом режиме часто тоже вызывает проблемы.
К счастью, есть более простой способ. Вместо того, чтобы пытаться использовать Git Tower или UI коммитов в Xcode, можно отфильтровать файлы в боковой панели, чтобы показывать только измененные! Это очень коварная кнопка в правом нижнем углу с символами +/- . Нажмите на нее, и Xcode скроет все файлы, которых вы не касались. На мой взгляд, в больших проектах это полезно для фокусирования на изменениях, которые я вношу, и сокрытия всей мешанины.
Xcode: фильтрация боковой панели, чтобы показывать только измененные файлы