Привет, Хабр!
Вышел AppCode 2017.2, а значит, пора рассказать обо всех новых возможностях в этом релизе! Под катом, как и всегда, много картинок.
![AppCode 2017.2](https://habrastorage.org/web/4c5/e1e/fbb/4c5e1efbb9cc4b2ba5307e08117e028d.png)
Есть такая традиция у разработчиков IDE: третьим рефакторингом для любого языка всегда делать Extract Method. Шутки шутками, но это действительно одно из наиболее часто используемых преобразований кода.
В AppCode оно происходит следующим образом: выделяем участок кода, вызываем
![Extract Method](https://habrastorage.org/web/906/64c/f46/90664cf4674446b29c91d9eb7a6b7c3e.gif)
Кстати, если не пробовали так же работать с Objective-C/C/C++ — обязательно попробуйте.
Автодополнение методов и свойств, доступных для перегрузки (или реализации), — одна из возможностей, привычная всем пользователям Xcode. Теперь в AppCode она тоже есть для кода на Swift:
А если хочется сэкономить время на вызове автодополнения для нескольких методов,
![Override/Implement](https://habrastorage.org/web/7a9/702/9a2/7a97029a2b174ffc8ac95d592abac8a5.gif)
Что делать, если сходу не получается вспомнить тип одного из аргументов замыкания? Правильно — включить настройку Show Swift Type Hints в AppCode:
![Inline type hints](https://habrastorage.org/web/298/888/823/2988888234624e168bef3f3bdece25be.gif)
Каждому пользователю AppCode знакомо сочетание клавиш
![Blank lines](https://habrastorage.org/web/446/dd8/3f1/446dd83f1d8f4f89a931684b24aeb007.png)
А также настройку, позволяющую не применять правила переноса к простым функциями и методам при форматировании:
![Simple methods and functions in one line](https://habrastorage.org/web/2e7/edd/8ee/2e7edd8ee54c48a48269fb8b326b1b58.png)
Здесь все просто: мы поддержали
![__auto_type support](https://habrastorage.org/web/09c/9de/78c/09c9de78c6b64e35a46c44ac847b0862.png)
В Xcode 8.x-9.x пару раз поменялся формат базы данных с документацией, мы эти изменения подхватили и доработали поддержку в AppCode. Теперь
![Quick documentation](https://habrastorage.org/web/772/5d1/5bc/7725d15bcad04cc5a17c0a6932b6b233.gif)
По традиции, все улучшения поддержки C/C++, описанные здесь в разделе об улучшениях корректности парсера, доступны в AppCode.
Отдельно хочется отметить изменения по поддержке Git, которые появились во всех IDE на платформе IntelliJ:
На этом все — читайте о других возможностях продукта у нас на сайте, следите за обновлениями в нашем англоязычном блоге и задавайте любые возникшие вопросы в комментариях к этому посту.
Вышел AppCode 2017.2, а значит, пора рассказать обо всех новых возможностях в этом релизе! Под катом, как и всегда, много картинок.
![AppCode 2017.2](https://habrastorage.org/web/4c5/e1e/fbb/4c5e1efbb9cc4b2ba5307e08117e028d.png)
Extract Method
Есть такая традиция у разработчиков IDE: третьим рефакторингом для любого языка всегда делать Extract Method. Шутки шутками, но это действительно одно из наиболее часто используемых преобразований кода.
В AppCode оно происходит следующим образом: выделяем участок кода, вызываем
??M
, задаем нужное название метода, если нужно, на месте редактируем порядок параметров и их имена, жмем ?
— и вуаля, новый метод создан, нужный участок кода заменен:![Extract Method](https://habrastorage.org/web/906/64c/f46/90664cf4674446b29c91d9eb7a6b7c3e.gif)
Кстати, если не пробовали так же работать с Objective-C/C/C++ — обязательно попробуйте.
Автодополнение
Автодополнение методов и свойств, доступных для перегрузки (или реализации), — одна из возможностей, привычная всем пользователям Xcode. Теперь в AppCode она тоже есть для кода на Swift:
![Override completion](https://habrastorage.org/web/dc5/322/e56/dc5322e5620045719a1b398d30967ce6.gif)
А если хочется сэкономить время на вызове автодополнения для нескольких методов,
^I
/^O
всегда к вашим услугам:![Override/Implement](https://habrastorage.org/web/7a9/702/9a2/7a97029a2b174ffc8ac95d592abac8a5.gif)
Подсказки для типов
Что делать, если сходу не получается вспомнить тип одного из аргументов замыкания? Правильно — включить настройку Show Swift Type Hints в AppCode:
![Inline type hints](https://habrastorage.org/web/298/888/823/2988888234624e168bef3f3bdece25be.gif)
Форматирование
Каждому пользователю AppCode знакомо сочетание клавиш
??L
, которое позволяет быстро и удобно отформатировать текущий файл (или весь проект целиком при вызове из Project view). В этой версии мы добавили возможность конфигурации минимального количества пустых строк вокруг свойств и методов отдельно для классов и протоколов:![Blank lines](https://habrastorage.org/web/446/dd8/3f1/446dd83f1d8f4f89a931684b24aeb007.png)
А также настройку, позволяющую не применять правила переноса к простым функциями и методам при форматировании:
![Simple methods and functions in one line](https://habrastorage.org/web/2e7/edd/8ee/2e7edd8ee54c48a48269fb8b326b1b58.png)
Поддержка __auto_type
Здесь все просто: мы поддержали
__auto_type
для Objective-C, научились его корректно парсить, показывать в списке автодополнения и учитывать в вычислении типов: ![__auto_type support](https://habrastorage.org/web/09c/9de/78c/09c9de78c6b64e35a46c44ac847b0862.png)
Документация
В Xcode 8.x-9.x пару раз поменялся формат базы данных с документацией, мы эти изменения подхватили и доработали поддержку в AppCode. Теперь
F1
снова корректно отображает документацию для различных сущностей в коде:![Quick documentation](https://habrastorage.org/web/772/5d1/5bc/7725d15bcad04cc5a17c0a6932b6b233.gif)
C++
По традиции, все улучшения поддержки C/C++, описанные здесь в разделе об улучшениях корректности парсера, доступны в AppCode.
VCS
Отдельно хочется отметить изменения по поддержке Git, которые появились во всех IDE на платформе IntelliJ:
- Возможность откатить несколько изменений через Git Log с помощью Revert или изменить commit-сообщение с помощью Reword
- Настройки для автоматической проверки commit-сообщений (доступны в
Preferences | Version Control | Commit Dialog
):
а также возможность форматировать commit-сообщения в соответствии с ними через??L
:
На этом все — читайте о других возможностях продукта у нас на сайте, следите за обновлениями в нашем англоязычном блоге и задавайте любые возникшие вопросы в комментариях к этому посту.
NYMEZIDE
ждем новостей по Rider