- PVSM.RU - https://www.pvsm.ru -
Привет!
Этот пост, конечно же, про AppCode 2018.1. Впрочем нет, в этот раз он еще и про первый апдейт. У нас много нового и полезного, все в картинках под катом.
Мы реализовали поддержку большей части Swift 4.1:
Swift 4.0 мы в основном сделали [6] в AppCode 2017.3. Если интересно, как мы движемся к светлому будущему поддержке Swift 4.2 и 5.0, подписывайтесь на этот тикет [7] и его следующие шаги [8].
Здесь стоит пояснить на примере. Если подключен UIKit
, значит автоматически подключены, например, CoreGraphics
и Dispatch
. Все символы из этих библиотек должны быть доступны. Логика подсказывает, что оба модуля должны быть явно импортированы где-то внутри UIKit
. Но если мы просто рекурсивно пройдемся по всему дереву подключенных к UIKit
модулей, ни одного импорта мы не найдем.
Почему? Потому что все они подключены в версии UIKit
на Objective-C, а в Swift они пробрасываются неявно. AppCode строит автодополнение и навигацию исходя из дерева символов — нужных символов нет — нет ни автодополнения, ни навигации для таких библиотек без явного импорта. Думаю, можно даже не объяснять, насколько сильно это отражалось на работе IDE.
В этом релизе мы все поправили:
Попутно улучшили навигацию с автодополнением для некоторых сторонних библиотек (например, Firebase
и PureLayout).
В основе RxSwift [9] лежит конструкция, описанная вот тут [10]. В AppCode 2018.1 мы научились ее корректно обрабатывать, что принесло счастливым пользователям нормальное автодополнение и навигацию:
Часть проблем остается [11], мы над ними продолжаем работать. Всем, кто помогал нам в канале #appcode-users
в слэке RxSwift [12], — спасибо!
Сделали правильное и удобное отображение тестов:
Реализовали навигацию к конкретному месту в тесте:
Для Objective-C то же самое пока не сделали [13], перезапуск неудачных тестов пока сделать нельзя [14]. А вот для обычных тестов на XCTest, а также Kiwi, Catch, Boost.Test и Google Test эта фича работает, вместе с кучей других [15].
Добавили несколько новых настроек в Preferences | Editor | Code Style | Swift | Code Generation для форматирования комментариев:
Поправили отображение многострочных комментариев в попапе Quick Documentation (F1
):
Улучшили трансляцию Objective-C/Swift:
Class
и SEL
/IMP
, generic pointers и некоторые типы параметров отсюда [16] из Objective-C в Swift. Еще ускорили работу Go to class/symbol в проектах со смешанным кодом и наконец-то поправили проблемы с OCMock [17].
Про улучшения поддержки C/C++ можно прочитать в посте @anastasiak2512 [18] в разделе Поддержка языка C++, отличий в этой части между AppCode и CLion почти нет.
Пока писали пост, вышла версия AppCode 2018.1.1. В ней добавили поддержку Xcode header maps [19], что автоматически сделало построение символов для массы проектов (в частности, для сгенеренных с помощью BUCK [20]) более корректным.
В Xcode 9 добавили беспроводную отладку, а в AppCode 2018.1 мы ее поддержали у себя. Теперь, если настроить устройство в Xcode, AppCode его тоже покажет и даст на нем отлаживаться и запускать приложение.
Добавили настройки для симуляции местоположения в Run/Debug Configurations:
Реализовали поддержку смены местоположения при запуске и отладке приложения:
Поддержали настройки для мест, определенных пользователем:
Стали автоматически обрабатывать .gpx
-файлы как XML:
У проектного дерева в AppCode было два режима отображения:
Files view сильно облегчает работу с проектом. Нужно изменить какой-нибудь README.md
или скрипт — переключился, открыл, отредактировал, вернулся к написанию кода. Учитывая количество плагинов для различных языков, это удобно.
Project и Files — это частный случай Project Scopes, дающих возможность отфильтровать произвольное подмножество проектных файлов. Например, чтобы отображать только часть файлов в Project view или чтобы ограничить область работы инспекций / поиска.
Теперь большинство стандартных фильтров можно использовать в AppCode:
В Preferences | Appearance & Behavior | Scopes можно создавать свои фильтры:
В Preferences | Appearance & Behavior | File Colors для каждого фильтра можно выставить свой цвет при отображении в режиме Files:
В этом релизе проработали наиболее очевидное:
Если у вас есть идеи улучшений по каждому из пунктов, стоит сразу же создавать тикет в нашем трекере [23] и прикладывать к нему свои настройки экспортированные с помощью File → Export Settings...
if
/else
, do
/while
, for
, switch
в Objective-C/C/C++ (⇧⌘.
). На этом всё. Качать — тут [24], баги — в трекер [23], вопросы общего характера проще всего поднять прямо тут в комментариях!
Автор: yeswolf
Источник [25]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ios/277944
Ссылки в тексте:
[1] SE-0185: https://github.com/apple/swift-evolution/blob/master/proposals/0185-synthesize-equatable-hashable.md
[2] SE-0143: https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md
[3] SE-0190: https://github.com/apple/swift-evolution/blob/master/proposals/0190-target-environment-platform-condition.md
[4] SE-0075: https://github.com/apple/swift-evolution/blob/master/proposals/0075-import-test.md
[5] SE-0186: https://github.com/apple/swift-evolution/blob/master/proposals/0186-remove-ownership-keyword-support-in-protocols.md
[6] сделали: https://blog.jetbrains.com/objc/2017/11/2017-3-release/#swift
[7] этот тикет: https://youtrack.jetbrains.com/issue/OC-15947
[8] следующие шаги: https://youtrack.jetbrains.com/issue/OC-16951
[9] RxSwift: https://github.com/ReactiveX/RxSwift
[10] тут: https://youtrack.jetbrains.com/issue/OC-14763
[11] остается: https://youtrack.jetbrains.com/issue/OC-16594
[12] RxSwift: http://slack.rxswift.org/
[13] пока не сделали: https://youtrack.jetbrains.com/issue/OC-16560
[14] сделать нельзя: https://github.com/Quick/Quick/issues/552
[15] кучей других: https://habrahabr.ru/company/JetBrains/blog/318304/
[16] отсюда: https://youtrack.jetbrains.com/issue/OC-14693
[17] проблемы с OCMock: https://youtrack.jetbrains.com/issue/OC-12734
[18] посте @anastasiak2512: https://habrahabr.ru/company/JetBrains/blog/352388/
[19] Xcode header maps: https://habrahabr.ru/post/144834/
[20] BUCK: https://github.com/facebook/buck
[21] больше настроек: https://blog.jetbrains.com/objc/2018/01/xcode-behavior/#interface_settings
[22] раскладки : https://blog.jetbrains.com/objc/2018/01/xcode-behavior/#xcode_keymap
[23] нашем трекере: https://youtrack.jetbrains.com/issues/OC
[24] тут: https://www.jetbrains.com/appcode/download/
[25] Источник: https://habrahabr.ru/post/353468/?utm_source=habrahabr&utm_medium=rss&utm_campaign=353468
Нажмите здесь для печати.