Всем привет!
Недавно вышел AppCode 2021.3, а значит, пора о нем рассказать.
![](https://habrastorage.org/getpro/habr/upload_files/f9d/cbf/c93/f9dcbfc933bb30237c393376133f3de2.png)
Swift
Поддержка языка
В Swift появились акторы, а мы их подд... Хотя нет, а давайте в этот раз не ограничимся словом «поддержка», а коротенько, страниц на сорок, опишем, что значит поддержать новую конструкцию языка в IDE.
Для начала нужно все попарсить, добавить в дерево символов — тогда многое заработает автоматически (навигация, автодополнение, подсветка). Но это еще не все. Нужно поддержать отображение новой конструкции в окне Structure:
![](https://habrastorage.org/getpro/habr/upload_files/5a1/be0/0ed/5a1be00ed3f5e962a7a631089f85ec49.png)
Добавить опцию в диалог создания нового типа:
![](https://habrastorage.org/getpro/habr/upload_files/45b/676/c1e/45b676c1e0daa992d1c46edb3ca25f2b.png)
Добавить настройку в Code Style:
![](https://habrastorage.org/getpro/habr/upload_files/537/ebd/46d/537ebd46df88a210ed3dffb85cd0d550.png)
Обновить шаблон для Create from usage:
![](https://habrastorage.org/getpro/habr/upload_files/ce5/eb9/c8d/ce5eb9c8d3b0fa25ca11fa809d51ec4d.png)
А еще нужна генерация стандартных свойств (description, hash и других):
![](https://habrastorage.org/getpro/habr/upload_files/2e8/ace/bf2/2e8acebf2ad59c76e88c8c93c8126db0.png)
Наконец, акторы должны отображаться в окне иерархии типов:
![](https://habrastorage.org/getpro/habr/upload_files/2e0/ba4/ce4/2e0ba4ce4a31196d898e19885bf22be4.png)
Автодополнение
Теперь автодополнение позволяет вводить сразу несколько ключевых слов. Например, case внутри switch можно вставить сразу же с названием:
![](https://habrastorage.org/getpro/habr/upload_files/afe/b69/169/afeb69169817d1dc794108fd2f8d3f54.png)
Условия компилятора отображаются как пустыми, так и предзаполненными:
![](https://habrastorage.org/getpro/habr/upload_files/0a8/743/464/0a8743464540c085589b927b8a9b0ab4.png)
Ну, и помимо обычного if мы добавили еще if guard / if let:
![](https://habrastorage.org/getpro/habr/upload_files/9fd/b0a/ba8/9fdb0aba8f4ae4d64838f35d86e518ac.png)
Документация
Да-да, мы наконец-то всё доделали. Теперь и параметры подсвечиваются:
![](https://habrastorage.org/getpro/habr/upload_files/596/00d/440/59600d440bebd3f2d2dbfa2e77982f68.png)
И навигация работает:
![Навигация в комментариях Навигация в комментариях](https://habrastorage.org/getpro/habr/upload_files/2d4/bf1/671/2d4bf167196c3cfb9b379d3e8cb60bf5.gif)
И комментарии обновляются после рефакторингов:
![Обновление после рефакторингов Обновление после рефакторингов](https://habrastorage.org/getpro/habr/upload_files/fd1/e4b/126/fd1e4b126afb3b1d9d17f58266f2a7a9.gif)
И режим Reader заработал:
![](https://habrastorage.org/getpro/habr/upload_files/50c/8f8/44c/50c8f844c7538b1349040423cfe224d5.gif)
AppCode даже следит, обновляете ли вы документацию по мере написания кода:
![](https://habrastorage.org/getpro/habr/upload_files/5b5/27b/704/5b527b7046e38eff25abf7a1597eff2e.png)
Редактор plist-файлов
Теперь он есть, спасибо команде Rider за помощь:
![](https://habrastorage.org/getpro/habr/upload_files/7e4/92f/cf1/7e492fcf11fe439ad6d3874882bfd7b6.png)
Отладчик
Мы добавили поддержку точек останова для ошибок в Swift. Настроить их можно в меню Exception Breakpoints:
![](https://habrastorage.org/getpro/habr/upload_files/a77/d6a/11a/a77d6a11a5408b042548e3c9be839a87.png)
Еще теперь можно вычислить выражение прямо в окне отладчика:
![](https://habrastorage.org/getpro/habr/upload_files/f1f/841/f70/f1f841f701dc1772d6b49ffa98d5cb7c.png)
Закладки
Мы выделили их в отдельное окно и сделали более удобную группировку:
![](https://habrastorage.org/getpro/habr/upload_files/bb6/b83/ee6/bb6b83ee6b31378895a1d96a94d38f64.png)
Контроль версий
Теперь можно запушить только часть коммиттов с помощью Push All up to Here. Название действия говорящее, поэтому много мы о нем писать не будем.
А на этом всё. Как и всегда, будем рады поговорить на любые темы в комментариях!
Команда AppCode