КПДВ — это Change Signature, уже пятый рефакторинг для Swift. Обо всем остальном в новом AppCode 2020.2 — под катом.


Change Signature



Поддержка Swift Package Manager


Мы сделали начальную поддержку SPM-зависимостей в проектах для Xcode, а именно:


  • Отображение зависимостей в окне проекта:

    SPM-зависимости
  • Автодополнение, подсветку и навигацию для них, плюс некоторые специфичные для SPM-зависимостей возможности, такие как автодополнение таргетов в Package.swift:

    Автодополнение таргетов

Быстродействие


Мы постоянно работаем над улучшением быстродействия IDE — к примеру, в прошлом релизе получилось ускорить повторное открытие проектов. В версии 2020.2 мы закончили большой кусок работы, переработав механизм индексации. В результате IDE должна стать в целом отзывчивее, а подвисания при открытии проекта или его перезагрузке (например, во время переключений бранчей) должны исчезнуть.


Change Signature


Изменение сигнатуры метода — частая операция. Обычно ее приходится делать с помощью нескольких последовательных рефакторингов переименования, после чего часть работы в любом случае придется делать руками (поменять область видимость, вручную переставить параметры местами и так далее). Теперь AppCode может выполнить все эти действия за один раз — достаточно вызвать рефакторинг Change Signature (?F6) на любом использовании метода. Если этот метод был перегружен, можно выбрать, необходимо ли выполнить рефакторинг на базовом методе и перегруженных или только на самом перегруженном методе:


Базовый или перегруженный


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


Добавление параметра


Самое простое применение — просто поменять местами пару параметров (?^/?v):


Изменение порядка параметров


Автодополнение


Одно из самых интересных изменений — это использование SourceKit в автодополнении. В прошлом релизе мы начали использовать его во время индексации, с этого релиза начинаем использовать и после нее, добавляя результаты SourceKit к результатам AppCode. В целом, это должно сделать автодополнение более корректным. Кроме этого, есть пачка небольших, но полезных улучшений:


  • Автодополнение для get, set, didSet, и willSet теперь автоматически ставит курсор внутри тела выражения:

    Автодополнение для get, set, willSet, didSet
  • В режиме Smart теперь показываются конструкторы:

    Умное автодополнение
  • Заработало такое же, как в Objective-C, автодополнение имен шрифтов:

    Автодополнение шрифтов
  • Trailing closures стали отображаться в списке автодополнения при наборе {:

    Trailing closures

Инспекции


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


Виджет инспекций


Также в нем можно изменить текущий уровень подсветки файла с помощью выпадающего списка Highlight...


Пулл-реквесты GitHub


Пулл-реквесты GitHub


Как и все IDE от JetBrains, AppCode получил полную поддержку пулл-реквестов GitHub, которая включает в себя следующие возможности:


  • Отображение всей информации по пулл-реквесту (название, автор, переписка и др.) в отдельном окне
  • Полная интеграция работы с ревью: теперь можно прямо из IDE начать или запросить ревью своих изменений, оставить комментарий или отправить изменения на ревью.
  • Merge прямо из IDE.

На этом всё! Все вопросы и пожелания пишите прямо тут в комментариях — будем рады ответить!


Команда AppCode