Sources: NamedParameterAnalyzer.cs, NamedParameterFixer.cs
You should name the parameter when calling a method with a literal value:
nulltruefalse"abc"42
obj.Test(null);
// Should be
obj.Test(name: null);[.*cs]
MA0003.minimum_method_parameters = 1 # Only consider methods with 1 or more parameters
MA0003.expression_kinds = Null, Boolean, Numeric, String # Default: Null | Boolean
# '|'-separated values of documentation comments https://github.com/dotnet/csharplang/blob/main/spec/documentation-comments.md#id-string-format
MA0003.excluded_methods = M:A.B(System.Int32) | M:C.D()
# The regex matches the documention comment of the method (https://github.com/dotnet/csharplang/blob/main/spec/documentation-comments.md#id-string-format)
MA0003.excluded_methods_regex = Sample.*Test
You can annotate a parameter with Meziantou.Analyzer.Annotations.RequireNamedArgumentAttribute. This attribute is available using the
Meziantou.Analyzer.Annotations NuGet package.
Test("test"); // report a diagnostic as the parameter is not named
// Requires Meziantou.Analyzer.Annotations package
public void Test([RequireNamedArgument] string value) { }