3 ### 3.2.0 - 20 March 2018
5 - Add RowsOfFieldsWithMetadata: allows commands to return an object with metadata that shows up in yaml/json (& etc.) formats, but is not shown in table/csv (& etc.).
6 - Add NumericCellRenderer: allows commands to attach a renderer that will right-justify and add commas to numbers in a column.
7 - Add optional var_dump output format.
9 ### 3.1.13 - 29 November 2017
11 - Allow XML output for RowsOfFields (#60).
12 - Allow Symfony 4 components and add make tests run on three versions of Symfony.
14 ### 3.1.12 - 12 October 2017
16 - Bugfix: Use InputOption::VALUE_REQUIRED instead of InputOption::VALUE_OPTIONAL
17 for injected options such as --format and --fields.
18 - Bugfix: Ignore empty properties in the property parser.
20 ### 3.1.11 - 17 August 2017
22 - Add ListDataFromKeys marker data type.
24 ### 3.1.10 - 6 June 2017
26 - Typo in CalculateWidths::distributeLongColumns causes failure for some column width distributions
28 ### 3.1.9 - 8 May 2017
30 - Improve wrapping algorithm
32 ### 3.1.7 - 20 Jan 2017
36 ### 3.1.6 - 8 Jan 2017
38 - Move victorjonsson/markdowndocs to require-dev
40 ### 3.1.5 - 23 November 2016
42 - When converting from XML to an array, use the 'id' or 'name' element as the array key value.
44 ### 3.1.4 - 20 November 2016
46 - Add a 'list delimiter' formatter option, so that we can create a Drush-style table for property lists.
48 ### 3.1.1 ~ 3.1.3 - 18 November 2016
50 - Fine-tune wordwrapping.
52 ### 3.1.0 - 17 November 2016
54 - Add wordwrapping to table formatter.
56 ### 3.0.0 - 14 November 2016
58 - **Breaking** The RenderCellInterface is now provided a reference to the entire row data. Existing clients need only add the new parameter to their method defnition to update.
59 - Rename AssociativeList to PropertyList, as many people seemed to find the former name confusing. AssociativeList is still available for use to preserve backwards compatibility, but it is deprecated.
62 ### 2.1.0 - 7 November 2016
64 - Add RenderCellCollections to structured lists, so that commands may add renderers to structured data without defining a new structured data subclass.
65 - Throw an exception if the client requests a field that does not exist.
66 - Remove unwanted extra layer of nesting when formatting an PropertyList with an array formatter (json, yaml, etc.).
69 ### 2.0.0 - 30 September 2016
71 - **Breaking** The default `string` format now converts non-string results into a tab-separated-value table if possible. Commands may select a single field to emit in this instance with an annotation: `@default-string-field email`. By this means, a given command may by default emit a single value, but also provide more rich output that may be shown by selecting --format=table, --format=yaml or the like. This change might cause some commands to produce output in situations that previously were not documented as producing output.
72 - **Breaking** FormatterManager::addFormatter() now takes the format identifier and a FormatterInterface, rather than an identifier and a Formatter classname (string).
73 - --field is a synonym for --fields with a single field.
74 - Wildcards and regular expressions can now be used in --fields expressions.
77 ### 1.1.0 - 14 September 2016
79 Add tab-separated-value (tsv) formatter.
82 ### 1.0.0 - 19 May 2016