The only way currently is to use doxygen or some other external tool. Sorry.
Doxygen does output (bloated) html document, but I don't know yet how to create a class diagram with it.One search away http://www.doxygen.nl/manual/diagrams.html
Seems like an ancient tool. Even more reason to create a built-in class diagram viewer.Be my guest write a plugin in a week! It should be easy. (and next post follows with complains that you don't know the code and it will best someone from the dev team to do the plugin, please spare me this) To me it looks like a month worth of work. Also our parser is not really good and it is not getting updated too much, so it even doesn't support c++11 and we already have tons of stuff coming in c++20.
One search away http://www.doxygen.nl/manual/diagrams.html
But hating a tool is easier I know.
Also our parser is not really good and it is not getting updated too much, so it even doesn't support c++11 and we already have tons of stuff coming in c++20.
I don't understand why you would need C++? support for class a diagram tool. It doesn't need to do much, just find classes and their inheritance structure in the project.Ignorance is bliss. 8)
Ignorance is bliss.
string const Files::extensions[]={".cpp", ".h", ".hpp"};
Files::Files()
{
fs::path dir{"."};
for (auto entry : fs::directory_iterator(dir))
{
if (entry.is_regular_file())
{
if (Is_Source_Extension(entry.path().extension().string()))
files.push_back(entry.path().filename().string());
}
}
}
bool Files::Is_Source_Extension(const string &source)
{
for (auto &it : extensions)
if (it==source) { return true; }
return false;
}
Seems like an ancient tool.
The first step in my command line tool was to find source files from current directory. There is a new filesystem library in C++17 so I had to use VS for this, because in 17.12 C++14 is the latest. Filesystem is quite easy compared to anything else, you don't need a lot of code for that task:
CodeBlocks isn't a compiler, it doesn't need to support anything.
So all you need to write a fully fledged CASE tool or at least modeler with bidirectional
... The difficult part will be inheritance relationships between classes...Hm, what about macros and templates? 8)
There are more keywords than class to look for, you have to understand modifiers, virtual inheritance, multiple inheritance, visibility, namespaces, namespace aliases, inline namespaces.
File: filedata.cpp
-
File: filedata.h
classFiledata{
classFiles{
File: main.cpp
-
File: parser.cpp
-
File: parser.h
structToken{
classParser{