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

В этом посте, как и всегда, расскажем о новом релизе 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)


  1. Gargo
    16.08.2021 12:55

    когда у appcode появится lifetime лицензия?


    1. yeswolf Автор
      16.08.2021 13:58

      Правила лицензирования не специфичны для AppCode, они одни на все продукты JetBrains. Ну а так, есть perpetual fallback при годовой подписке. Изменений в принципах лицензирования нет, не планируется.


  1. haymob
    16.08.2021 14:39

    Вы изпользуете sourcekit-lsp?


    1. yeswolf Автор
      16.08.2021 14:47
      +1

      Мы не используем именно sourcekit-lsp по ряду причин. Одна из самых очевидных - нам пришлось работать с SourceKit, в том числе и на Linux, задолго до того, как по нему вообще появилась какая-либо документация, появился open-source вариант, и тем более обертка lsp над ним. Вторая - нет смысла использовать LSP, если запрос напрямую к SourceKit быстрее, а это критично. Третья - он слишком ограничен для требований нашей IDE.

      SourceKit мы используем в следующих областях: а) для вычитки текстового содержимого Swiftовых модулей, потому что иначе невозможно иметь дерево символов для стандартных библиотек / сущностей в проекте б) для отображения ошибок и предупреждений (потому что нет смысла не использовать стопроцентно корректную выдачу и делать ее самим) в) берем оттуда же fix-its, чтобы добавить к нашим, в ряде случаев они не лишние г) на время индексации и построения кэшей берем список автодополнения из SourceKit, а после индексации творчески его добавляем к нашему списку.

      А так, весь функционал IDE это в основном наш движок.


  1. Calc
    28.08.2021 19:57

    https://youtrack.jetbrains.com/issue/OC-21758

    у вас тут висит тикет

    До сих пор непонятно как гвоздями выбрать ios вместо macos.

    Есть примерная дата решения этого впороса?