← Back to all sparks
R

rlistings

ANALYTICS
Velocity0.0

Value formatting and ASCII rendering infrastructure for tables and listings.

Clinical listings that keep inheriting their hardest problem — pagination — from the layer below.

clinical-trialslistingspaginationr-packagepharmaverse
Current state
rlistings renders clinical-trial subject listings and paginates them for regulatory output, sitting alongside rtables on the shared formatters engine. The releases in this window are dominated by pagination correctness: repeated key columns across pages, splitting by a variable, ordered-factor handling, column gaps, and font metrics. Development is a large rotating contributor set inside the insightsengineering organisation.
Where it's heading
The package is progressively delegating pagination to formatters rather than implementing it — paginate_listing() was refactored to call formatters' paginate_to_mpfs() directly, and truetype font support arrived through a new formatters API. That reduces duplicated logic but ties the package's page-break behaviour to a dependency it shares with rtables. Feature work beyond pagination is thin: better error messages for unsupported column classes, a cheatsheet.
Prediction
Expect pagination fidelity to remain the focus, with changes arriving as formatters exposes more of its layout machinery rather than as rlistings-native features.

Recent moves

  1. 1y ago

    Error and message handling for difftime and zero-row listings

    Two cases that previously failed unhelpfully now say what is wrong, plus a pagination fix for ordered factors. Small, but zero-row and unsupported-class listings are exactly what breaks an automated submission pipeline at the worst moment.

    View source ↗
  2. 1y ago

    TrueType font support and col_gap in pagination

    Page breaks now account for real font metrics rather than assumed character widths, arriving through the formatters API. This is the delegation pattern described above working in the package's favour.

    View source ↗
  3. 2y ago

    split_into_pages_by_var() and pagination moved onto formatters

    The structural release of the three: paginate_listing() stops carrying its own logic and calls formatters directly, while a new function splits listings into pages by a variable's values. Also retires the defunct pag_listing_indices.

    View source ↗