Looking closely at 2.1, I don't think these arguments are used for now, hopefully they will in future releases.
The only way to acheive the truncate effect in a Ui listing I found so far is to act directly on the collection in your data provider.
Let's assume we have an Item with a description attribute; the listing would look something like this (including just the data source and column):
<dataSource name="item_listing_data_source">
<argument name="dataProvider" xsi:type="configurableObject">
<argument name="class" xsi:type="string">My\Module\Ui\DataProvider\Item\ItemDataProvider</argument>
<argument name="name" xsi:type="string">item_listing_data_source</argument>
<argument name="primaryFieldName" xsi:type="string">entity_id</argument>
<argument name="requestFieldName" xsi:type="string">id</argument>
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="update_url" xsi:type="url" path="mui/index/render"/>
</item>
</argument>
</argument>
<argument name="data" xsi:type="array">
<item name="js_config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/provider</item>
</item>
</argument>
</dataSource>
[...]
<column name="description">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Description</item>
<item name="sortOrder" xsi:type="number">40</item>
</item>
</argument>
</column>
Here i'm using a real class as data source (not a virtual one from di.xml). The Data source would have a getData()
function that would look something like this:
public function getData()
{
if (!$this->getCollection()->isLoaded()) {
$this->getCollection()->addFieldToSelect('title');
$this->getCollection()->addFieldToSelect('description');
$this->getCollection()->load();
}
$items = $this->getCollection()->toArray();
return [
'totalRecords' => $this->getCollection()->getSize(),
'items' => array_values($items),
];
}
Now let's truncate that description using SQL statements, the new getData()
function would now look like this:
public function getData()
{
if (!$this->getCollection()->isLoaded()) {
$this->getCollection()->addFieldToSelect('title');
$this->getCollection()->addExpressionFieldToSelect('description', "CONCAT(SUBSTRING({{description}},1,60), '...')", 'description');
// Or this way for an EAV collection:
// $this->getCollection()->addExpressionAttributeToSelect('description', "CONCAT(SUBSTRING({{description}},1,60), '...')", 'description');
$this->getCollection()->load();
}
$items = $this->getCollection()->toArray();
return [
'totalRecords' => $this->getCollection()->getSize(),
'items' => array_values($items),
];
}
A couple of things, first, SUBSTRING
starts at index 1 and not 0 like PHP, then as you can see I've concatenated '...'
at the end of the now truncated description for aesthetics, the description will now be truncated in your listing:

Conclusion: you need to act on the collection first for Ui listings (for now anyway).