L’une des nouvelles fonctionnalités de Xcode 5 est la possibilité de documenter votre propre code avec une syntaxe de commentaire spéciale. Le format est similaire à Doxygen, mais semble ne prendre en charge qu’un sous-ensemble de ces fonctionnalités .
Quelles commandes sont supscopes et lesquelles ne le sont pas?
Est-ce que l’une de leurs utilisations diffère de Doxygen?
Voici un exemple de toutes les options que j’ai trouvées depuis Xcode 5.0.2
Cela a été généré avec ce code:
/** First line text. Putting \\n doesn't create a new line.\n One way to create a newline is by making sure nothing is on that line. Not even a single space character! @a Italic text @em with @@a or @@em. @b Bold text with @@b. @p Typewritter font @c with @@p or @@c. Backslashes and must be escaped: C:\\foo. And so do @@ signs: user@@example.com Some more text. @brief brief text @attention attention text @author author text @bug bug text @copyright copyright text @date date text @invariant invariant text @note note text @post post text @pre pre text @remarks remarks text @sa sa text @see see text @since since text @todo todo text @version version text @warning warning text @result result text @return return text @returns returns text @code // code text while (someCondition) { NSLog(@"Hello"); doSomething(); }@endcode Last line text. @param param param text @tparam tparam tparam text */ - (void)myMethod {}
Remarques:
/** block */
, /*! block */
/*! block */
, ou préfixé par ///
ou //!
. @
(style headerdoc ) ou \
(style doxygen ). (Ie @b
et \b
font tous deux la même chose.) @property
texte @property
.) Ils peuvent ensuite être sur la même ligne avec /*!<
, /**<
, //!<
, ///<
. @returns
. Cela montrera le bref texte (sans formatage); s'il n'y a pas de texte bref, il affichera une concaténation de tout le texte jusqu'au premier @block; s'il n'y en a pas (par exemple, vous commencez avec @return), alors tout le texte va séparer toutes les commandes @.
(Voir la première capture d'écran.)
Les commandes de Xcode 5 étant compatibles avec Doxygen, vous pouvez télécharger et utiliser Doxygen pour générer des fichiers de documentation.
Pour une présentation générale de Doxygen et pour documenter le code Objective-C, cette page semble être une bonne ressource.
Descriptions de certaines des commandes supscopes:
@brief
: insère du texte au début du champ de description et est le seul texte qui apparaîtra lors de l'achèvement du code. Les éléments suivants ne fonctionnent pas:
\n
: ne génère pas de nouvelle ligne. Une façon de créer une nouvelle ligne consiste à s’assurer que rien n’est sur cette ligne. Même pas un seul personnage de l'espace! \example
Les éléments suivants ne sont pas pris en charge (ils n'apparaissent même pas en vert foncé):
Apple utilise ce qui semble être des mots-clés réservés qui ne fonctionnent que dans leur documentation. Bien qu'ils apparaissent en vert foncé, il semble que nous ne puissions pas les utiliser comme Apple. Vous pouvez voir des exemples d'utilisation d'Apple dans des fichiers tels que AVCaptureOutput.h.
Voici une liste de certains de ces mots-clés:
Au mieux, le mot clé provoquera une nouvelle ligne dans le champ Description (par exemple, @discussion). Au pire, le mot-clé et tout texte qui le suit n'apparaîtra pas dans l'aide rapide (par exemple, @class).
Swift 2.0 utilise la syntaxe suivante:
/** Squares a number. - parameter parameterName: number The number to square. - returns: The number squared. */
Notez comment @param
est maintenant - parameter
.
Vous pouvez également inclure des puces dans votre documentation:
/** - square(5) = 25 - square(10) = 100 */
Sensé:
Vous devrez peut-être créer votre projet avant que les dernières modifications apscopes à votre documentation apparaissent.
Parfois, cela ne m’a pas suffi. La fermeture de Xcode et la sauvegarde du projet corrigent généralement ces cas.
Je reçois également des résultats différents dans les fichiers .h et les fichiers .m. Je ne peux pas obtenir de nouvelles lignes lorsque les commentaires de la documentation sont dans un fichier d’en-tête.
La plupart du formatage a changé pour Swift 2.0 (à partir de Xcode7 ß3, également vrai pour ß4)
au lieu de :param: thing description of thing
(comme dans Swift 1.2)
c’est maintenant - parameter thing: description of thing
La plupart des mots-clés ont été remplacés par - [keyword]: [description]
au lieu de :[keyword]: [description]
. Actuellement, la liste des mots clés qui ne fonctionnent pas comprend, abstract
, discussion
, brief
, pre
, post
, sa
, see
, availability
, class
, deprecated
, method
, property
, protocol
, related
, ref
.