Skip to content

Releases: r-lib/cli

cli 3.6.3

23 Jun 12:04
Compare
Choose a tag to compare
  • cli now builds on ARM Windows.

  • "Solarized Dark" is now the default syntax highlighting theme in
    terminals.

  • The {.obj_type_friendly} inline style now only shows the first class
    name (#669 @olivroy).

  • Syntax highlighting now does not fail in RStudio if the rstudioapi
    package is not installed (#697).

cli 3.6.2

11 Dec 19:52
Compare
Choose a tag to compare
  • ansi_collapse(x, trunc = 1, style = "head") now indeed shows one
    element if length(x) == 2, as documented (@salim-b, #572).

  • ansi_collapse() gains a sep2 argument to specify a seperate separator
    for length-two inputs. It defaults to " and " which, in conjunction with
    the other defaults, produces a collapsed string that fully adheres to the
    serial comma rules.
    (@salim-b, #569)

  • ansi_string() is now an exported function (@multimeric, #573).

cli 3.6.1

26 Mar 20:13
Compare
Choose a tag to compare
  • ANSI hyperlinks are now turned off on the RStudio render plane (#581).

cli 3.6.0

09 Jan 17:37
Compare
Choose a tag to compare
  • The progressr progress handler now reports progress correctly
    (@HenrikBengtsson, #558).

  • New hash_*sha1() functions to calculate the SHA-1 hash of strings,
    objects, files.

  • cli now shows progress bars after one second by default, if they
    are less than half way at the point. (Or after two seconds,
    unconditionally, as before.) See the the cli.progress_show_after
    option in ?cli-config for details (#542).

  • format_inline() now has a new argument keep_whitespace, and it keeps
    whitespace, including newline and form feed characters by default.

cli 3.5.0

20 Dec 14:27
Compare
Choose a tag to compare
  • New keypress() function to read a single key press from a terminal.

  • New function pretty_print_code() to print function objects with syntax
    highlighting at the R console.

  • col_* and bg_* functions how handle zero-length input correctly (#532).

  • New function ansi_collapse() to collapse character vectors into a single
    string.

  • ansi_strtrim() now handles some edge cases better, when ellipsis has
    length zero, and when it is wider than width.

  • New hash_file_md5() function to calculate the MD5 hash of one or more
    files.

cli 3.4.1

24 Sep 08:48
Compare
Choose a tag to compare
  • cli has better error messages now.

  • New format_inline() argument: collapse, to collapse multi-line output,
    potentially because of \f characters.

cli 3.4.0

08 Sep 12:32
Compare
Choose a tag to compare
  • New experimental styles to create ANSI hyperlinks in RStudio and
    terminals that support them. See ?cli::links for details (#513).

  • Expressions that start and end with a {} substitution are now styled
    correctly. E.g. {.code {var1} + {var2}} (#517).

  • New {.obj_type_friendly} inline style to format the type of an R object
    in a user friendly way (#463).

  • Improved vector collapsing behavior. cli now shows both the beginning
    and end of the collapsed vector, by default (#419).

  • Nested cli() calls work now (#497).

  • Return values now work as they should within cli() calls (#496).

  • Style attributes with underscores have new names with dashes instead:
    vec_sep, vec_last, vec_trunc, string-quote. The old names still
    work, but the new ones take precedence (#483).

  • cli now does not crash at the end of the R session on Arm Windows
    (#494; @kevinushey)

  • Vectors are truncated at 20 elements now by default, instead of 100 (#430).

  • 20 new spinners from the awesome
    cli-spinners package,
    and from @HenrikBengtsson in #469.
    Run this to demo them, some need UTF-8 and emoji support:

    new <- c("dots13", "dots8Bit", "sand", "material", "weather", "christmas",
      "grenade", "point", "layer", "betaWave", "fingerDance", "fistBump",
      "soccerHeader", "mindblown", "speaker", "orangePulse", "bluePulse",
      "orangeBluePulse", "timeTravel", "aesthetic", "growVeriticalDotsLR",
      "growVeriticalDotsRL", "growVeriticalDotsLL", "growVeriticalDotsRR")
    demo_spinners(new)
  • cli exit handlers are now compatible again with the withr package (#437).

  • cli functions now keep trailing \f characters as newlines.
    They also keep multiple consecutive \f as multiple newlinees (#491).

  • {} substitutions within inline styles are now formatted correctly.
    E.g. {.code download({url})} will not add backticks to url, and
    {.val pre-{x}-post} will format the whole value instead of x.
    (#422, #474).

  • cli now replaces newline characters within {.class ... } inline styles
    with spaces. If the cli.warn_inline_newlines option is set to TRUE, then
    it also throws a warning. (#417).

  • code_highlight now falls back to the default theme (instead of no theme)
    for unknown RStudio themes (#482, @rossellhayes).

  • cli_abort() now supplies .frame to abort(). This fixes an
    issue with the .internal = TRUE argument (r-lib/rlang#1386).

  • cli now does a better job at detecting the RStudio build pane, job pane
    and render pane, and their capabilities w.r.t. ANSI colors and hyperlinks.
    Note that this requires a daily build of RStudio (#465).

  • New functions for ANSI strings: ansi_grep(), ansi_grepl(),
    ansi_nzchar(). They work like the corresponding base R functions, but
    handle ANSI markup.

  • style_hyperlink() (really) no longer breaks if the env variable VTE_VERSION
    is of the form \d{4}, i.e., 4 consecutive numbers (#441, @MichaelChirico)

  • cli_dl() and its corresponding cli_li() can now style the labels.

  • The behavior cli's inline styling expressions is now more predictable.
    cli does not try to evaluate a styled string as an R expression any more.
    E.g. the meaning of "{.emph +1}" is now always the "+1", with style
    .emph, even if an .emph variable is available and the .emph + 1
    expression can be evaluated.

  • Functions that apply bright background colors (e.g. bg_br_yellow()) now
    close themselves. They no longer format text after the end of the function
    (#484, @rossellhayes).

cli 3.3.0

25 Apr 11:41
Compare
Choose a tag to compare
  • style_hyperlink() no longer breaks if the env varible VTE_VERSION
    is of the form \d{4}, i.e., 4 consecutive numbers (#441, @MichaelChirico)

  • ansi_*() functions support ANSI hyperlinks again (#444).

  • Turning off ANSI colors via the cli.num_colors option or the
    R_CLI_NUM_COLORS or the NO_COLOR environment variable now also turns off
    ANSI hyperlinks (#447).

  • symbol now only has two variants: UTF-8 and ASCII. There are no special
    variants for RStudio and Windows RGui any more (#424).

v3.2.0

14 Feb 18:17
Compare
Choose a tag to compare

Breaking change

  • The cli_theme_dark option is know known as cli.theme_dark, to be
    consistent with all other cli option names (#380).

Other changes

  • The preferred names of the S3 clases ansi_string, ansi_style, boxx,
    rule and tree now have cli_ prefix: cli_ansi_string, etc. This will
    help avoiding name conflicts with other packages eventually, but for now
    the old names are kept as well, for compatibility.

  • cli_abort() has been updated to work nicely with rlang 1.0. The
    default call and backtrace soft-truncation are set to .envir
    (which itself is set to the immediate caller of cli_abort() by
    default).

    Line formatting now happens lazily at display time via
    rlang::cnd_message() (which is called by the conditionMessage()
    method for rlang errors).

  • New hash_sha256() function to calculate SHA-256 hashes. New
    hash_raw_*(), hash_obj_*() and hash_file_*() functions to calculate
    various hashes of raw vectors, R objects and files.

  • You can use the new cli.default_num_colors option to set the default
    number of ANSI colors, only if ANSI support is otherwise detected.
    See the details in the manual of num_ansi_colors().

  • You can set the new ESS_BACKGROUND_MODE environment variable to
    dark to indicate dark mode.

  • cli now handles quotes and comment characters better in the semantion
    cli_*() functions that perform glue string interpolation (#370).

v3.1.1

20 Jan 16:57
Compare
Choose a tag to compare
  • style_hyperlink() gains a params= argument (#384).