Pull to refresh
0
JetBrains
Делаем эффективные инструменты для разработчиков

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

Reading time3 min
Views3.9K

Добавили поддержку 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. В общем, больше стабильности, лучше автодополнение с навигацией и подсветкой, меньше помех работе.


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

Tags:
Hubs:
Total votes 18: ↑14 and ↓4+10
Comments5

Articles

Information

Website
jetbrains.com
Registered
Founded
Employees
1,001–5,000 employees
Location
Чехия