- PVSM.RU - https://www.pvsm.ru -
Добавили поддержку Swift 4.2, сделали Generate и навигацию к определению типа для Swift, улучшили форматирование, поддержали iOS-расширения в отладчике, стали лучше работать в проектах с несколькими таргетами, и еще сделали кучу крутых и полезных фич.
Поддержали все возможности версии 4.2, которые могли отразиться на работе IDE:
Если что-то все-таки пропустили, обязательно напишите в комментариях. А про Swift 5 можно прочитать тут [7].
Сделали все стандартные действия для генерации, которые есть для Objective-C — инициализаторы, description
/debugDescription
, hashValue
и оператор сравнения:
Для всех действий, кроме инициализатора можно еще и выбрать шаблон, используемый для генерации.
Тут все просто — жмем ⇧⌘B
и сразу попадаем к определению типа:
Научились подсвечивать точки выхода по установке курсора на break
, continue
, try
, throw
или return
:
Почти в каждом релизе мы улучшаем что-то в движке форматирования, вот что успели в этом:
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Ternary conditional operation
С CLion у нас не только общая поддержка C/C++, но еще и общая поддержка Swift. Долгое время плагин, который добавляет поддержку SPM-проектов в CLion, использовал CMake в качестве проектной модели. В этом году решили, что жить так больше нельзя — пользоваться неудобно, и поддержали SPM напрямую. Теперь можно работать вот так:
Получилось действительно хорошо, осталось только доработать интеграцию с тестами. А учитывая тот факт, что в CLion есть функциональность WebStorm для редактирования HTML/JavaScript, с базами данных можно работать так же, как и в DataGrip [8], доступен Docker-плагин [9] и многое другое, получаем, что теперь в нем еще можно писать бэкенды на Swift:
Нет, с SourceKit-LSP пока работать не планируем. Причина проста: и так почти все есть, что он несет с собой (и то, что еще не несет, тоже).
Наконец-то починили проблемы с подсветкой и автодополнением для классов с одним и тем же именем подключенным к разным таргетам в проекте. Навигацию [10] тоже планируем починить.
Раньше при изменении сигнатуры в C/C++ AppCode терял дефолтные значения аргументов — а теперь обрабатывает их корректно:
Стали нормально форматировать макроподстановки в Quick Documentation (F1
):
В AppCode все комментарии вида //FIXME
/ //TODO
можно быстро посмотреть через ⌘6
. Здесь же можно задать шаблоны для своих сообщений, что бывает удобно:
Теперь мы добавили поддержку многострочных TODO для Objective-C/C/C++ — достаточно для каждой строки, кроме первой, добавить отступ:
Поправили проблемы при переименовании конструкций с swift_name
в Objective-C и перечислений в Swift / Objective-C.
Починили фризы при вызове диалогов, связанных с запуском тестов, например Run Configurations с тестовыми конфигурациями.
AppCode научился отлаживать расширения iOS — так же, как это делает Xcode:
Починили автодополнение в консоли отладчика для Swift (для Objective-C/C/C++ все и так работало). Все сторонники p
/po
и expression
радуются, остальные, как и раньше, пользуются Evaluate Expression (⌥F8
):
Часто слышим на конференциях просьбу дать материалы о миграции с Xcode на AppCode, о том, какие возможности IDE надо знать в первую очередь. В процессе релиза сделали первый крупный шаг в эту стороны — добавили часть для Swift в IDE Features Trainer. Суть простая — ставим плагин, открываем уроки, следуем инструкциям и на простых примерах видим, какие возможности есть, как их использовать, и где их найти. Всем рекомендуем пройти — даже если пользуетесь IDE уже давно. С большой вероятностью, что-то новое и полезное все равно найдется :).
Объединили Search Everywhere, Go to Class / File / Symbol / Action:
Теперь любую конфигурацию можно запустить через двойное нажатие ⌃:
Или открыть проект, напечатав open
.
Полностью переработали вид раздела с плагинами в IDE:
Теперь умеем работать с подмодулями Git и удобно показывать пулл-реквесты с Github:
Теперь она есть — как для редактора, так и для IDE (можно выбрать в Preferences | Appearance & Behavior | Appearance
):
Следующий релиз мы планируем целиком посвятить исправлению проблем. Исключение — поддержка новых версий Swift. В общем, больше стабильности, лучше автодополнение с навигацией и подсветкой, меньше помех работе.
На этом все! Как и всегда, скачивать — тут [11], баги — в трекер [12], вопросы общего характера задаем прямо здесь.
Автор: yeswolf
Источник [13]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ios/301295
Ссылки в тексте:
[1] SE-0192: https://github.com/apple/swift-evolution/blob/master/proposals/0192-non-exhaustive-enums.md
[2] SE-0193: https://github.com/apple/swift-evolution/blob/master/proposals/0193-cross-module-inlining-and-specialization.md
[3] SE-0194: https://github.com/apple/swift-evolution/blob/master/proposals/0194-derived-collection-of-enum-cases.md
[4] SE-0195: https://github.com/apple/swift-evolution/blob/master/proposals/0195-dynamic-member-lookup.md
[5] SE-0196: https://github.com/apple/swift-evolution/blob/master/proposals/0196-diagnostic-directives.md
[6] SE-0212: https://github.com/apple/swift-evolution/blob/master/proposals/0212-compiler-version-directive.md
[7] тут: https://youtrack.jetbrains.com/issue/OC-16492
[8] DataGrip: https://habr.com/company/JetBrains/blog/431646/
[9] Docker-плагин: https://plugins.jetbrains.com/plugin/7724-docker-integration
[10] Навигацию: https://youtrack.jetbrains.com/issue/OC-17859
[11] тут: https://www.jetbrains.com/objc/download/
[12] трекер: https://youtrack.jetbrains.com/issues/OC
[13] Источник: https://habr.com/post/432058/?utm_campaign=432058
Нажмите здесь для печати.