read_clip_tbl() error with trailing newline and quote characters — append a trailing newline to clipboard content before passing to read.table(), and set default quote="" to prevent single quotes in headers from being interpreted as quote delimiters (#77)wl-copy non-destructively on Wayland systems, fixing clipboard detection issues (#75, @danielvartan)write_clip() calls on Windows are modified to work well with R's shift to supporting UTF-8 as a native encoding on Windows. Thank you to @yutannihilation for the PR. Read more here: https://github.com/mdlincoln/clipr/issues/62--output flag, which prevents RStudio from hanging when calling clipr functions on a system running certain Linux window managers. Thank you to @cgillespie and @kevinushey for identifying the bug and the solution, and to @hannahcgunderman for help in testing.Thank you to @jennybc for prompting these changes:
clipr_available() will first explicitly check if it is being run non-interactively, and if so, if the CLIPR_ALLOW environment variable has been set. This will hopefully prevent starting spurious Linux processes during CRAN tests.read_clip() now does the same interactive/envvar check that write_clip() does.Thank you to @wangyuchen for making the following suggestions:
To make clipr more pipe-friendly, write_clip() now defaults to return_new = FALSE, and will instead return the initial object that was passed in. To get the old behavior, pass return_new = TRUE
In an effort to make write_clip() and read_clip_tbl() more symmetrical, write_clip() now defaults to writing out row and column names when they exist.
Introduces write_last_clip(), a wrapper function for write_clip(.Last.value)
To comply with CRAN policy, write_clip() will now error by default if run in
a non-interactive session. Non-interactive use must be explicitly enabled by
setting an environment variable CLIPR_ALLOW=TRUE.
Documented that the default behavior when writing matrices to write_clip()
is col.names = FALSE
dr_clipr(), which gives informative suggestions for software and
configuration requirements when accessing the clipboard on X11-based systems.Suppress an erroneous warning on OS X / X11 systems when trying to write an empty string to the clipboard.
Fix error when NA is passed to write_clip(). This will now write "NA" to
the clipboard.
Fix error when passing NULL or an empty vector (e.g. character(0)). This
will now write "" to the clipboard.
Fixes a breaking bug that caused clipr_available to erroneously return
FALSE. Thank you to @krivit for catching this.
Introduces better testing of clipr_available to properly evaluate it on
Travis CI.
Introduces clipr_available which checks to see if the system clipboard is
writeable/readable. This may be useful if you are developing a package that
relies on clipr and need to ensure that it will skip tests on machines (e.g.
CRAN, Travis) where the system clipboard may not be available. Thank you to
@jennybc for this suggestion.
Implements genuine testing of clipr functionality with thanks to some deft environment variable settings added by @jennybc.
Two RStudio addins: one to copy the value returned when a highlighted expression is evaluated, and another that copies the console output.
Introduces read_clip_tbl, a convenience function that takes tab-delimited
text from read_clip (such as that copied from a spreadsheet) and parses it
with read.table. Thank you to Steve Simpson (@data-steve) for the original
PR.
write_clip(object_type = "table") has a new internal implementation
(writing to a temporary file rather than using capture.output) which should
dramatically shorten the time it takes to write very large tables to the
clipboard. Thank you to @r2evans for this suggestion.
Several changes to write_clip - The separator to be used when writing a
character vector can now be explicitly declared using breaks. breaks=NULL
will default to system-specific line breaks for both vectors and tables. -
write_clip will default to formatting data.frames and matrices with
write.table, allowing easy pasting of tabular objects into programs like
Excel. Option object_type="auto" will check the object type to decide on the
correct formatting, or the user may explicitly state object_type="table" or
object_type="character". - clipr will default to sane system-specific
options for write.table(), however you may pass any custom desired options
via write_clip - return_new=TRUE (the default behavior) will return the
formatted character string that was passed to the system clipboard, while
write_clip(return_new=FALSE) will return the original object.
Introduces clear_clip, a wrapper function for write_clip("") for easy
clearing of the system clipboard.