diff --git a/src/Cocona.Core/ShellCompletion/Candidate/Providers/EnumCompletionCandidatesProvider.cs b/src/Cocona.Core/ShellCompletion/Candidate/Providers/EnumCompletionCandidatesProvider.cs index bfea6a11..c6c72085 100644 --- a/src/Cocona.Core/ShellCompletion/Candidate/Providers/EnumCompletionCandidatesProvider.cs +++ b/src/Cocona.Core/ShellCompletion/Candidate/Providers/EnumCompletionCandidatesProvider.cs @@ -3,11 +3,14 @@ namespace Cocona.ShellCompletion.Candidate.Providers; public sealed class EnumCompletionCandidatesProvider : ICoconaCompletionStaticCandidatesProvider { public CompletionCandidateResult GetCandidates(CoconaCompletionCandidatesMetadata metadata) - => GetCandidates(metadata.ParameterType); + { + var nullableEnum = Nullable.GetUnderlyingType(metadata.ParameterType); + return GetCandidates(nullableEnum ?? metadata.ParameterType); + } private CompletionCandidateResult GetCandidates(Type type) { if (!type.IsEnum) return CompletionCandidateResult.Default; return CompletionCandidateResult.Keywords(Enum.GetNames(type).Select(x => new CompletionCandidateValue(x, string.Empty))); } -} \ No newline at end of file +}