@@ -58,19 +58,33 @@ void Execute(IncrementalValuesProvider<ISymbol> types, bool skipDiagnostics = fa
5858 var generatedPaneOptions = allAttributeData
5959 . Select ( static ( x , _ ) =>
6060 {
61- if ( x . Item2 . TryReconstructAs < ToolkitSampleBoolOptionAttribute > ( ) is ToolkitSampleBoolOptionAttribute boolOptionAttribute )
62- return ( x . Item1 , ( ToolkitSampleOptionBaseAttribute ) boolOptionAttribute ) ;
63-
64- if ( x . Item2 . TryReconstructAs < ToolkitSampleMultiChoiceOptionAttribute > ( ) is ToolkitSampleMultiChoiceOptionAttribute multiChoiceOptionAttribute )
65- return ( x . Item1 , ( ToolkitSampleOptionBaseAttribute ) multiChoiceOptionAttribute ) ;
66-
67- if ( x . Item2 . TryReconstructAs < ToolkitSampleNumericOptionAttribute > ( ) is ToolkitSampleNumericOptionAttribute numericOptionAttribute )
68- return ( x . Item1 , ( ToolkitSampleOptionBaseAttribute ) numericOptionAttribute ) ;
61+ ( ISymbol Symbol , ToolkitSampleOptionBaseAttribute Attribute ) item = default ;
6962
70- if ( x . Item2 . TryReconstructAs < ToolkitSampleTextOptionAttribute > ( ) is ToolkitSampleTextOptionAttribute textOptionAttribute )
71- return ( x . Item1 , ( ToolkitSampleOptionBaseAttribute ) textOptionAttribute ) ;
72-
73- return default ;
63+ // Try and get base attribute of whatever sample attribute types we support.
64+ if ( x . Item2 . TryReconstructAs < ToolkitSampleBoolOptionAttribute > ( ) is ToolkitSampleBoolOptionAttribute boolOptionAttribute )
65+ {
66+ item = ( x . Item1 , boolOptionAttribute ) ;
67+ }
68+ else if ( x . Item2 . TryReconstructAs < ToolkitSampleMultiChoiceOptionAttribute > ( ) is ToolkitSampleMultiChoiceOptionAttribute multiChoiceOptionAttribute )
69+ {
70+ item = ( x . Item1 , multiChoiceOptionAttribute ) ;
71+ }
72+ else if ( x . Item2 . TryReconstructAs < ToolkitSampleNumericOptionAttribute > ( ) is ToolkitSampleNumericOptionAttribute numericOptionAttribute )
73+ {
74+ item = ( x . Item1 , numericOptionAttribute ) ;
75+ }
76+ else if ( x . Item2 . TryReconstructAs < ToolkitSampleTextOptionAttribute > ( ) is ToolkitSampleTextOptionAttribute textOptionAttribute )
77+ {
78+ item = ( x . Item1 , textOptionAttribute ) ;
79+ }
80+
81+ // Add extra property data, like Title back to Attribute
82+ if ( item . Attribute != null && x . Item2 . TryGetNamedArgument ( nameof ( ToolkitSampleOptionBaseAttribute . Title ) , out string ? title ) && ! string . IsNullOrWhiteSpace ( title ) )
83+ {
84+ item . Attribute . Title = title ;
85+ }
86+
87+ return item ;
7488 } )
7589 . Where ( static x => x != default )
7690 . Collect ( ) ;
0 commit comments