IDEA: Harmonize behavior of components that take a comma-separated list of properties

After our upgrade to PP2020 in December of 2019, I've gotten used to the change in Keep Properties from a comma-separated list to an array. I kind of like it. 

What I don't like:

  • If I only have  one or two properties, it's extra clicks 
  • If I'm keeping and renaming at the same time, it makes it easy to get the alignment right between the two halves (this would be even easier if there was a line number in the display, hint, hint)

What I love:

  • If I have a long list of properties, it makes it so much easier to read
  • I have a lot of protocols where this list of properties to keep is created elsewhere from a list (array) and supplied as a global.  Now I don't have to use contract to compress my global into a comma-separated string every time I do this. 

In general, I feel the pros outweigh the cons, and there are a lot of other places we use the comma-separated list of properties that would really benefit from this array treatment -- obvious examples that spring to mind are 

  • Merge using in the Merge Data Component
  • Categorize Using when specifying RunToCompletion for subprotocols
  • UserSet in the Statistics Components
  • Etc. 

I would love to see the array behavior come to a considered list of those component parameters.  Even though you can deal with the length some if you have a long list by changing the parameter type to TextType so that you can pop it open, the array is just better.

Even better (and I realize that this would potentially be a much bigger complex hairy ask) would be to see those parameters offer a dual behavior where it is possible to both enter a quick comma separated list or open the edit dialog to enter the properties as an array.  This would be similar to the URLType parameter behavior where it is possible to type values directly into the parameter value, or click the ... to open the file browser and select.  Without this change, some thought might be required to figure out which parameters are routinely used with long lists and would benefit from the array treatment, and which are better left as comma-separated.  With it, we can have the best of both worlds everywhere.