summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/doxygengenerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/doxygengenerator.h')
-rw-r--r--src/plugins/cpptools/doxygengenerator.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/plugins/cpptools/doxygengenerator.h b/src/plugins/cpptools/doxygengenerator.h
new file mode 100644
index 0000000000..78b6b6b914
--- /dev/null
+++ b/src/plugins/cpptools/doxygengenerator.h
@@ -0,0 +1,71 @@
+#ifndef DOXYGEGENERATOR_H
+#define DOXYGEGENERATOR_H
+
+#include "cpptools_global.h"
+
+#include <cplusplus/Overview.h>
+
+#include <QtCore/QLatin1String>
+#include <QtGui/QTextCursor>
+
+namespace CPlusPlus {
+class DeclarationAST;
+}
+
+namespace CppTools {
+
+class CPPTOOLS_EXPORT DoxygenGenerator
+{
+public:
+ DoxygenGenerator();
+
+ enum DocumentationStyle {
+ JavaStyle,
+ QtStyle
+ };
+
+ void setStyle(DocumentationStyle style);
+ void setStartComment(bool start);
+ void setGenerateBrief(bool gen);
+ void setAddLeadingAsterisks(bool add);
+
+ QString generate(QTextCursor cursor);
+ QString generate(QTextCursor cursor, CPlusPlus::DeclarationAST *decl);
+
+private:
+ QChar startMark() const;
+ QChar styleMark() const;
+
+ enum Command {
+ BriefCommand,
+ ParamCommand,
+ ReturnCommand
+ };
+ static QString commandSpelling(Command command);
+
+ void writeStart(QString *comment) const;
+ void writeEnd(QString *comment) const;
+ void writeContinuation(QString *comment) const;
+ void writeNewLine(QString *comment) const;
+ void writeCommand(QString *comment,
+ Command command,
+ const QString &commandContent = QString()) const;
+ void writeBrief(QString *comment,
+ const QString &brief,
+ const QString &prefix = QString(),
+ const QString &suffix = QString());
+
+ void assignCommentOffset(QTextCursor cursor);
+ QString offsetString() const;
+
+ bool m_addLeadingAsterisks;
+ bool m_generateBrief;
+ bool m_startComment;
+ DocumentationStyle m_style;
+ CPlusPlus::Overview m_printer;
+ int m_commentOffset;
+};
+
+} // CppTools
+
+#endif // DOXYGEGENERATOR_H