summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* issue #6764 Incorrect parsing of C enum comments defined using a macroalbert-github2019-01-151-1/+15
| | | | When in a `/*` comment skip till end of the comment so a `,` won't be seen as the argument separator.
* Added 'constexpr' as attribute label and to XML outputDimitri van Heesch2019-01-135-0/+25
|
* Added noexcept attribute to the XML outputDimitri van Heesch2019-01-131-0/+5
|
* Merge: moved example from 081 to 084, improved check if last char is newlineDimitri van Heesch2019-01-131-1/+1
|
* Merge branch 'feature/bug_pre_markdown' of ↵Dimitri van Heesch2019-01-131-1/+3
|\ | | | | | | https://github.com/albert-github/doxygen into albert-github-feature/bug_pre_markdown
| * No translation of markdown in <pre>albert-github2019-01-111-1/+3
| | | | | | | | | | | | | | | | | | According to the documentation: Doxygen does not have this requirement, and will also process Markdown formatting inside such HTML blocks. The only exception is <pre> blocks, which are passed untouched (handy for ASCII art). Though in case the `</pre>` is the last statement in a non block type comment the markdown is processed. C has block type /* ... */ and /// is translated to this, Fortran, Python are line type comments. Adding a `\n` at the when no `\n` is present at the end solves the problem.
* | Merge branch 'master' of github.com:doxygen/doxygenDimitri van Heesch2019-01-123-1/+7
|\ \
| * \ Merge pull request #6767 from albert-github/feature/bug_xhtml_tooltipDimitri van Heesch2019-01-122-1/+2
| |\ \ | | | | | | | | Invalid id possible with tooltips
| | * | Invalid id possible with tooltipsalbert-github2019-01-112-1/+2
| | |/ | | | | | | | | | | | | | | | In case a filename starts with a number the `id` also starts with a number and this is not allowed in XHTML and results in the message: `Syntax of value for attribute id of div is not valid` on other places it has been solved by placing an `a` as first character, this is done here as well but also needs to be don in the transformation from reference to tooltip id (htmlgen.cpp)
| * | Terminate brief in case of `-#` listalbert-github2019-01-111-0/+5
| |/ | | | | | | With the list types `-`, `*` and `1.` the brief description is terminated, with the `-#` lists this was not the case.
* | Added declfile, declline, and declcolumn attributes to the location element ↵Dimitri van Heesch2019-01-126-22/+114
|/ | | | in the XML output
* Merge pull request #6738 from albert-github/feature/issue_6733Dimitri van Heesch2019-01-101-7/+54
|\ | | | | issue #6733 invalid cite anchor id when using crossref
| * issue #6733 invalid cite anchor id when using crossrefalbert-github2019-01-041-7/+54
| | | | | | | | | | | | | | The crossreference possibility was not properly taken into account in bibtex conversion for other formats than LaTeX. - doxygen.bst: use correct labels (i.e. add 'CITEREF_' in case of crossreferences to the giver name) - cite.cpp: add the crossreferences to the citation dictionary (to overcome warning message). - extending test 012
* | Merge pull request #6740 from albert-github/feature/issue_6727Dimitri van Heesch2019-01-101-1/+1
|\ \ | | | | | | issue #6727 SHOW_NAMESPACES = NO breaks latex PDF
| * | issue #6727 SHOW_NAMESPACES = NO breaks latex PDFalbert-github2019-01-051-1/+1
| | | | | | | | | | | | Only write the namespace index file reference (i.e. namespaces.tex , namespaces.rtf) to the overall file (i.e. refman.tex. refman.rtf) in case SHOW_NAMESPACES is set and there are namespaces.
* | | Merge pull request #6757 from albert-github/feature/issue_6754Dimitri van Heesch2019-01-101-1/+1
|\ \ \ | | | | | | | | issue #6754 False positives for "multiple @param sections"
| * | | issue #6754 False positives for "multiple @param sections"albert-github2019-01-081-1/+1
| | | | | | | | | | | | | | | | Don't add the argument to list of parameters in case of a non-parameter call (i.e. retval call)
* | | | Merge pull request #6761 from albert-github/feature/bug_xhtml_briefDimitri van Heesch2019-01-101-0/+4
|\ \ \ \ | | | | | | | | | | Terminating brief command
| * | | | Terminating brief commandalbert-github2019-01-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The brief command is intended for a small description of a function / class / namespace etc. and not to have extensive formulas or code snippets. These commands should terminate the brief description and start the detailed section. The commands `\snippet` and `\snippetlineno` are added to the list of commands to terminate the brief description. The commands `\f[` and `\f{` are handled separately but now also start a detailed description. The `\f$` is just for small formulas and thus possible in a brief description.
* | | | | Don't write the plantuml cache file in case there are no plantuml diagrams.albert-github2019-01-101-0/+1
|/ / / /
* | | | Merge branch 'cheoljoo-run_java_once_3rd_trial'Dimitri van Heesch2019-01-0810-83/+417
|\ \ \ \
| * \ \ \ Merge branch 'run_java_once_3rd_trial' of ↵Dimitri van Heesch2019-01-089-183/+162
| |\ \ \ \ | | | | | | | | | | | | | | | | | | https://github.com/cheoljoo/doxygen into cheoljoo-run_java_once_3rd_trial
| | * | | | remove PLANTUML_RUN_FAST because FAST is default.Charles.Lee2019-01-063-128/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - remove PLANTUML_RUN_FAST in config.xml - Do not make plantuml (.pu) file for each plantuml script. (ex. inline_umlgraph_#.pu) But, make type plantuml files (ex. inline_umlgraph_<type>..pu)
| | * | | | Fast PlantumlCharles.Lee2019-01-011-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # Test Result The example has 5 plantumls. | Test Type | Original | PLANTUML_RUN_FAST | Modify One Plantuml | |---------------------------|------------|-------------|-----------------| | Elapsed Time | 23.370 sec | 7.349 sec | 4.652 sec | | external tools Time | 23.020 sec | 6.819 sec | 4.301 sec | # Test Environments (How to test) - The example has 5 plantumls. ## Original Configration - I follow the original path to process plantuml. - Configuration of Doxyfile - OUTPUT_DIRECTORY = OUTPUT - SOURCE_BROWSER = YES - GENERATE_HTML = YES only set the html - GENERATE_LATEX = NO - Run - $ doxygen -d time ## PLANTUML_RUN_FAST - Changed Configuration of Doxyfile - PLANTUML_RUN_FAST = YES ## Modify One Plantuml - Modify one plantuml in 5 plantuml of example with the same environment of PLANTUML_RUN_TEST # How to Reduce the performance ## PLANTUML_RUN_FAST - Make Just one pu (plantuml) file to run java once - Just run once when we generate HTML. ### another test with setting YES to all GENERATE_* - When we generate several types , we run java several times according the different java arguments. - set YES to all GENERATE_* - There are 20 plantuml in this example and configuration. But, it runs java just 4 times. ```text Executing external command `java -Djava.awt.headless=true -jar "/Users/cheoljoo/bin/plantuml.jar" -o "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/docbook" -charset UTF-8 -tpng "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/docbook/inline_umlgraph_pngdocbook.pu" ` 10.019 sec: Running PlantUML on png PlantumlFiles in html Executing external command `java -Djava.awt.headless=true -jar "/Users/cheoljoo/bin/plantuml.jar" -o "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/html" -charset UTF-8 -tpng "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/html/inline_umlgraph_pnghtml.pu" ` 17.906 sec: Running PlantUML on png PlantumlFiles in rtf Executing external command `java -Djava.awt.headless=true -jar "/Users/cheoljoo/bin/plantuml.jar" -o "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/rtf" -charset UTF-8 -tpng "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/rtf/inline_umlgraph_pngrtf.pu" ` 25.842 sec: Running PlantUML on eps PlantumlFiles in latex Executing external command `java -Djava.awt.headless=true -jar "/Users/cheoljoo/bin/plantuml.jar" -o "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/latex" -charset UTF-8 -teps "/Users/cheoljoo/Code/github/doxygen/build/bin/B/OUTPUT/latex/inline_umlgraph_epslatex.pu" ` ``` ## Modify One Plantuml - Cached file name : OUTPUT_DIRECTORY/inline_umlgraph_cache_all.pu - inline_umlgraph_cache_all.pu was created when doxygen was finished. - inline_umlgraph_cache_all.pu had all plantuml contents. and it will be used to check what is changed. - If you want to keep pu files , DOT_CLEANUP = NO - inline_umlgraph_<type><dictory>.pu includes changed plantuml. So it can reduce the java processing time. # Explanation of the code ## old - generatePlantUMLOutput() makes each plantuml from each @start~enduml with the name as inline_umlgraph_#.pu. ## new (PLANTUML_RUN_FAST) - It will make a plantuml png at the end of processes of doxygen. So we can reduce the count of java runs. - class PlantumlManager saves all plantuml information for running java at the end of doxygen and for comparing the plantuml contents as a cache. - generatePlantUMLOutput() is not enough to make a database in class PlantumlManager. - So I use writePlantUMLSource() to get more information (pu name and contents). I modified writePlantUMLSource() because I do not want to read the file to get the contents in generatePlantUMLOutput(). - The writePlantUMLSource() compares each plantuml contents and filename with cached information (inline_umlgraph_cache_all.pu). Then it will decide whether will recreate or reuse. - Like dot , we make plantuml pictures at the end of doxygen. ```puml @startuml folder config.xml { artifact PLANTUML_RUN_FAST folder config.xml [ artifact xml ==== and style ] } folder debug.cpp { artifact "Debug::Plantuml" folder debug.h { artifact "Plantuml=0x4000" } } config.xml -down-> debug.cpp debug.cpp -down-> docvisitor.cpp folder docvisitor.cpp { folder writePlantUMLSource { folder writePlantUMLSource.old [ write plantuml file (inline_umlgraph_#.pu) ---- writePlantUMLFile() generatePlantUMLOutput() ] folder writePlantUMLSource.new [ write plantuml file (inline_umlgraph_#) writePlantUMLFile() generatePlantUMLOutput() ---- add PUML_Type as arguments PlantumlManager::instance()->insert(generateType,puName,format,text); ] writePlantUMLSource -down-> writePlantUMLSource.old : Original writePlantUMLSource -down-> writePlantUMLSource.new : PLANTUML_RUN_FAST } artifact docbookvisitor.cpp artifact htmldocvisitor.cpp artifact latexdocvisitor.cpp artifact rtfdocvisitor.cpp artifact vhdldocgen.cpp } database PlantumlManager.DB [ static PlantumlManager *m_theInstance; QDict< QList<QCString> > m_pngPlantumlFiles; QDict< QList<QCString> > m_svgPlantumlFiles; QDict< QList<QCString> > m_epsPlantumlFiles; QDict< QCString > m_pngPlantumlContent; QDict< QCString > m_svgPlantumlContent; QDict< QCString > m_epsPlantumlContent; ] writePlantUMLSource.new -down-> PlantumlManager.DB : PLANTUML_RUN_FAST folder plantuml.cpp { folder generatePlantUMLOutput.old [ run java for each inline_umlgraph_#.pu ] folder generatePlantUMLOutput.new [ No run java for run once at the end of process Just add image into list ] writePlantUMLSource.old -down-> generatePlantUMLOutput.old : original writePlantUMLSource.new -down-> generatePlantUMLOutput.new : PLANTUML_RUN_FAST } folder doxygen.cpp { folder plantuml.h [ class PlantumlManager ] } folder plantuml.cpp { folder PlantumlManager_run [ PlantumlManager::instance()->run(); - run java once at the last time of doxygen process like drawing dot graph - read a inline_umlgraph_cache.pu - if exist , reuse it. - if not exist , add inline_umlgraph_type.pu - save all plantuml into inline_umlgraph_cache_all.pu for caching or reusing next time. - When we make inline_umlgraph_type.pu , we divide into 4 files for multi-processing. - But , prcessing image count is less than 8 , we will use only one file. ] } plantuml.h -down-> writePlantUMLSource : PLANTUML_RUN_FAST PlantumlManager.DB -down-> PlantumlManager_run : PLANTUML_RUN_FAST @enduml ```
| | * | | | # IntroductionCharles.Lee2018-12-282-35/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - this is doxygen documents. - draw the plantuml # Explanation how to process for FAST plantuml ```puml @startuml folder config.xml { artifact PLANTUML_RUN_FAST folder config.xml [ artifact xml ==== and style ] } folder debug.cpp { artifact "Debug::Plantuml" folder debug.h { artifact "Plantuml=0x4000" } } config.xml -down-> debug.cpp debug.cpp -down-> docvisitor.cpp folder docvisitor.cpp { folder writePlantUMLSource { folder writePlantUMLSource.old [ write plantuml file (inline_umlgraph_#.pu) ---- writePlantUMLFile() generatePlantUMLOutput() ] folder writePlantUMLSource.new [ write plantuml file (inline_umlgraph_#) writePlantUMLFile() generatePlantUMLOutput() ---- add PUML_Type as arguments PlantumlManager::instance()->insert(generateType,puName,format,text); ] writePlantUMLSource -down-> writePlantUMLSource.old : Original writePlantUMLSource -down-> writePlantUMLSource.new : PLANTUML_RUN_FAST } artifact docbookvisitor.cpp artifact htmldocvisitor.cpp artifact latexdocvisitor.cpp artifact rtfdocvisitor.cpp artifact vhdldocgen.cpp } database PlantumlManager.DB [ static PlantumlManager *m_theInstance; QDict< QList<QCString> > m_pngPlantumlFiles; QDict< QList<QCString> > m_svgPlantumlFiles; QDict< QList<QCString> > m_epsPlantumlFiles; QDict< QCString > m_pngPlantumlContent; QDict< QCString > m_svgPlantumlContent; QDict< QCString > m_epsPlantumlContent; ] writePlantUMLSource.new -down-> PlantumlManager.DB : PLANTUML_RUN_FAST folder plantuml.cpp { folder generatePlantUMLOutput.old [ run java for each inline_umlgraph_#.pu ] folder generatePlantUMLOutput.new [ No run java for run once at the end of process Just add image into list ] writePlantUMLSource.old -down-> generatePlantUMLOutput.old : original writePlantUMLSource.new -down-> generatePlantUMLOutput.new : PLANTUML_RUN_FAST } folder doxygen.cpp { folder plantuml.h [ class PlantumlManager ] } folder plantuml.cpp { folder PlantumlManager_run [ PlantumlManager::instance()->run(); - run java once at the last time of doxygen process like drawing dot graph - read a inline_umlgraph_cache.pu - if exist , reuse it. - if not exist , add inline_umlgraph_type.pu - save all plantuml into inline_umlgraph_cache.pu for caching or reusing next time. - When we make inline_umlgraph_type.pu , we divide into 4 files for multi-processing. - But , prcessing image count is less than 8 , we will use only one file. ] } plantuml.h -down-> writePlantUMLSource : PLANTUML_RUN_FAST PlantumlManager.DB -down-> PlantumlManager_run : PLANTUML_RUN_FAST @enduml ``` ## cache - QCString m_cachePlantumlAllContent; // = fileToString = readInputFile // findScopePattern // QCString.find contains - instance() -> read cache file - writePlantULMSource() -> compare the text with cache contents - if matched , pass. - if not matched , add it. - add text to current plantuml - run() -> save current plantuml into cache file ## todo list - done - html example - cache - ing - multiple thread : divide into several files before running java. (already know the count) - epstopdf run : change the code like the java run
| * | | | | Improved code structure a bitDimitri van Heesch2018-12-272-57/+65
| | | | | |
| * | | | | Merge branch 'run_java_once_3rd_trial' of ↵Dimitri van Heesch2018-12-2711-21/+368
| |\ \ \ \ \ | | |/ / / / | | | | | | | | | | | | https://github.com/cheoljoo/doxygen into cheoljoo-run_java_once_3rd_trial
| | * | | | JAVA_ONCE -> FASTCharles.Lee2018-12-264-7/+9
| | | | | |
| | * | | | add plantuml.h in doxygen.cppCharles.Lee2018-12-241-0/+1
| | | | | |
| | * | | | mergeCharles.Lee2018-12-24112-4663/+11844
| | |\ \ \ \
| | * | | | | Imporvement of performance : Reduce the Java running count (3rd trial)Charles.Lee2018-08-292-117/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # What is it - #6465 is the first trial. So I followed up the albert advice. - in case of debug you use printf statements, I think that here there better options would be - create an -d flag (e.g. -d plantuml) that gives the information, so no need for using the configuration option - Follow up : create -d plantuml [debug.h, debug.cpp] - usage of printf - printf should not be used,all output is steered over calls to routines as defined in message.cpp, - Follow up : use Debug::Print(Debug::Plantuml, ... and msg() - usage of std::string / std::map - in doxygen the string manipulation is. mostly, done by means of Qt classes (e.g. classes QCString, QString). For consistency these classes should be used. - map manipulation is also done by means of Qt classes (dictionary and list classes) - Follow up : use QDict QList QCString [plantuml.h, plantuml.cpp] - dirent / opendir /readdir - when browsing through directories the routines line readFileOrDirectory should probably be used or the techniques used in this routine - Follow up : I will follow when I try to reduce redundancy of creating plantuml image. - #6467 is the second trial. This is work items to satisfiy comments. - In the debug statements the __PRETTY_FUNCTION__ is a GCC extension. But this project can run in windows. - I got it. I removed __PRETTY_FUNCTION__. - In the PLANTUML_RUN_JAVA_ONCE all the .pu files are given to the plantuml.jar with their full path (see -d extcmd when running). I think this will lead to problems when there are quite a few files ("command line" overflow). Seen this merging the files into one file like done for formulas. A small test with one file revealed that it didn't bring a lot / nothing time wise, but here the problem with the "command line" overflow shouldn't / can't happen. - Yes. The command line has overflow problem. So I change into one file. - I think it still would make sense to implement the 'md5' possibility for, especially, the non PLANTUML_RUN_JAVA_ONCE version, i.e. if the file already exists don't try to recreate the image. - This is a next item. - PlantumlManager::instance()->insert() : this function will be changed to skip image. # Configuration - add configuration value in Doxyfile - PLANTUML_RUN_JAVA_ONCE = YES # Debugging - doxygen -d plantuml - doxygen -d time -d extcmd # Tested with following options - source code of 3 plantuml - PLANTUML_RUN_JAVA_ONCE = YES or NO - DOT_IMAGE_FORMAT = png or svg - DOT_CLEANUP = YES or NO - -d plantuml - -d time - -d extcmd
| | * | | | | PLANTUML_RUN_JAVA_ONCE is working well. But some specific plantuml has ↵Charles.Lee2018-08-291-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | error on ver 1.8.15
| | * | | | | add format in writePlantUMLSource() and gathered in one pu file. But it is ↵Charles.Lee2018-08-287-26/+239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | not final
| | * | | | | Merge remote-tracking branch 'upstream/master' into run_java_onceCharles.Lee2018-08-2725-97/+151
| | |\ \ \ \ \
| | * | | | | | source arrangementCharles.Lee2018-08-272-15/+5
| | | | | | | |
| | * | | | | | Imporvement of performance : Reduce the Java running countCharles.Lee2018-08-276-13/+267
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | # What is it - #6465 is the first reqeust. So I followed up the albert advice. - in case of debug you use printf statements, I think that here there better options would be - create an -d flag (e.g. -d plantuml) that gives the information, so no need for using the configuration option - Follow up : create -d plantuml [debug.h, debug.cpp] - usage of printf - printf should not be used,all output is steered over calls to routines as defined in message.cpp, - Follow up : use Debug::Print(Debug::Plantuml, ... and msg() - usage of std::string / std::map - in doxygen the string manipulation is. mostly, done by means of Qt classes (e.g. classes QCString, QString). For consistency these classes should be used. - map manipulation is also done by means of Qt classes (dictionary and list classes) - Follow up : use QDict QList QCString [plantuml.h, plantuml.cpp] - dirent / opendir /readdir - when browsing through directories the routines line readFileOrDirectory should probably be used or the techniques used in this routine - Follow up : I will follow when I try to reduce redundancy of creating plantuml image. - Run java minimally - Test Case : 4 plantuml - Original Run without PLANTUML_RUN_JAVA_ONCE - 8.2 sec = 4 times * ( 1.6(java vm) + 0.1 * 1(load multiple file) + process each plantuml (0.35) *1 ) <- prediction - New with PLANTUML_RUN_JAVA_ONCE - 3.499 sec = 1.6(java vm) + 0.1 * 4(load multiple file) + process each plantuml (0.35) *4 <- prediction - Creating Java Virtual Machine has a big portion. - Result - Improving Performance : 8.2 -> 3.499 (in case of 4 plantuml) # Configuration - add configuration value in Doxyfile - PLANTUML_RUN_JAVA_ONCE = YES # Debugging - doxygen -d plantuml - doxygen -d time -d plantuml # Tested with following options - source code of 3 plantuml - PLANTUML_RUN_JAVA_ONCE = YES or NO - DOT_IMAGE_FORMAT = png or svg - DOT_CLEANUP = YES or NO - -d plantuml
* | | | | | | | Shortened EXTRACT_PRIVATE_VIRTUAL to EXTRACT_PRIV_VIRTUAL to deal with max ↵Dimitri van Heesch2019-01-083-10/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | length limitation
* | | | | | | | Merge branch 'extract-private-virtual' of https://github.com/mosra/doxygen ↵Dimitri van Heesch2019-01-083-5/+24
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | into mosra-extract-private-virtual
| * | | | | | | | Implement a new EXTRACT_PRIVATE_VIRTUAL option.Vladimír Vondruš2019-01-033-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The classic article about virtuality from Herb Sutter [1] suggests that virtual functions are always private and public class interface is never virtual. Until now, it was not really possible to document these functions in Doxygen: * Enabling EXTRACT_PRIVATE would show all internals, not just virtual functions, which is not wanted. * Enabling HIDE_UNDOC_MEMBERS and HIDE_UNDOC_CLASSES would effectively disable warnings about *all* undocumented members, which is not wanted. The usual workaround was to put the members into protected scope just for Doxygen: #ifdef DOXYGEN_GENERATING_OUTPUT protected: #else private: #endif /** @brief Documented private virtual function */ virtual doStuff(); The new EXTRACT_PRIVATE_VIRTUAL option makes these visible (and able to be linked to), but shows them *only* if they are documented. [1] http://www.gotw.ca/publications/mill18.htm
* | | | | | | | | Merge pull request #6750 from albert-github/feature/issue_6725Dimitri van Heesch2019-01-081-2/+3
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | issue #6725 Doxygen 1.8.15 CMake 3.13 incompatibility
| * | | | | | | | | issue #6725 Doxygen 1.8.15 CMake 3.13 incompatibilityalbert-github2019-01-071-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix to overcome problems in CMake. The required `\` in the `tex` code is automatically added when generating the LaTeX files.
* | | | | | | | | | issue #6748 1.8.15 regression with C# internal modifieralbert-github2019-01-081-0/+4
| |_|_|_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | In the fix for issue #677 / bug 743539 only the Java part, in scanner.l, should have been removed and not the other languages in respect to the word "internal", compare also code.l
* | | | | | | | | Merge pull request #6751 from albert-github/feature/issue_6749Dimitri van Heesch2019-01-071-0/+5
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | issue #6749 doxygen 1.8.15 segfault
| * | | | | | | | | issue #6749 doxygen 1.8.15 segfaultalbert-github2019-01-071-0/+5
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | An empty string was defined in a `<a href="">` resulting in a null pointer access.
* | | | | | | | | Merge branch 'master' of github.com:doxygen/doxygenDimitri van Heesch2019-01-075-10/+31
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / /
| * | | | | | | | issue #6744 Ampersand in Markdown image URL is not escaped in XML outputalbert-github2019-01-064-9/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Convert name / url based on HTML / XML conventions and don't do double conversions (XML).
| * | | | | | | | Merge pull request #6739 from albert-github/feature/bug_hrDimitri van Heesch2019-01-051-1/+1
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Implementing `<hr>` for LaTeX
| | * | | | | | | | Implementing `<hr>` for LaTeXalbert-github2019-01-051-1/+1
| | | |_|_|_|_|_|/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | In LaTeX the `<hr>` was implemented as a"new paragraph", now as a horizontal line.
* | | | | | | | | issue #6734 parsing performance worsenedDimitri van Heesch2019-01-079-45/+88
|/ / / / / / / /
* | | | | | | | Fixed alt attribute appearing in <object> tag for SVG imagesDimitri van Heesch2019-01-051-57/+39
| | | | | | | |