Хорошо, как обычно, документы msft для меня совершенно бесполезны. Вот мой вопрос:
Как я могу создать анализатор с помощью CLI (dotnet 6.0 SDK в Linux) и запустить его, когда я dotnet build
другие проекты, и вывести предупреждения, если используется оператор нулевого прощения (!). Я НЕ использую визуальную студию. Кроме того, как я могу проверить, что анализаторы даже загружаются/инициализируются сборкой dotnet.
Для контекста нам требуется вспомогательный метод __unwrap<T>()
, который проверяет во время выполнения, что объект действительно не является нулевым, вместо того, чтобы жертвовать безопасностью. И вот этот проект у меня не работает: https://github.com/tom-englert/Nullable.Extended#roslyn-analyzer
Используя вышеупомянутый анализатор от nuget (для других людей, читающих это: dotnet add package Nullable.Extended.Analyzer
), вам нужно указать серьезность его диагностических идентификаторов (NX0001..3
).
Есть несколько способов сделать это. Не стесняйтесь следовать методу Глобальная конфигурация анализатора, если хотите, но я собираюсь использовать файл .editorconfig
для простоты (возможно, он у вас уже есть):
[*.cs]
dotnet_diagnostic.NX0001.severity=warning
dotnet_diagnostic.NX0002.severity=warning
dotnet_diagnostic.NX0003.severity=warning
3 разных идентификатора и некоторое описание можно найти в исходном коде. Вы также можете увидеть, что DiagnosticDescriptor
создаются с помощью DiagnosticSeverity.Info
, которые не отображаются при выполнении dotnet build
, поэтому необходимо вручную переопределять предупреждения.
Я могу подтвердить, что ваш .editorconfig в каталоге проекта работает. Большое спасибо.