# pillar 1.6.2
## Options
- Options `pillar.print_max`, `pillar.print_min`, `pillar.width` and
`pillar.max_extra_cols` are now queried before the corresponding
`tibble.` or `dplyr.` options are consulted, the latter will be
soft-deprecated in pillar v2.0.0 (#353).
- New `pillar.bidi` option. When active, control characters are
inserted to improve display of data with right-to-left text (#333).
- The new `pillar.max_footer_lines` option (default: 7) allows
controlling the maximum number of footer lines shown. It is applied
in addition to the existing `tibble.max_extra_cols` option (#263).
## Formatting
- If a column doesn't make use of all horizontal width offered to it,
the excess width is distributed over other columns (#331).
- Improved allocation of free space in multi-tier tables with
`getOption("tibble.width") > getOption("width")` (#344).
- All pillars are shown with their true horizontal extent,
irrespective of the indicated `width`. This simplifies the
implementation of custom `pillar_shaft()` methods (#347).
## Features
- `num()` gains `extra_sigfig` argument to automatically show more
significant figures for numbers of the same magnitude with subtle
differences (#97).
- `print.tbl()` and `format.tbl()` support the `max_extra_cols` and
`max_footer_lines` arguments that override the corresponding options
(#360).
- `print.tbl()` and `format.tbl()` maps the now deprecated `n_extra`
argument to `max_extra_cols` for consistency (#360).
## Bug fixes
- Avoid mangling of duplicate column names in footer (#332).
- Fix warning with zero of type `bit64::integer64()` (#319).
## Documentation
- All package options are now documented in `?pillar_options` (#339).
- `obj_sum()` no longer calls `type_sum()` for vectors since pillar
v1.6.1, this is now documented (#321).
- Fix documentation on usage of `vctrs::vec_proxy()` and
`vctrs::vec_restore()` (#322).
## Internal
- Using `attr(exact = TRUE)` everywhere.
- `is_vector_s3()` is no longer generic (#181).
- Fix internal logic around `vec_proxy()` and `vec_restore()` (#316).
# pillar 1.6.1
- Bump required versions of ellipsis and vctrs to avoid warning during package load.
- `obj_sum()` no longer includes shape twice (#315).
# pillar 1.6.0
## Features
- New `num()` and `char()` offer a flexible way to customize the display of numeric and character columns (#191, #84).
- New `"pillar.max_dec_width"` option (#308).
- New `format_type_sum.AsIs()` avoids the need to implement your own `format_type_sum()` method (#286).
- `align()` gains `space` argument to control the character used for filling (#285).
- Numbers in scientific and decimal notation are formatted with the same rules regarding significant or decimal digits (#297).
## Bug fixes
- Load the debugme package only if the `DEBUGME` environment variable is set.
- More accurate detection if the decimal dot is necessary, and how many digits to show after the decimal dot (#298).
- Use display width instead of number of characters when truncating character columns.
## Documentation
- New `vignette("numbers")` and `vignette("digits")` (#308).
## Internal
- Compatibility with vctrs 0.3.7 (#291).
- `format.pillar_shaft_simple()` requires `"na"` attribute and no longer defaults to `pillar_na()` (#273).
# pillar 1.5.1
## Features
- New `format_glimpse()` (#177).
## Bug fixes
- Color and formatting can now be reliably turned off by setting the `"cli.num_colors"` option to 1 (#269).
## Documentation
- Add examples for new functions (#264).
- Fix lifecycle badges everywhere.
# pillar 1.5.0
## Breaking changes
- `obj_sum()` now always returns a string. `pillar_shaft.list()` iterates over its elements and calls `obj_sum()` for each (#137).
- Breaking: `print.pillar()` and `print.pillar_ornament()` now show `<pillar>` `<pillar_ornament>` in the first line (#227, #228).
- pillar has been re-licensed as MIT (#215).
## Extensibility
- New `size_sum()` generic (#239).
- New `ctl_new_pillar()` and `ctl_new_compound_pillar()` used via `print.tbl()`, `format.tbl()` and `tbl_format_setup.tbl()` (#230).
- New `new_pillar()` low-level constructor (#230).
- New `new_pillar_component()` and `pillar_component()` (#230).
- New articles `vignette("extending")` and `vignette("printing")` (#251).
## Formatting
- All printing code has been moved from tibble to pillar (#179), including `glimpse()` (#234). This concentrates the printing code in one package and allows for better extensibility.
- Improve formatting for `"Surv"` and `"Surv2"` classes from the survival package (#199).
- Vectors of the `vctrs_unspecified()` class are formatted better (#256).
- Arrays are now formatted by showing only their first slice (#142).
- Avoid wrapping extra column names with spaces (#254).
## Internal
- Now using debugme to simplify understand the complex control flow, see `vignette("debugme")` (#248).
- New `format.pillar_ornament()` (#228).
- Using testthat 3e (#218).
- Avoid pillar.bold option in most tests (#216).
- Change internal storage format for `colonnade()` and `extra_cols()` (#204).
# pillar 1.4.7
- Adapt to changed environment on CRAN's Solaris machine.
# pillar 1.4.6
- Restore compatibility with R 3.2.
# pillar 1.4.5
## Features
- New `pillar.min_chars` option allows controlling the minimum number of characters shown for a character column (#178, @statsmaths).
- `bit64::integer64()` columns are now formatted the same way as numeric columns (#175).
- New `align()` to support easy alignment of strings within a character vector (existing function exported by @davidchall, #185).
## Technical
- `pillar_shaft()`, `format_type_sum()` and `extra_cols()` issue a warning if dots are unused.
- `new_pillar_title()` and `new_pillar_type()` warn if `...` is not empty.
## Internal
- Use lifecycle package.
- Remove compatibility code for R < 3.3.
# pillar 1.4.4
- `obj_sum()` uses `vctrs::vec_size()` internally.
- `is_vector_s3.default()` is soft-deprecated and no longer used. Please ensure that `vctrs::vec_is()` is `TRUE` for your class.
- Rely on vctrs for type abbreviations.
# pillar 1.4.3
- `new_pillar_shaft_simple()` gains `na` argument to control appearance of `NA` values.
- String columns are quoted if at least one value needs quotes (#171).
- Apply subtle style to `list_of` columns (#172).
- Fix formatting if mantissa is very close to 1 (#174).
- Use `as.character()` instead of `as_character()`.
- Remove compatibility with testthat < 2.0.0.
The canonical form [1] of an R package Makefile includes the
following:
- The first stanza includes R_PKGNAME, R_PKGVER, PKGREVISION (as
needed), and CATEGORIES.
- HOMEPAGE is not present but defined in math/R/Makefile.extension to
refer to the CRAN web page describing the package. Other relevant
web pages are often linked from there via the URL field.
This updates all current R packages to this form, which will make
regular updates _much_ easier, especially using pkgtools/R2pkg.
[1] http://mail-index.netbsd.org/tech-pkg/2019/08/02/msg021711.html
Each R package should include ../../math/R/Makefile.extension, which also
defines MASTER_SITES. Consequently, it is redundant for the individual
packages to do the same. Package-specific definitions also prevent
redefining MASTER_SITES in a single common place.
Changes:
- Turned off using subtle style for digits that are considered
insignificant. Negative numbers are shown all red. Set the new
option pillar.subtle_num to TRUE to turn it on again (default:
FALSE).
- The negation sign is printed next to the number again.
- Scientific notation uses regular digits again for exponents.
- Groups of three digits are now underlined, starting with the fourth
before/after the decimal point. This gives a better idea of the
order of magnitude of the numbers.
- Logical columns are displayed as TRUE and FALSE again.
- The decimal dot is now always printed for numbers of type
numeric. Trailing zeros are not shown anymore if all displayed
numbers are whole numbers.
- Decimal values longer than 13 characters always print in
scientific notation.
- New styling helper style_subtle_num(), formatting depends on the
pillar.subtle_num option.