Использование VBScript для Doxygen FILE_VERSION_FILTER - PullRequest
1 голос
/ 14 октября 2011

Я использую 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 будет закрыт.

...