Как добавить расширение строки в Apple DocC

#ios #swift #xcode #xcode13 #docc

Вопрос:

Я проверяю новую документацию Apple Xcode 13 beta . Я могу build documentation это сделать с помощью DocC.

Но я не могу видеть никакой документации, созданной для расширений, таких как расширение строки, расширение даты.

Как в примере для приведенного ниже случая, он не будет добавлять никакой документации.

 extension String {

    /// Description for DocC
    func myMethod() {
       
    }
}
 

Подумайте, если я создал расширение для какой-либо структуры или класса, то он добавляет документацию, как показано ниже кода

 public struct MyStruct {

}


extension MyStruct {

  /// Description
  func myMethod() {
 
  }
}
 

Это поведение Apple по умолчанию или я что-то упускаю?

Ответ №1:

В настоящее время это не поддерживается. DocC не может создавать документацию ни для чего, кроме типов одного модуля. Расширения типов за пределами вашего модуля не обрабатываются. (Это также не позволит вам ссылаться на типы за пределами вашего модуля с помощью ``...`` ссылок.)

Комментарии:

1. Спасибо Робу Нейпиру. Это ограничение бета-версии XCode? У вас есть какая-либо конкретная ссылка на документ, где описан вышеприведенный сценарий ?

2. Это ограничение бета-версии, но нет никаких признаков того, что она будет улучшена для выпуска (Apple редко объявляет, что они планируют улучшить, пока она не будет выпущена, так что это может произойти). Официального списка ограничений DocC, о которых мне известно, нет (он будет с открытым исходным кодом позже в этом году, но пока нет). Но это не работает, как и соответствующие описанные варианты использования. Символы разрешаются только относительно текущего модуля. Когда будут опубликованы доклады 360iDev, Эллен Шапиро отлично выступила на эту тему. speakerdeck.com/designatednerd/…

3. Обратите внимание, что это относится даже к пакетам Swift PM, которые включают в себя несколько модулей. Вы вообще не можете ссылаться за пределами текущего модуля, даже внутри одного и того же пакета SPM. Такова природа v1.0.