Что нового в AppCode 2018.3

в 13:10, , рубрики: appcode, iOS, objective-c, swift, Блог компании JetBrains, мобильная разработка, разработка мобильных приложений

Добавили поддержку Swift 4.2, сделали Generate и навигацию к определению типа для Swift, улучшили форматирование, поддержали iOS-расширения в отладчике, стали лучше работать в проектах с несколькими таргетами, и еще сделали кучу крутых и полезных фич.

КПДВ

Swift

Поддержали все возможности версии 4.2, которые могли отразиться на работе IDE:

  • SE-0192 (Handling Future Enum Cases)
  • SE-0193 (Cross-module inlining and specialization)
  • SE-0194 (Derived Collection of Enum Cases)
  • SE-0195 (User-defined “Dynamic Member Lookup” Types)
  • SE-0196 (Compiler Diagnostic Directives)
  • SE-0212 (Compiler Version Directive)

Если что-то все-таки пропустили, обязательно напишите в комментариях. А про Swift 5 можно прочитать тут.

Генерация

Сделали все стандартные действия для генерации, которые есть для Objective-C — инициализаторы, description/debugDescription, hashValue и оператор сравнения:

Генерация

Для всех действий, кроме инициализатора можно еще и выбрать шаблон, используемый для генерации.

Навигация к определению типа

Тут все просто — жмем ⇧⌘B и сразу попадаем к определению типа:

Навигация к определению типа

Подсветка точек выхода

Научились подсвечивать точки выхода по установке курсора на break, continue, try, throw или return:

Подсветка точек выхода

Форматирование

Почти в каждом релизе мы улучшаем что-то в движке форматирования, вот что успели в этом:

  • поправили формирование отступов для многострочных строковых литералов: Форматирование строковых литералов
  • добавили настройки форматирования кода внутри препроцессорных директив:Настройки препроцессорных директив
  • сделали возможность менять выравнивание выражений с тернарным оператором в Preferences | Editor | Code Style | Swift | Wrapping and Braces | Ternary conditional operation

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

С CLion у нас не только общая поддержка C/C++, но еще и общая поддержка Swift. Долгое время плагин, который добавляет поддержку SPM-проектов в CLion, использовал CMake в качестве проектной модели. В этом году решили, что жить так больше нельзя — пользоваться неудобно, и поддержали SPM напрямую. Теперь можно работать вот так:

Получилось действительно хорошо, осталось только доработать интеграцию с тестами. А учитывая тот факт, что в CLion есть функциональность WebStorm для редактирования HTML/JavaScript, с базами данных можно работать так же, как и в DataGrip, доступен Docker-плагин и многое другое, получаем, что теперь в нем еще можно писать бэкенды на Swift:

Нет, с SourceKit-LSP пока работать не планируем. Причина проста: и так почти все есть, что он несет с собой (и то, что еще не несет, тоже).

Objective-C/C/C++

Проекты с несколькими таргетами

Наконец-то починили проблемы с подсветкой и автодополнением для классов с одним и тем же именем подключенным к разным таргетам в проекте. Навигацию тоже планируем починить.

Change Signature

Раньше при изменении сигнатуры в C/C++ AppCode терял дефолтные значения аргументов — а теперь обрабатывает их корректно:

Change Signature

Документация

Стали нормально форматировать макроподстановки в Quick Documentation (F1):

Форматирование макроподстановок

Многострочные TODO

В AppCode все комментарии вида //FIXME / //TODO можно быстро посмотреть через ⌘6. Здесь же можно задать шаблоны для своих сообщений, что бывает удобно:

Настройки TODO

Теперь мы добавили поддержку многострочных TODO для Objective-C/C/C++ — достаточно для каждой строки, кроме первой, добавить отступ:

Многострочные TODO

Смешанный код

Поправили проблемы при переименовании конструкций с swift_name в Objective-C и перечислений в Swift / Objective-C.

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

Починили фризы при вызове диалогов, связанных с запуском тестов, например Run Configurations с тестовыми конфигурациями.

Запуск и отладка

Расширения iOS

AppCode научился отлаживать расширения iOS — так же, как это делает Xcode:

Поддержка расширений iOS

Консоль LLDB для Swift

Починили автодополнение в консоли отладчика для Swift (для Objective-C/C/C++ все и так работало). Все сторонники p/po и expression радуются, остальные, как и раньше, пользуются Evaluate Expression (⌥F8):

Автодополнение в консоли LLDB

Плагин IDE Features Trainer

IDE Features Trainer

Часто слышим на конференциях просьбу дать материалы о миграции с Xcode на AppCode, о том, какие возможности IDE надо знать в первую очередь. В процессе релиза сделали первый крупный шаг в эту стороны — добавили часть для Swift в IDE Features Trainer. Суть простая — ставим плагин, открываем уроки, следуем инструкциям и на простых примерах видим, какие возможности есть, как их использовать, и где их найти. Всем рекомендуем пройти — даже если пользуетесь IDE уже давно. С большой вероятностью, что-то новое и полезное все равно найдется :).

IDE

Search Everywhere

Объединили Search Everywhere, Go to Class / File / Symbol / Action:

Search Everywhere

Run Anything

Теперь любую конфигурацию можно запустить через двойное нажатие ⌃:

Run Anything

Или открыть проект, напечатав open.

Плагины

Полностью переработали вид раздела с плагинами в IDE:

Плагины

Контроль версий

Теперь умеем работать с подмодулями Git и удобно показывать пулл-реквесты с Github:

Окно пулл-реквестов для Github

Высококонтрастная тема

Теперь она есть — как для редактора, так и для IDE (можно выбрать в Preferences | Appearance & Behavior | Appearance):

Высококонтрастная тема

Что дальше?

Следующий релиз мы планируем целиком посвятить исправлению проблем. Исключение — поддержка новых версий Swift. В общем, больше стабильности, лучше автодополнение с навигацией и подсветкой, меньше помех работе.

На этом все! Как и всегда, скачивать — тут, баги — в трекер, вопросы общего характера задаем прямо здесь.

Автор: yeswolf

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js