AppCode 2019.1: Нові функції в JetBrains AppCode
AppCode 2019.1: Нові функції в JetBrains AppCode
Що нового в JetBrains AppCode 2019.1:
Swift
Swift 5
Всі нові можливості Swift 5 коректно працюють у AppCode 2019.1:
- SE-0200 Raw text literals
- SE-0213 Literal initialization via coercion
- SE-0216 Dynamic callables
- SE-0224 Support 'less than' operator in compilation conditions
- SE-0227 Identity key path
- SE-0228 Fix
ExpressibleByStringInterpolation
- SE-0230 Flatten nested optionals resulting from
try?
Перейменування
Була проблема з перейменуванням перевантажених методів та методів класу-батька — а тепер її немає.
Навігація до визначення
Здавалося б, що може бути простіше і елементарніше переходу до визначення методу чи класу? Стандартна, звична дія.
І все справді так у Objective-C: назва типу при ініціалізації об'єкта стоїть окремо, сам метод-ініціалізатор — окремо. Відповідно, якщо курсор стоїть на назві типу, ми переходимо до визначення типу, якщо на ініціалізаторі до визначення ініціалізатора. А ось у Swift все стає складніше. Ініціалізатор злився з назвою типу воєдино, і якщо відтворювати поведінку Xcode, втрачаємо можливість переходу саме до ініціалізатора. Якщо ж залишати поведінку AppCode 2018.3.x, ламаємо звичку користувача (як у Xcode, тобто перехід не до визначення ініціалізатора, а до визначення типу). Це зі зрозумілих причин не подобається користувачам.
У результаті виробили серединне рішення: все-таки вираз, що ініціалізує об'єкт у Swift, як і раніше, складається з двох частин. Все, що стосується круглих дужок — назва типу, а все всередині — сигнатура ініціалізатора. Тому якщо курсор стоїть на назві типу, переходимо до визначення типу, якщо всередині круглих дужок — до визначення ініціалізатора:
Переміщення виразів
Поки користувачі Xcode виділяють мишкою і копіпастять, користувачі AppCode ставлять курсор на вираз і рухають його цілком легким натисканням ⇧⌘↑
/↓
:
Працює для циклів, функцій, методів, класів, умов загалом майже для всього.
Багаторядкові літерали
Як перетворити однорядковий літерал на багаторядковий? В AppCode тепер достатньо натиснути ⏎
:
Підсвічування, автодоповнення, аналіз коду та все-все-все
Чим коректніше ми будуємо дерево символів, яке використовується для підсвічування, аналізу коду, навігації та інших функцій IDE (навіть для відображення змінних у налагоджувачі), тим краще і правильніше буде працювати AppCode. У цьому релізі ми вирішили кілька фундаментальних проблем, які псували життя користувачам:
- Ми почали будувати символи бібліотек як для симуляторів, так і для пристроїв. Раніше будували лише для симулятора.
- Зробивши це, стали коректно визначати поточну платформу (симулятор/пристрій) і правильно передавати її clang-annotator у Objective-C та SourceKit у Swift. Чому це важливо? Наприклад, SourceKit не буде відображати помилки та попередження, якщо йому некоректно передати в аргументах папку з продуктами збирання. Ця проблема має зникнути.
- Стали правильно обробляти DerivedSources і всі вихідні коди, згенеровані в цій папці (Core Data, Intents).
Objective-C/C/C++
Колеги з CLion додали стилі іменування кодових конструкцій для C/C++, а ми їх отримали ще й для Objective-C ( AppCode тепер вміє приєднуватися до процесів, запущених не тільки на симуляторі, а й на пристрої ( У налаштуваннях конфігурацій запуску додано можливість вибору мови та регіону програми: Run to Cursor можна викликати не тільки через Перерахунок змінних під час налагодження тепер можна заборонити за допомогою дії Mute Variables в контекстному меню: Уважний читач уже помітив, що всі скріншоти в пості зроблені з використанням нової теми оформлення Dark Purple: Теми IDE тепер можна робити самостійно, тому в репозиторії плагінів крім кількох тем, зроблених нами, вже можна знайти кілька варіантів оформлення. А до 3-го травня можна не лише зробити свою тему, а й взяв участь у конкурсі, нещодавно анонсованому нами. Є кілька корисних дій для навігації до нещодавно відкритих або змінених місць у коді: Переміщення до останньої відредагованої ділянки коду взагалі важко переоцінити, особливо коли редагуєш файл великого розміру. Тепер з'явився ще й список нещодавно переглянутих/змінених місць Recent Locations (Preferences | Editor | Code Style |
Запуск та налагодження
⇧⌘A
→ Attach to process
):⌥F9
, але й натисканням на номер рядка в редакторі:Теми для IDE
Список нещодавно переглянутих/змінених ділянок коду
⌘E
)⌃⇥
)⇧⌘⌫
)⇧⌘E
):Інші новини