nitlang / nit

Nit language
http://nitlanguage.org
Apache License 2.0
244 stars 67 forks source link

neo_doxygen: todo list and known issues #837

Open jcbrinfo opened 10 years ago

jcbrinfo commented 10 years ago

As requested by @Morriar.

Projet d’importation de la sortie XML de doxygen vers un graphe lu par neo.nit

Référence pour le format de Doxygen: https://github.com/doxygen/doxygen/blob/master/templates/xml/compound.xsd

Progression de l’outil

jcbrinfo commented 10 years ago

I added an entry about visibility redefinitions.

jcbrinfo commented 10 years ago

It seems that a LinkedText (as the name implies) is simply a text with zero, one or more links. Since this definition do not fit in any MType that are already in the Nit’s model, we may need to add a new subclass of MType to handle Doxygen’s types in Nitdoc. This class would be specific to Nitdoc, so it would only affect neo.nit and nitdoc.

Morriar commented 10 years ago

Hum je suis pas sûr de comprendre le lien entre le modèle (MType) et le contenu d'un commentaire (des liens, LinkedText).

À mon avis, tu essayes de mélanger deux choses qui ne devraient pas l'être.

jcbrinfo commented 10 years ago

In compound.xsd, type elements are defined by LinkedTextType.

See https://github.com/doxygen/doxygen/blob/3b8fea2f1f7f2e6a83a35626e6dec9d114a78c9e/src/compound.xsd#L124

Morriar commented 10 years ago

Encore une fois, ce n'est pas parce que la spec de Doxygen que

1) c'est la bonne chose à faire 2) on doit reproduire l'erreur en Nit. ​ J'aimerais autant éviter de mettre de l'info cosmétique dans le modèle Nit.

jcbrinfo commented 10 years ago

Comment veux-tu que je récupère le type alors?

privat commented 10 years ago

Deux choix:

  1. Vous faites une réunion pour vous entende
  2. Je décide arbitrairement, sachant que c'est moi qui ait suggéré d'étendre le modèle Nit pour maintenir temprairement de l'information que doxygen a transformé/perdu
Morriar commented 10 years ago

Fais comme Jean t'a dit de faire, c'est lui le chef.

jcbrinfo commented 10 years ago

With #841, we got members! :smiley:

jcbrinfo commented 10 years ago

I get a very weird behavior with redefs: in the same project, Doxygen list them for some members while not linking some other members to their “super” member. The problem seems to affect members with a lot of definitions, that is a method implemented in many subclasses.

Morriar commented 10 years ago

Est-ce que Javadoc suit le même comportement que Doxygen sur ce cas précis?

jcbrinfo commented 10 years ago

Sous Javadoc, tout fonctionne. Il m’indique même pour mes méthodes call : « Specified by: call in class CotFunction. » Ça semble donc un problème du côté de Doxygen.

jcbrinfo commented 10 years ago

Members are typed now! :smiley:

Morriar commented 10 years ago

Good Job!

jcbrinfo commented 10 years ago

Je viens de me rendre compte que Ruby n’est pas supporté officiellement par Doxygen. J’aurais dû vérifier plus tôt… :disappointed:

Morriar commented 10 years ago

Je vais passer te voir ce matin, on va discuter de la suite dans ce cas.

Alexandre

Le 3 novembre 2014 11:18, jcbrinfo notifications@github.com a écrit :

Je viens de me rendre compte que Ruby n’est pas supporté officiellement par Doxygen. J’aurais dû vérifier plus tôt… [image: :disappointed:]

— Reply to this email directly or view it on GitHub https://github.com/privat/nit/issues/837#issuecomment-61502673.

jcbrinfo commented 10 years ago

In Python, inner classes occur a lot (may be more than in Java). So, I my next task is to rewrite FileCompound and ClassCompound to handle them.

jcbrinfo commented 10 years ago

Inner classes are correctly handled now.

jcbrinfo commented 10 years ago

I updated the first message.

jcbrinfo commented 10 years ago

Doxygen now indicates the language: https://github.com/doxygen/doxygen/commit/e986e0039de21791bd1fbb1f59b13f58c4a46324

So, the --src-lang option may disapear in the future…

jcbrinfo commented 9 years ago

Even without test and plat-* stuff, the Python library is too big for nx. It is not surprising considering the problems I got with Apache Xerces…

jcbrinfo commented 9 years ago

@Morriar For reference, <inbodydescription> elements contains all the documentation blocks (that is comments that follow one of the Doxygen’s syntaxes for documentation) found in the body of a member. This is called “in-body descriptions” by the Doxygen’s community. For usage example, see http://stackoverflow.com/a/758211.

In summary, we should not skip these descriptions. In this regard, neo_doxygen currently behaves as expected.

Note: I put this there to avoid the next maintainer to have hard time to figure out the purpose of <inbodydescription>.

Another example (in Java):

/**
 * Brief description (if `JAVADOC_AUTOBRIEF` is set to `YES`).
 *
 * Detailed description.
 */
void f() {
    /* Regular comment.
     * Skipped by Doxygen.
     */
    /** First block of in-body description.
        Notice the doubled asterisk. */
    /*! Second block of in-body description (QT-style). */
}