formats/psTypeMemberConstructor.format.ps1xml

<?xml version="1.0" encoding="utf-8" ?>
<!--A custom formatting outline-->
<Configuration>
    <ViewDefinitions>
        <View>
            <Name>default</Name>
            <ViewSelectedBy>
                <TypeName>psTypeMemberConstructor</TypeName>
            </ViewSelectedBy>
            <CustomControl>
                <CustomEntries>
                    <CustomEntry>
                        <CustomItem>
                            <ExpressionBinding>
                                <ScriptBlock>
                                    foreach ($item in $_) {
                                        if ($item.parameters) {
                                            $p = @()
                                            foreach ($pm in $item.parameters) {
                                                #if the name is contains mixed casing ignore it otherwise convert to title case
                                                if ($pm.ParameterName -cMatch '[A-Z]') {
                                                    $name = $pm.ParameterName
                                                }
                                                else {
                                                    $name = ConvertTo-TitleCase $pm.ParameterName
                                                }
                                                $p += "[$((Get-PSReadLineOption).TypeColor){0}$([char]27)[0m]$((Get-PSReadLineOption).VariableColor)`${1}$([char]27)[0m)" -f $pm.ParameterType, $Name
                                            } #foreach pm
                                        }
                                        else {
                                            $p = $Null
                                        }
                                        if ($item.Parameters.count -ge 3) {
                                            #display larger parameter sets vertically
                                            $join = ",`n`t`t`t"
                                        }
                                        else {
                                            $join = ","
                                        }
                                        '[{0}]::new({1})' -f $item.Type, ($p -join $join)
                                    }
 
                                </ScriptBlock>
                            </ExpressionBinding>
                            <NewLine/>
                        </CustomItem>
                    </CustomEntry>
                </CustomEntries>
            </CustomControl>
        </View>
    </ViewDefinitions>
</Configuration>