I have built a visual editor for writing & validating doxygen documentation files and wanted to share this with you.
The project is written in C# and the editor itself is based on Scintilla.NET
, but does not use the built-in lexers.
Its main purpose is helping me in writing & validating doxygen-based documentations for my C/C++ open-source projects.
It features the following:
- Tabbed file editor with standard mechanics (New, Open, Save, Reload, Undo/Redo, etc.)
- Treeview for fast-navigating inside doxygen pages & sections
- Symbol search inside the code-editor for C/C++ and doxygen symbols
- Basic lexical analysis of C/C++
- Full lexical analysis of Doxygen
- Syntax Highlighting of C/C++
- Syntax Highlighting of Doxygen (Including @code syntax highlighting for .c code)
- Syntax Highlighting of HTML (Tags and attributes)
- Basic parsing of several C/C++ (typedefs, enums, structs, functions, defines, etc.)
- Full parsing of all Doxygen elements (commands, paragraphs, sections, pages, references, etc.)
- Symbol reference validation for C/C++ (Partially)
- Symbol reference validation for doxygen elements (ref, subpage, etc.)
- Special validations for my needs
A lot of todos:
This tool is a work-in-progress, so there are a lot of stuff missing.
- Doxygen group parsing
- Improve C/C++ preprocessor parsing (Arguments for define, pragma, __attribute__, etc.)
- C/C++ type parsing
- Highlight C/C++ types & symbols
- Support for multiple workspaces (Switching projects)
- Support for predefined symbol tables (Auto parsed C-Header files or manually created)
- Incremental lexing for very fast syntax highlighting
- Spellchecking (I am still looking for a existing library for that)
- Button for generating & viewing doxygen documentation
- Parsing of struct members
- Code completion for doxygen
Source & Releases:
This tool was written for myself and i am not expecting others to use it, but you can try it out if you want.
I am happy if its useful for others, so if you found some bugs, please post an issue on the github page and i will look into it.
But dont expect that C/C++ parsing & validation is 100% correct.
Here are some screenshots: