AppCode 2016.3: підтримка Swift 3, нові параметри форматування, покращення швидкодії і багато іншого

Привіт, Хабр!

Зовсім недавно вийшов AppCode 2016.3, і в цьому пості ми розповімо про найцікавіші зміни в ньому.



Swift
Підтримка Swift 3
Однією з основних завдань, над якими ми працювали в цьому релізі, була підтримка Swift 3. Багато ми встигли реалізувати, а над рештою завданнями продовжимо працювати в майбутніх оновленнях.

Create from usage
У кожному новому оновленні ми намагаємося розширити можливості кодогенерации для Swift. Це і Live Templates, в тому числі дозволяють «обернути» виділений ділянку коду, і рефакторинг Introduce Variable, і Override/Implement (
^O
/
^I
), за допомогою якого можна згенерувати визначення відразу для декількох методів.

У цьому релізі ми додали можливість створювати змінні, функції, методи і навіть властивості класів з їх використань. Особливо це зручно, якщо потрібно щось швидко спрототипировать. Нехай методу ще немає, напишемо його, передамо потрібні аргументи, викличемо
⌥⏎
— і все, залишається лише трохи виправити автоматично згенеровану сигнатуру функції, якщо це необхідно:



Як видно на гифке, використовуючи той же принцип можна створювати та інші сутності в коді. Аналогічну можливість для генерації типів (класів, структур тощо) ми плануємо додати Swift трохи пізніше. А ось в Objective-C/C/C++ всі ці можливості вже давно є, і користуватися ними можна і потрібно прямо зараз.

Форматування коду
Для Objective-C/C/C++ в AppCode є маса налаштувань форматування:



Застосувати їх можна, викликавши
⌘⌥L
на виділеній ділянці коду (а якщо код не вибрано, буде відформатований файл цілком). Базові можливості для Swift були реалізовані ще в версії 3.1, при цьому багатьох налаштувань форматування, специфічних для мови, серед них не було. У цьому релізі ми вирішили їх додати.

Тепер у AppCode можна настроювати різні правила переносу:

  • Параметрів замикань
  • Простих замикань в різних випадках їх використання в коді:



  • Параметрів в оголошеннях методів і функцій
  • Аргументів методів і функцій, використовуваних у коді
  • Послідовних викликів методів:



  • Кількох умовних конструкцій на одній і тій же рядку
Також доданий блок для пробілів до і після двокрапки в специфікаціях типів змінних, словників і парах «ключ-значення» в самих словниках:



Швидкодія
Ми покращили швидкість AppCode при роботі зі Swift за кількома основними напрямами.

Перше — виведення типів. Від нього в AppCode залежить і швидкість підсвічування коду, і швидкість автодоповнення, і багато іншого. В результаті вдалося навіть для складних конструкцій коду його істотно прискорити.

Друге — швидкість автодоповнення. Тут ми добряче попрацювали над кешуванням списку варіантів, що дозволило зробити його значно швидшим.

Також вдалося виправити кілька проблем в інтеграції з SourceKit, які відбивалися на швидкості показу помилок, попередження і виправлення (fix-it).

UI-тести
Тепер у AppCode можна запускати (
^⌥R
) і налагоджувати (
^⌥D
) UI-тести. Впали тести можна відфільтрувати від пройдених і після виправлень перезапустити тільки їх:



Результати запуску тестів можна відсортувати за тривалістю (або по імені):



Всі вони зберігаються у вбудованій історії, і пізніше їх можна переглянути прямо в IDE:



Семантична підсвічування
Як і в багатьох інших продуктах JetBrains, в AppCode з'явилася можливість підсвічування параметрів функцій і змінних унікальними квітами. Увімкнути її можна лише для Swift/Objective-C/C/C++ у налаштуваннях Editor → Colors & Fonts → Language Defaults → Semantic highlighting:



C/C++
За традицією, поліпшення підтримки C/C++, реалізовані командою CLion, доступні і в AppCode. Про них можна прочитати в цьому пості у розділах Підтримка C та Підтримка З++, відповідно. До речі, різні платформні зміни (такі як покращення в підтримці контролю версій, San Francisco як дефолтного шрифту в меню та інші), описані в цьому пості, також доступні в AppCode.

Демо
Невелике демо (англійською) з демонстрацією нових можливостей від нашого девелопер-адвоката Філа Неша:


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

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.