From 40f495a79ae66610f311e11b97d8e54c9dd28eda Mon Sep 17 00:00:00 2001 From: Gianni Angelozzi Date: Tue, 13 Aug 2024 17:27:34 +0200 Subject: [PATCH] Nullable enum support --- .../Providers/EnumCompletionCandidatesProvider.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 +}