Я использую Visual Studio и хотел бы, чтобы Doxygen создал список задач из моих задач TODO.
Я нашел статью Как работать с тэгами Doxygen и MSVC для совместной работы , в которой предлагалось использовать опцию Doxygen FILE_VERSION_FILTER для преобразования TODO в стиле MS в стиль Doxygen @todo, но в примере используется sed, чего нет на ночной сборке машины.VBScript выглядел как подходящее решение, поэтому я создал следующий скрипт для замены:
Const ForReading = 1
' Input file is passed as argument
inputFilePath = Wscript.Arguments(0)
strOldText = "/{2,3}\s*TODO:{0,1}"
strNewText = "/// @todo"
' Read input file
Set fso = CreateObject("Scripting.FileSystemObject")
Set inFile = fso.OpenTextFile(inputFilePath, ForReading)
strText = inFile.ReadAll
inFile.Close
' Create regular expression.
Set regEx = New RegExp
regEx.Global = True
regEx.Multiline = False
regEx.IgnoreCase = True
regEx.Pattern = strOldText
' Make replacement.
strNewText = regEx.Replace(strText, strNewText)
Set objStdOut = WScript.StdOut
objStdOut.Write strNewText
и установил для параметра FILE_VERSION_FILTER значение:
FILE_VERSION_FILTER = "cscript.exe //NoLogo Documentation/versionFilter.vbs"
К сожалению, при сборкемоя документация с использованием Doxygen, мой список задач не генерируется.
Я вручную добавил элементы @todo в свой код, чтобы убедиться, что Doxygen настроен правильно для создания списка задач.
Вывод скрипта при запуске из командной строки, кажется, выполняет замену правильно.
Я также проверил, что сценарий вызывается при запуске Doxygen, сохраняя вывод в файл, а также в StdOut.
Я пытался найти примеры, но ни один не использует VBScript или какой-либо инструмент, который у меня есть.Любые предложения будут с благодарностью.
Спасибо
PS Я посмотрел на вывод из Doxygen, и я заметил эту ошибку:
versionFilter.vbs (27, 1) (null): канал завершен.
Где строка 27 соответствует последней строке в скрипте.Файл частично выводится, а полный файл записывается в мой тестовый файл.Я не уверен, почему StdOut будет закрыт.