Ger Hayden Ответов: 1

Как добавить свойство к правилам в пользовательском анализаторе кода?


Я собираю пользовательский анализатор кода для работы с решениями Visual Studio 2015 и хотел бы добавить свойство для управления им по дате.

Если это правило (или набор правил) будет действовать, то оно будет применяться только к коду, измененному в установленную дату или после нее.

Возможно ли это и где находятся лучшие источники информации?

Что я уже пробовал:

Обширные онлайн - исследования, которые ничего не дали.

Я также добавил новую переменную в раздел анализатора, где установлен DiagnosticID, но больше нигде не смог получить к ней доступ.

Формирование Новой Идеи! Что, если я попытаюсь передать это в качестве аргумента?

Обновление
Я попробовал эту идею с помощью конструктора - никакой радости. Теперь я попробую прочитать из конфигурации

И на следующую неделю...
CodeCracker проверяет наличие чего-то вроде "автоматически сгенерированного" в комментарии заголовка, чтобы пропустить сканирование автоматически сгенерированных файлов.
увиденный здесь

и дальше сайте StackOverflow

Я подумываю о том, чтобы добавить комментарий "qa-checked", когда анализатор запустится. Затем добавьте событие предварительной компиляции в компилятор, чтобы удалить его из измененного кода.

Анализатор будет проинструктирован пропустить любой код, помеченный как <qa-checked>

Richard MacCutchan

В чем же проблема? Сравнение дат не должно быть сложным.

Ger Hayden

Правда, сравнение дат-самая легкая часть. Трудности заключаются в том, чтобы предоставить анализатору начальную дату и получить последнюю измененную дату исходного файла, скажем, в отличие от даты, когда он был извлечен из системы управления версиями.

Другой вариант, который я рассматриваю, заключается в применении правила только в том случае, если код изменился с момента последнего запуска правил - если я могу придумать эффективное Соглашение для маркировки файла кода как "проанализированного".

1 Ответов

Рейтинг:
2

Gerry Schmitz

Добавьте "метаданные" в проект (vs) для ваших "исходных данных", даты последнего изменения и т. д.

Создайте "макрос", чтобы добавить ваши метаданные в качестве "элемента проекта"; затем используйте своего рода "отражение", чтобы запустить анализатор; результаты будут добавлены обратно в проект / решение (vs).