Привет, Хабр!
В этом посте, как и всегда, расскажем о новом релизе AppCode. Всем, кому интересно, — добро пожаловать под кат.

Swift
Поддержка языка
Как и всегда, поддержка Swift в приоритете, поэтому поддержали разное новое:
SE-0289: Result builders
SE-0295: Codable synthesis for enums with associated values
SE-0296: Async/await
Документация
Сделали автодополнение для ключевых слов в документационных комментариях:

Автодополнение выражений
⇧⌘⏎
, конечно, не так широко известен, как ⌃Space
, но зато помогает быстро набить типичный if
или while
:

Иерархия вызовов
Продолжаем добивать паритет по возможностям между языками — в этом релизе доделали Call Hierarchy:

Выглядит как фича, а на самом деле — здоровенный тест на быстродействие: пока тестировали это окно, исправили кучу проблем.
Swift Package Manager
Сборка и отладка во время индексации
Теперь SPM-проекты можно собрать и отладить во время индексации (тестировать пока нельзя).
Поддержка настроек сборки для целей SPM
Добавили поддержку headerSearchPath
, define
, linkLibrary
и других настроек сборки, описанных в SE-0238:

Плагин Kotlin Multiplatform Mobile для AppCode
Мы тут продолжаем расширять экосистему для разработки на мультиплатформенном Котлине, и вот недавно выпустили новый плагин:

Плюсы — возможность в одном проекте работать с Objective-C/Swift/Kotlin, имея полный функционал IDE для них, описание Xcode-проекта в Gradle. Тут, впрочем, стоит сделать оговорку: этот сценарий рассчитан скорее на новые проекты на KMM, и у нас в планах добавить возможность загрузки уже существующих Xcode-проектов в Gradle DSL без переописания структуры проекта.
Preview Tab для отладчика
Раньше при отладке не было возможности не открывать кучу файлов в редакторе, а теперь есть: надо просто включить в настройках Preview tab:

Текстовый поиск в Local History
Теперь он есть:

А на этом все. Как и всегда — будем рады поговорить на любые темы в комментариях!
Команда AppCode
Комментарии (5)
haymob
16.08.2021 14:39Вы изпользуете sourcekit-lsp?
yeswolf Автор
16.08.2021 14:47+1Мы не используем именно sourcekit-lsp по ряду причин. Одна из самых очевидных - нам пришлось работать с SourceKit, в том числе и на Linux, задолго до того, как по нему вообще появилась какая-либо документация, появился open-source вариант, и тем более обертка lsp над ним. Вторая - нет смысла использовать LSP, если запрос напрямую к SourceKit быстрее, а это критично. Третья - он слишком ограничен для требований нашей IDE.
SourceKit мы используем в следующих областях: а) для вычитки текстового содержимого Swiftовых модулей, потому что иначе невозможно иметь дерево символов для стандартных библиотек / сущностей в проекте б) для отображения ошибок и предупреждений (потому что нет смысла не использовать стопроцентно корректную выдачу и делать ее самим) в) берем оттуда же fix-its, чтобы добавить к нашим, в ряде случаев они не лишние г) на время индексации и построения кэшей берем список автодополнения из SourceKit, а после индексации творчески его добавляем к нашему списку.
А так, весь функционал IDE это в основном наш движок.
Calc
28.08.2021 19:57https://youtrack.jetbrains.com/issue/OC-21758
у вас тут висит тикет
До сих пор непонятно как гвоздями выбрать ios вместо macos.
Есть примерная дата решения этого впороса?
Gargo
когда у appcode появится lifetime лицензия?
yeswolf Автор
Правила лицензирования не специфичны для AppCode, они одни на все продукты JetBrains. Ну а так, есть perpetual fallback при годовой подписке. Изменений в принципах лицензирования нет, не планируется.