doxygen-develop Mailing List for Doxygen (Page 25)
Brought to you by:
dimitri
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
(4) |
Jul
(29) |
Aug
(8) |
Sep
(8) |
Oct
(17) |
Nov
(34) |
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(20) |
Feb
(14) |
Mar
(11) |
Apr
(9) |
May
(8) |
Jun
(7) |
Jul
(25) |
Aug
(12) |
Sep
(12) |
Oct
(24) |
Nov
(27) |
Dec
(12) |
2003 |
Jan
(12) |
Feb
(14) |
Mar
(15) |
Apr
(11) |
May
(17) |
Jun
(20) |
Jul
(32) |
Aug
(13) |
Sep
(34) |
Oct
(12) |
Nov
(16) |
Dec
(33) |
2004 |
Jan
(20) |
Feb
(6) |
Mar
(20) |
Apr
(15) |
May
(16) |
Jun
(28) |
Jul
(7) |
Aug
(7) |
Sep
(17) |
Oct
(16) |
Nov
(17) |
Dec
(43) |
2005 |
Jan
(15) |
Feb
(5) |
Mar
(14) |
Apr
(4) |
May
(3) |
Jun
(8) |
Jul
(17) |
Aug
(16) |
Sep
(7) |
Oct
(17) |
Nov
(1) |
Dec
(7) |
2006 |
Jan
(7) |
Feb
(6) |
Mar
(10) |
Apr
(6) |
May
(3) |
Jun
(4) |
Jul
(3) |
Aug
(3) |
Sep
(18) |
Oct
(11) |
Nov
(10) |
Dec
(3) |
2007 |
Jan
(12) |
Feb
(12) |
Mar
(23) |
Apr
(5) |
May
(13) |
Jun
(6) |
Jul
(5) |
Aug
(4) |
Sep
(8) |
Oct
(10) |
Nov
(6) |
Dec
(7) |
2008 |
Jan
(7) |
Feb
(13) |
Mar
(35) |
Apr
(14) |
May
(13) |
Jun
(4) |
Jul
(9) |
Aug
(6) |
Sep
(12) |
Oct
(9) |
Nov
(6) |
Dec
(3) |
2009 |
Jan
(2) |
Feb
(2) |
Mar
(2) |
Apr
(15) |
May
(1) |
Jun
(2) |
Jul
(7) |
Aug
(3) |
Sep
(4) |
Oct
(1) |
Nov
(2) |
Dec
(1) |
2010 |
Jan
(4) |
Feb
|
Mar
(5) |
Apr
(1) |
May
(5) |
Jun
|
Jul
(2) |
Aug
(3) |
Sep
(11) |
Oct
(2) |
Nov
(1) |
Dec
(5) |
2011 |
Jan
(12) |
Feb
(3) |
Mar
(28) |
Apr
(4) |
May
(3) |
Jun
(4) |
Jul
(15) |
Aug
(12) |
Sep
(2) |
Oct
(3) |
Nov
(6) |
Dec
(3) |
2012 |
Jan
(1) |
Feb
(4) |
Mar
(9) |
Apr
(5) |
May
(6) |
Jun
(6) |
Jul
(3) |
Aug
(3) |
Sep
(4) |
Oct
(2) |
Nov
(9) |
Dec
(7) |
2013 |
Jan
(8) |
Feb
(14) |
Mar
(15) |
Apr
(21) |
May
(29) |
Jun
(34) |
Jul
(3) |
Aug
(7) |
Sep
(13) |
Oct
(1) |
Nov
(3) |
Dec
(5) |
2014 |
Jan
|
Feb
|
Mar
|
Apr
(10) |
May
(2) |
Jun
(4) |
Jul
(2) |
Aug
(2) |
Sep
(4) |
Oct
(4) |
Nov
(4) |
Dec
(2) |
2015 |
Jan
(7) |
Feb
(4) |
Mar
(3) |
Apr
(15) |
May
(4) |
Jun
(9) |
Jul
(1) |
Aug
(2) |
Sep
|
Oct
|
Nov
(3) |
Dec
(7) |
2016 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
(1) |
Jun
(1) |
Jul
|
Aug
(5) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
(9) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(5) |
2018 |
Jan
|
Feb
(2) |
Mar
(3) |
Apr
|
May
(7) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
(4) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
2021 |
Jan
(2) |
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Dimitri V. H. <do...@gm...> - 2008-04-16 20:13:27
|
On 16 apr 2008, at 21:28, Kenneth Porter wrote: > --On Wednesday, April 16, 2008 7:57 PM +0200 Dimitri Van Heesch > <do...@gm...> wrote: > >> The spec file used to be maintained by Kevin McBride. >> But he disappeared from the internet without a trace, so it is now >> basically unmaintained. >> I'm looking for someone to take over maintenance of this file, or >> else >> it will be removed altogether. >> So if you or anyone else want to take this up, please let me know! > > I'll give it a shot. Do you know what Makefile rule is used to > create it > from the .spec.in? I couldn't find anything from a quick inspection of > 1.5.5. Perhaps it was lost in an edit, though, and I need to search > back > over the history. The configure script makes the .spec file from the .spec.in It also puts in the version number. Regards, Dimitri |
From: Kenneth P. <sh...@se...> - 2008-04-16 19:29:18
|
--On Wednesday, April 16, 2008 7:57 PM +0200 Dimitri Van Heesch <do...@gm...> wrote: > The spec file used to be maintained by Kevin McBride. > But he disappeared from the internet without a trace, so it is now > basically unmaintained. > I'm looking for someone to take over maintenance of this file, or else > it will be removed altogether. > So if you or anyone else want to take this up, please let me know! I'll give it a shot. Do you know what Makefile rule is used to create it from the .spec.in? I couldn't find anything from a quick inspection of 1.5.5. Perhaps it was lost in an edit, though, and I need to search back over the history. |
From: Dimitri V. H. <do...@gm...> - 2008-04-16 17:57:07
|
Hi Kenneth, The spec file used to be maintained by Kevin McBride. But he disappeared from the internet without a trace, so it is now basically unmaintained. I'm looking for someone to take over maintenance of this file, or else it will be removed altogether. So if you or anyone else want to take this up, please let me know! Regards, Dimitri On 16 apr 2008, at 02:45, Kenneth Porter wrote: > I'm trying to build the RPM on CentOS 5.1 and encountered these > issues: > > The spec file refers to the tarball by the old version, 1.5.4. > > The spec file appends a revision ("_1") to the tarball name and main > directory that's not in fact there. > > There should be a buildprereq on the ghostscript package or its > binary. > > /usr/man/man1/doxywizard.1.gz is missing from %files. > > After fixing these I was able to get the package to build and install. > > I don't see a rule in the Makefile to convert the .spec.in file to the > .spec file. The man page issue appears fixed in the .spec.in but the > other > issues appear to still be there. > > ------------------------------------------------------------------------- > This SF.net email is sponsored by the 2008 JavaOne(SM) Conference > Don't miss this year's exciting event. There's still time to save > $100. > Use priority code J8TL2D2. > http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone > _______________________________________________ > Doxygen-develop mailing list > Dox...@li... > https://lists.sourceforge.net/lists/listinfo/doxygen-develop |
From: Kenneth P. <sh...@se...> - 2008-04-16 00:46:34
|
I'm trying to build the RPM on CentOS 5.1 and encountered these issues: The spec file refers to the tarball by the old version, 1.5.4. The spec file appends a revision ("_1") to the tarball name and main directory that's not in fact there. There should be a buildprereq on the ghostscript package or its binary. /usr/man/man1/doxywizard.1.gz is missing from %files. After fixing these I was able to get the package to build and install. I don't see a rule in the Makefile to convert the .spec.in file to the .spec file. The man page issue appears fixed in the .spec.in but the other issues appear to still be there. |
From: Johann H. <jh...@gm...> - 2008-04-08 09:32:07
|
Well, as always, forgot the attachment... |
From: Johann H. <jh...@gm...> - 2008-04-08 09:30:39
|
Hi, the attached patch adds a command named \prototype which simply creates a paragraph showing the prototype of the member. This sometimes looks nicer compared to having the complete prototype output in the header. Comments, please? Cheers, Johann |
From: Johann H. <jh...@gm...> - 2008-04-08 09:27:29
|
Hi, the attached patch adds two options named MEMBER_LIST_NAMEONLY and MEMBER_DESC_NAMEONLY which output only the member names in the member list/description. This sometimes looks nicer, especially when having a C API with many arguments for each function. Comments, please? Cheers, Johann |
From: Oleg B. <og...@gm...> - 2008-03-21 22:55:48
|
> I can imagine that its implementation is different in other languages. > And splitting the words to translate as "member" and "s" won't help :( > > Plural form handling in GNU gettext is a bit complicated, in fact: > > http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms I give up, it is too cruel, I only deal with programming languages. Maybe, it is really better to just create specialized Translator class. Oleg |
From: Francesco M. <f18...@ya...> - 2008-03-21 22:33:52
|
Oleg Batrashev ha scritto: >> > how could you write it in a text-conf file? >> You leave all these conditionals there in the class, just add >> tranlations for Class, Struct, Union, ... and Template. >> Number of translate words does not have to be the same as number of tr >> functions. > And you may probably have to keep them separate from just Class, > Struct, ... translations because languages other than english may use > different forms. Although, as I heard i18n has the same problem. I don't like very much the idea of breaking the labels in lots of separed words. Consider also functions like: virtual QCString trMember(bool first_capital, bool singular) { QCString result((first_capital ? "Member" : "member")); if (!singular) result+="s"; return result; } I can imagine that its implementation is different in other languages. And splitting the words to translate as "member" and "s" won't help :( Plural form handling in GNU gettext is a bit complicated, in fact: http://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms Maybe Doxygen should simply use .po/.mo files after all... both in this case and in the text-conf case however, we'd need to rewrite all translation files, which involves help from all translators to review tons of changes in the translation files... I'm not sure this is a good choice. Francesco |
From: Oleg B. <og...@gm...> - 2008-03-21 21:36:21
|
> > how could you write it in a text-conf file? > You leave all these conditionals there in the class, just add > tranlations for Class, Struct, Union, ... and Template. > Number of translate words does not have to be the same as number of tr > functions. And you may probably have to keep them separate from just Class, Struct, ... translations because languages other than english may use different forms. Although, as I heard i18n has the same problem. Oleg |
From: Oleg B. <og...@gm...> - 2008-03-21 21:31:05
|
> it's still not clear to me how such a text-conf approach could cope with > these booleans and conditional statements... take e.g. > trCompoundReference() function: > > /*! used as the title of the HTML page of a class/struct/union */ > virtual QCString trCompoundReference(const char *clName, > ClassDef::CompoundType compType, > bool isTemplate) > { > QCString result=(QCString)clName; > switch(compType) > { > case ClassDef::Class: result+=" Class"; break; > case ClassDef::Struct: result+=" Struct"; break; > case ClassDef::Union: result+=" Union"; break; > case ClassDef::Interface: result+=" Interface"; break; > case ClassDef::Protocol: result+=" Protocol"; break; > case ClassDef::Category: result+=" Category"; break; > case ClassDef::Exception: result+=" Exception"; break; > } > if (isTemplate) result+=" Template"; > result+=" Reference"; > return result; > } > > how could you write it in a text-conf file? You leave all these conditionals there in the class, just add tranlations for Class, Struct, Union, ... and Template. Number of translate words does not have to be the same as number of tr functions. Oleg |
From: Francesco M. <f18...@ya...> - 2008-03-21 21:25:12
|
Hi, Oleg Batrashev ha scritto: >> do I miss something? > I think yes, you do ;) I still push my solution which is close to XML one. > > In translation file you could have one default section and specialized > sections fot C, Fortran, etc which override default section strings > (or use XML analogue) > ------ >... > ------ > > You will still have one Translator class but there are 2 possibilities > 1) You create array of strings for every section. You leave booleans, > string arguments and conditional statements as they are it's still not clear to me how such a text-conf approach could cope with these booleans and conditional statements... take e.g. trCompoundReference() function: /*! used as the title of the HTML page of a class/struct/union */ virtual QCString trCompoundReference(const char *clName, ClassDef::CompoundType compType, bool isTemplate) { QCString result=(QCString)clName; switch(compType) { case ClassDef::Class: result+=" Class"; break; case ClassDef::Struct: result+=" Struct"; break; case ClassDef::Union: result+=" Union"; break; case ClassDef::Interface: result+=" Interface"; break; case ClassDef::Protocol: result+=" Protocol"; break; case ClassDef::Category: result+=" Category"; break; case ClassDef::Exception: result+=" Exception"; break; } if (isTemplate) result+=" Template"; result+=" Reference"; return result; } how could you write it in a text-conf file? Francesco |
From: Oleg B. <og...@gm...> - 2008-03-21 21:01:17
|
> In conclusion I think that in order to make the doxygen "fixed labels" > more configurable two solutions are realistically possible: > > 1) create a special Translator as I proposed > > or > > 2) make the HTML4 output XHTML compliant so that XSLT can be used on it > > > do I miss something? I think yes, you do ;) I still push my solution which is close to XML one. In translation file you could have one default section and specialized sections fot C, Fortran, etc which override default section strings (or use XML analogue) ------ [DEFAULT] trModules = Modules trNamespaces = Namespaces trHello = Hello \1 [FORTRAN] trModules = Categories trNamespaces = Modules [C] trHello = Hello C, \1 ! ------ You will still have one Translator class but there are 2 possibilities 1) You create array of strings for every section. You leave booleans, string arguments and conditional statements as they are but choose different array if OPTIMIZE_FOR_X is set. 2) On doxygen startup, when you read translation file, you override strings in the same, and only one, array. Now, you only need to specify [USER] section (in user defined file) which overrides definitions in all other sections. Yes, and of course you need something like printf functionality for \1 arguments. Need to look into other translator classes if they have more specialized code. Oleg |
From: Francesco M. <f18...@ya...> - 2008-03-21 20:21:36
|
Dimitri Van Heesch ha scritto: >>> Dimitri, what do you think of this idea? >>> It should be an easy-to-implement and fairly robust solution, which >>> avoids the user to install sed and write sed postprocessing scripts >>> to >>> fix the naming of some fixed labels in the output.... > > It sounds a bit too much like a hack to me, so I'm not too > enthusiastic about it. > A better solution would then be to allow translators to be plugins > loaded at startup. Either as a dynamically loadable library (but that is > difficult to do in a portable way) this would do the job but as you say it would be impossible for the users to have a single DSO for all platforms where doxygen must be able to run (e.g. linuxes with different versions of libc, linux/win, etc). Also it would be a very unconvenient way to change labels in the generated output: you'd have to write a C file, compile it, link it, test it... > or as an XML file. this is much more easier to do but would an XML translation file cope with trXXX() functions which take booleans/strings ? The latter can be just used as replacements for $1, $2 (or similar syntaxed) strings. The first however needs a "decisional" syntax... which is not part of XML. > One can even go one step further and implemented > item 9 on the todo > list (http://www.doxygen.org/todo.html), i.e. a template file that > defines the structure of the output. this would be the best (in the sense "more complete") solution. It could even make possible to get XHTML output. However I think that either we invent a new programming language ad-hoc for such template files (which would be quite complex and would produce probably a buggy implementation), or use some existing embeddable interpreter. Unfortunately embeddable interpreters are not very used: a Python interpreter is very difficult to embed AFAIK. C++ interpreters exist (see e.g. UnderC as open source product) but are quite a niche category of software. Something else which comes to my mind is that if Doxygen could output XHTML instead of HTML4, it would be easy to change "fixed labels" (and not only them!) doing an XSLT transformation on it... Also, the XSLT solution over an XHTML output of doxygen would be possible only for the XHTML output itself: latex/rtf/etc would still have those "fixed labels". In conclusion I think that in order to make the doxygen "fixed labels" more configurable two solutions are realistically possible: 1) create a special Translator as I proposed or 2) make the HTML4 output XHTML compliant so that XSLT can be used on it do I miss something? Francesco |
From: Dimitri V. H. <do...@gm...> - 2008-03-21 19:51:46
|
Hi Francesco, On 21 mrt 2008, at 10:59, Francesco Montorsi wrote: > Hi, > I have some free time in these days and I'd like to implement this > new feature if it's ok to do it as I described... however I still have > got no clear comments in this sense... > > Please tell me if a patch implementing this proposal would be > accepted. > > Thanks, > Francesco > > > Francesco Montorsi ha scritto: >> Hi, >> I'd like to propose a new feature for Doxygen; if doxy devs find >> it >> interesting I'd be willing to provide a patch to implement it. >> >> Using doxygen in a big project I started using doxygen grouping >> features >> and I must say they're very useful. However the groups created go >> in the >> HTML output under the "Modules" tab. Unfortunately this is very >> misleading in the context of that project. >> >> I know doxygen can't know that I'd prefer "categories" as tab's label >> since I'm putting there groups of classes classified by category :) >> >> However I think that it shouldn't be difficult to add to Doxygen a >> generic system which allows to override the default strings >> returned by >> the Translator-derived class selected for use. >> >> I.e. we could add an option, say "OUTPUT_FILTER", which allows the >> user >> to specify a text file to use as "filter map". >> Suppose I want in my project to have "Modules" label (returned by >> trModules() function) replaced by a "SomethingElse" label and the >> text >> returned by trGeneratedAutomatically(const char*s) replaced by >> "Generated for " + s + " by Doxygen". >> Then I could simply write in the "filter map": >> >> trModules=SomethingElse >> trGeneratedAutomatically=Generated for \1 by Doxygen >> >> i.e. use argument substitution like it's done for ALIASes. >> >> Doxygen modifications would consist in: >> 1) creation of the control code for the new option >> 2) in the setTranslator() function, if OUTPUT_FILTER option is >> non-empty, assign to theTranslator global the instance of a new >> TranslatorFilter (derived from Translator) chained to the "real" >> translator instance (e.g. TranslatorEnglish) >> 3) write the TranslatorFilter; for each trXXX() function it should >> read the message from the filter map; if the message is there, just >> substitute \1, \2... and return the custom text; otherwise return >> m_realTranslator->trXXX(); >> >> Using a static "filter map" as I suggested means however that >> functions >> like trClass() which takes boolean to "decide" to return a plural >> form >> or not, and in general all trXXX() functions which involve "decision" >> could not be filtered in a smart way (i.e. doing decisions), since >> decision constructs would be an overkill for both the filter map >> parser >> and in general for this feature. >> >> However the trXXX() functions which take such booleans are really few >> and the main things one may need to filter are argument-less trXXX() >> functions. >> >> Dimitri, what do you think of this idea? >> It should be an easy-to-implement and fairly robust solution, which >> avoids the user to install sed and write sed postprocessing scripts >> to >> fix the naming of some fixed labels in the output.... It sounds a bit too much like a hack to me, so I'm not too enthusiastic about it. A better solution would then be to allow translators to be plugins loaded at startup. Either as a dynamically loadable library (but that is difficult to do in a portable way) or as an XML file. One can even go one step further and implemented item 9 on the todo list (http://www.doxygen.org/todo.html), i.e. a template file that defines the structure of the output. Regards, Dimitri |
From: Francesco M. <f18...@ya...> - 2008-03-21 10:00:13
|
Hi, I have some free time in these days and I'd like to implement this new feature if it's ok to do it as I described... however I still have got no clear comments in this sense... Please tell me if a patch implementing this proposal would be accepted. Thanks, Francesco Francesco Montorsi ha scritto: > Hi, > I'd like to propose a new feature for Doxygen; if doxy devs find it > interesting I'd be willing to provide a patch to implement it. > > Using doxygen in a big project I started using doxygen grouping features > and I must say they're very useful. However the groups created go in the > HTML output under the "Modules" tab. Unfortunately this is very > misleading in the context of that project. > > I know doxygen can't know that I'd prefer "categories" as tab's label > since I'm putting there groups of classes classified by category :) > > However I think that it shouldn't be difficult to add to Doxygen a > generic system which allows to override the default strings returned by > the Translator-derived class selected for use. > > I.e. we could add an option, say "OUTPUT_FILTER", which allows the user > to specify a text file to use as "filter map". > Suppose I want in my project to have "Modules" label (returned by > trModules() function) replaced by a "SomethingElse" label and the text > returned by trGeneratedAutomatically(const char*s) replaced by > "Generated for " + s + " by Doxygen". > Then I could simply write in the "filter map": > > trModules=SomethingElse > trGeneratedAutomatically=Generated for \1 by Doxygen > > i.e. use argument substitution like it's done for ALIASes. > > Doxygen modifications would consist in: > 1) creation of the control code for the new option > 2) in the setTranslator() function, if OUTPUT_FILTER option is > non-empty, assign to theTranslator global the instance of a new > TranslatorFilter (derived from Translator) chained to the "real" > translator instance (e.g. TranslatorEnglish) > 3) write the TranslatorFilter; for each trXXX() function it should > read the message from the filter map; if the message is there, just > substitute \1, \2... and return the custom text; otherwise return > m_realTranslator->trXXX(); > > Using a static "filter map" as I suggested means however that functions > like trClass() which takes boolean to "decide" to return a plural form > or not, and in general all trXXX() functions which involve "decision" > could not be filtered in a smart way (i.e. doing decisions), since > decision constructs would be an overkill for both the filter map parser > and in general for this feature. > > However the trXXX() functions which take such booleans are really few > and the main things one may need to filter are argument-less trXXX() > functions. > > Dimitri, what do you think of this idea? > It should be an easy-to-implement and fairly robust solution, which > avoids the user to install sed and write sed postprocessing scripts to > fix the naming of some fixed labels in the output.... > > Thanks, > Francesco > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ |
From: Francesco M. <f18...@ya...> - 2008-03-21 09:59:22
|
Hi, I have some free time in these days and I'd like to implement this new feature if it's ok to do it as I described... however I still have got no clear comments in this sense... Please tell me if a patch implementing this proposal would be accepted. Thanks, Francesco Francesco Montorsi ha scritto: > Hi, > I'd like to propose a new feature for Doxygen; if doxy devs find it > interesting I'd be willing to provide a patch to implement it. > > Using doxygen in a big project I started using doxygen grouping features > and I must say they're very useful. However the groups created go in the > HTML output under the "Modules" tab. Unfortunately this is very > misleading in the context of that project. > > I know doxygen can't know that I'd prefer "categories" as tab's label > since I'm putting there groups of classes classified by category :) > > However I think that it shouldn't be difficult to add to Doxygen a > generic system which allows to override the default strings returned by > the Translator-derived class selected for use. > > I.e. we could add an option, say "OUTPUT_FILTER", which allows the user > to specify a text file to use as "filter map". > Suppose I want in my project to have "Modules" label (returned by > trModules() function) replaced by a "SomethingElse" label and the text > returned by trGeneratedAutomatically(const char*s) replaced by > "Generated for " + s + " by Doxygen". > Then I could simply write in the "filter map": > > trModules=SomethingElse > trGeneratedAutomatically=Generated for \1 by Doxygen > > i.e. use argument substitution like it's done for ALIASes. > > Doxygen modifications would consist in: > 1) creation of the control code for the new option > 2) in the setTranslator() function, if OUTPUT_FILTER option is > non-empty, assign to theTranslator global the instance of a new > TranslatorFilter (derived from Translator) chained to the "real" > translator instance (e.g. TranslatorEnglish) > 3) write the TranslatorFilter; for each trXXX() function it should > read the message from the filter map; if the message is there, just > substitute \1, \2... and return the custom text; otherwise return > m_realTranslator->trXXX(); > > Using a static "filter map" as I suggested means however that functions > like trClass() which takes boolean to "decide" to return a plural form > or not, and in general all trXXX() functions which involve "decision" > could not be filtered in a smart way (i.e. doing decisions), since > decision constructs would be an overkill for both the filter map parser > and in general for this feature. > > However the trXXX() functions which take such booleans are really few > and the main things one may need to filter are argument-less trXXX() > functions. > > Dimitri, what do you think of this idea? > It should be an easy-to-implement and fairly robust solution, which > avoids the user to install sed and write sed postprocessing scripts to > fix the naming of some fixed labels in the output.... > > Thanks, > Francesco > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ |
From: Oleg B. <og...@gm...> - 2008-03-18 12:55:14
|
Hi, > Is there any special reason why the main program does not get a call graph > or is not included in any caller graphs? > This situation refers to a fortran program. I haven't looked into it but fortran modules are essentially C++ namespaces in the implementation. And because the latter may not contain executable code it is presumably not handled inside reference resolution. But it may also be a problem of fortrancode.l - I do not know, have to look into it at some point. > Should I fill a bug? Yes, I think in any case it is a bug and you may fill it. Oleg |
From: Oleg B. <og...@gm...> - 2008-03-13 18:15:29
|
> I was proposing something simpler only for project-specific filtering; > changing all doxygen's Translator class implementations seems > inefficient to me (doxygen would be slower since it needs to read the > text conf file). You only need to read and parse one small conf file in the beginning. > > > And compilation time translator files take is huge. > I don't think this is a major problem... not many doxygen users compile > it from sources I think (all major distro have it packaged) :) Agree, but a it is still a little annoying for me :) > > But it is quite an effort to reimplement. > in fact... my approach seems easier to me. Maybe it is really not that related to what you want. I've got this idea about translators about a year, so you pushed the button ;) > > Thanks anyway for your suggestions :) Oleg |
From: Francesco M. <f18...@ya...> - 2008-03-13 17:53:10
|
Oleg Batrashev ha scritto: > Hi, > >> However I think that it shouldn't be difficult to add to Doxygen a >> generic system which allows to override the default strings returned by >> the Translator-derived class selected for use. > I would move "resourece strings" and localization completely to text > conf files. It worked very well in my past experience with Java and > Python. however how do you take "decisions" in text conf files? some functions take boolean arguments and output different strings dependending on it... I was proposing something simpler only for project-specific filtering; changing all doxygen's Translator class implementations seems inefficient to me (doxygen would be slower since it needs to read the text conf file). > And compilation time translator files take is huge. I don't think this is a major problem... not many doxygen users compile it from sources I think (all major distro have it packaged) :) >> I.e. we could add an option, say "OUTPUT_FILTER", which allows the user >> to specify a text file to use as "filter map". >> Suppose I want in my project to have "Modules" label (returned by >> trModules() function) replaced by a "SomethingElse" label and the text >> returned by trGeneratedAutomatically(const char*s) replaced by >> "Generated for " + s + " by Doxygen". >> Then I could simply write in the "filter map": >> >> trModules=SomethingElse >> trGeneratedAutomatically=Generated for \1 by Doxygen ops; here I wanted to write trGeneratedAutomatically{1}=Generated for \1 by Doxygen actually. > Yes, in Python I would use something like > module=module > generatedAutomatically=Generated for %{project-name} by Doxygen hmmm, I think reusing the same ALIASes syntax would be simpler and more intuitive for the user... > So, you just need to tweak a resource (localization) file and pass it > to doxygen as a replacement to original. > > But it is quite an effort to reimplement. in fact... my approach seems easier to me. Thanks anyway for your suggestions :) Francesco |
From: Oleg B. <og...@gm...> - 2008-03-13 16:17:14
|
Hi, > However I think that it shouldn't be difficult to add to Doxygen a > generic system which allows to override the default strings returned by > the Translator-derived class selected for use. I would move "resourece strings" and localization completely to text conf files. It worked very well in my past experience with Java and Python. And compilation time translator files take is huge. > I.e. we could add an option, say "OUTPUT_FILTER", which allows the user > to specify a text file to use as "filter map". > Suppose I want in my project to have "Modules" label (returned by > trModules() function) replaced by a "SomethingElse" label and the text > returned by trGeneratedAutomatically(const char*s) replaced by > "Generated for " + s + " by Doxygen". > Then I could simply write in the "filter map": > > trModules=SomethingElse > trGeneratedAutomatically=Generated for \1 by Doxygen Yes, in Python I would use something like module=module generatedAutomatically=Generated for %{project-name} by Doxygen So, you just need to tweak a resource (localization) file and pass it to doxygen as a replacement to original. But it is quite an effort to reimplement. Regards, Oleg |
From: Francesco M. <f18...@ya...> - 2008-03-13 15:25:09
|
Divye Kapoor ha scritto: > Hello all, > This is in response to the message posted by Mr Francesco Montorsi > about Doxygen taking part in the Google Summer of Code. Doxygen is a > great tool for documenting code and I would like to see the project > improve and build upon its current achievements. From the mailing list > archives and the bug tracker, it seems that there are quite a few > features that can be improved upon or implemented completely - > specially the new Perl output format. Also, one the tasks in the TODO > requests for a custom formatted output HTML or similar format. I guess > some of these requests are serious enough for a GSoC project and > Doxygen's users will benefit from any code developed as part of GSoC. > I would request the developers to consider participating in GSoC 2008 > to attract a greater number of developers to Doxygen. As for > interested candidates for these projects - I for one am one :-) Unfortunately mentoring organization submission has now closed. It's a pity that doxygen doesn't take advantage of Google's initiative... Francesco |
From: Francesco M. <f18...@ya...> - 2008-03-13 15:20:56
|
Hi, I'd like to propose a new feature for Doxygen; if doxy devs find it interesting I'd be willing to provide a patch to implement it. Using doxygen in a big project I started using doxygen grouping features and I must say they're very useful. However the groups created go in the HTML output under the "Modules" tab. Unfortunately this is very misleading in the context of that project. I know doxygen can't know that I'd prefer "categories" as tab's label since I'm putting there groups of classes classified by category :) However I think that it shouldn't be difficult to add to Doxygen a generic system which allows to override the default strings returned by the Translator-derived class selected for use. I.e. we could add an option, say "OUTPUT_FILTER", which allows the user to specify a text file to use as "filter map". Suppose I want in my project to have "Modules" label (returned by trModules() function) replaced by a "SomethingElse" label and the text returned by trGeneratedAutomatically(const char*s) replaced by "Generated for " + s + " by Doxygen". Then I could simply write in the "filter map": trModules=SomethingElse trGeneratedAutomatically=Generated for \1 by Doxygen i.e. use argument substitution like it's done for ALIASes. Doxygen modifications would consist in: 1) creation of the control code for the new option 2) in the setTranslator() function, if OUTPUT_FILTER option is non-empty, assign to theTranslator global the instance of a new TranslatorFilter (derived from Translator) chained to the "real" translator instance (e.g. TranslatorEnglish) 3) write the TranslatorFilter; for each trXXX() function it should read the message from the filter map; if the message is there, just substitute \1, \2... and return the custom text; otherwise return m_realTranslator->trXXX(); Using a static "filter map" as I suggested means however that functions like trClass() which takes boolean to "decide" to return a plural form or not, and in general all trXXX() functions which involve "decision" could not be filtered in a smart way (i.e. doing decisions), since decision constructs would be an overkill for both the filter map parser and in general for this feature. However the trXXX() functions which take such booleans are really few and the main things one may need to filter are argument-less trXXX() functions. Dimitri, what do you think of this idea? It should be an easy-to-implement and fairly robust solution, which avoids the user to install sed and write sed postprocessing scripts to fix the naming of some fixed labels in the output.... Thanks, Francesco |
From: Francesco M. <f18...@ya...> - 2008-03-13 15:09:08
|
Hi, sorry for the big delay but somehow I missed this reply up to now. do...@ke... ha scritto: > On Wed, Mar 05, 2008 at 03:12:49PM +0100, Francesco Montorsi wrote: > >> Francesco Montorsi ha scritto: >>> In conclusion: I need a pause and some help to complete this patch :) >>> >>> What's your (doxygen team) interest toward XHTML? >>> Isn't it one of your priorities? >> so, there's no interest in XHTML development? >> Noone willing to help me? > > I'm willing to help. Great! > I'm very behind on the internals of Doxygen, > though, so I don't know how much help I can be. > > What do you need other people to help with? basically with testing of the patch and with further fixes to doxygen sources; in particular to force it to generate all needed </tr> and </td> tags. Steps to help: 1) apply my patch to doxygen trunk 2) unzip the validator stuff in the examples folder 3) enable the #define DBG_HTML(x) macro to return "x" in htmlgen.cpp 4) compile doxygen; run it on the examples and then run the "./validate_xhtml" script 5) look at the validation file called "log": there are bunch of errors there which need to be fixed in the corresponding *def.cpp source files. E.g. I get as first error: define/html/define_8h.html:68: parser error : Opening and ending tag mismatch: tr line 56 and table </table> ^ You can see in that html file that there is a missing </tr> tag: <!-- startMemberDocName --> <table class="memname"> <tr> <td class="memname">#define MAX<!-- endMemberDocName --> </td> <!-- startParameterList --> <td>(</td> <!-- startFirstParameterType --> <td class="paramtype">x, <!-- endParameterType --> </td> <!-- startParameterType --> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">y<!-- endParameterType --> </td> <!-- startParameterName --> <td class="paramname"><!-- endParameterName --> </td> <td> ) </td> <td> ((x)>(y)?(x):(y))<!-- endParameterList --> </td> </tr> <!-- endMemberDoc --> </table> this is due to the fact that after startFirstParameterType() is called, and after endParameterType() is called, there's no </tr> added. This is because (AFAIUI) after the parameter type it should always be spit out the parameter name, which puts the </tr>. In this case it wasn't called... why? etc.... to be continued... :) Thanks for any help!! Francesco |
From: Divye K. <div...@gm...> - 2008-03-08 21:31:13
|
Hello all, This is in response to the message posted by Mr Francesco Montorsi about Doxygen taking part in the Google Summer of Code. Doxygen is a great tool for documenting code and I would like to see the project improve and build upon its current achievements. From the mailing list archives and the bug tracker, it seems that there are quite a few features that can be improved upon or implemented completely - specially the new Perl output format. Also, one the tasks in the TODO requests for a custom formatted output HTML or similar format. I guess some of these requests are serious enough for a GSoC project and Doxygen's users will benefit from any code developed as part of GSoC. I would request the developers to consider participating in GSoC 2008 to attract a greater number of developers to Doxygen. As for interested candidates for these projects - I for one am one :-) Yours sincerely, Divye Kapoor Second Year B.Tech(IDD) Computer Science Indian Institute of Technology, Roorkee, India -- Whether the chicken crossed the road or the road moved beneath the chicken depends upon your frame of reference. |