Использование Doxygen с Visual Studio 2010
У меня есть трудности с эффективным использованием Doxygen с Visual Studio 2010 и C++.
нет ли другой функции для комментирования, кроме "un/comment lines"? Например, создание заглушек комментариев и добавление ///
после новой строки.
кроме того, интересно, что нужно для отображения этих комментариев в функции IntelliSense в VS2010?
2 ответов
По словам документация MSDN, любые комментарии с помощью //
или /*
разделители будут отображаться рядом со связанным членом в списке членов IntelliSense.
вы можете использовать XML-вывод doxygen или XML-документации генерируется Visual Studio в качестве входных данных IntelliSense.
на /doc
документация объясняет, как использовать XML-документацию с IntelliSense:
использовать сгенерированный.xml-файл с IntelliSense, сделайте имя файла .xml-файл такой же, как сборка, которую вы хотите поддержать и поместить .XML-файл находится в том же каталоге, что и сборка. Когда на сборку ссылаются в проекте Visual Studio, то .xml-файл также найден.
AtomineerUtils - одна из лучших надстроек Visual Studio для документации doxygen/javadoc/DocXML. Это не бесплатно, но ничего в списке помощник doxygen инструменты предназначен для Visual Studio 2010.
лучшее, что я смог придумать на свою коллекцию макросов. Я искал веб-сайты, которые, возможно, объединили некоторые полезные макросы Visual Studio doxygen вместе, но до сих пор ничего не нашли. Но использование модели кода Visual Studio для автоматического заполнения документации может быть очень удобным. Вот макрос, который я сделал для создания документации для функции, в которой в настоящее время находится курсор:
Sub FunctionDoc()
DTE.UndoContext.Open("Function Doc")
Try
Dim caretPosition As TextPoint = DTE.ActiveDocument.Selection.ActivePoint
Dim element As CodeElement = _
caretPosition.CodeElement(vsCMElement.vsCMElementFunction)
If element.Kind <> vsCMElement.vsCMElementFunction Then
MsgBox("That is not a function")
Exit Sub
End If
Dim func As CodeFunction = element
If func Is Nothing Then
MsgBox("That is not a function")
Exit Sub
End If
Dim ts As TextSelection = DTE.ActiveDocument.Selection
ts.StartOfLine()
ts.NewLine()
ts.LineUp()
Dim functionName As String = func.Name
ts.Text = "//-----------------------------------------------------------------------------"
ts.NewLine()
ts.Text = "// FUNCTION "
ts.Text = func.FullName
ts.NewLine()
ts.Text = "/// \brief "
Dim endline As Integer = ts.BottomPoint.Line
Dim endoffset As Integer = ts.BottomPoint.LineCharOffset
ts.NewLine()
ts.Text = "/// "
ts.NewLine()
For Each param As CodeParameter In func.Parameters
ts.Text = "/// \param "
ts.Text = param.Name
ts.Text = ". "
ts.NewLine()
Next
If func.Type.TypeKind <> vsCMTypeRef.vsCMTypeRefVoid Then
ts.Text = "/// \return "
ts.Text = func.Type.AsFullName
ts.Text = " "
ts.NewLine()
End If
ts.Text = "//-----------------------------------------------------------------------------"
ts.MoveToLineAndOffset(endline, endoffset)
Finally
DTE.UndoContext.Close()
End Try
End Sub
Не стесняйтесь редактировать или повторно использовать это Макрон, и я приветствую любую критику.