nitlang / nit

Nit language
http://nitlanguage.org
Apache License 2.0
239 stars 65 forks source link

neo_doxygen: todo list and known issues #837

Open jcbrinfo opened 9 years ago

jcbrinfo commented 9 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 9 years ago

I added an entry about visibility redefinitions.

jcbrinfo commented 9 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 9 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 9 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 9 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 9 years ago

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

privat commented 9 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 9 years ago

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

jcbrinfo commented 9 years ago

With #841, we got members! :smiley:

jcbrinfo commented 9 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 9 years ago

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

jcbrinfo commented 9 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 9 years ago

Members are typed now! :smiley:

Morriar commented 9 years ago

Good Job!

jcbrinfo commented 9 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 9 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 9 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 9 years ago

Inner classes are correctly handled now.

jcbrinfo commented 9 years ago

I updated the first message.

jcbrinfo commented 9 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). */
}