Diffs for R Objects
Generate a colorized diff of two R objects for an intuitive
visualization of their differences.
Generate a colorized diff of two R objects for an intuitive visualization of their differences.
See vignettes for details, and for comparisons with standard comparison functions.
If your terminal supports formatting through ANSI escape sequences,
diffobj will output colored diffs to the terminal. Otherwise, output will be colored with HTML/CSS and sent to the IDE viewport or to your browser.
diffobj comes with several built-in color schemes that can be further customized. Some examples:
This package is available on CRAN.
- R Core for developing and maintaining such a wonderful language.
- CRAN maintainers, for patiently shepherding packages onto CRAN and maintaining
the repository, and Uwe Ligges in particular for maintaining
- The users who have reported bugs and possible fixes (see NEWS.md).
- Jim Hester because
- Dirk Eddelbuettel and Carl
Boettiger for the
rocker project, and Gábor
Csárdi and the
Rhub, without which testing bugs on R-devel and
other platforms would be a nightmare.
- Hadley Wickham for
devtools and with Peter
- Yihui Xie for
knitr and J.J.
Allaire etal for
rmarkdown, and by extension
John MacFarlane for pandoc.
- Olaf Mersmann for
microsecond matter, and Joshua Ulrich for
making it lightweight and maintaining it.
- Tomas Kalibera for
rchk and the accompanying vagrant image,
and rcnst to help detect errors in compiled code.
- Winston Chang for the
r-debug docker container, in
particular because of the valgrind level 2 instrumented version of R.
- All open source developers out there that make their work freely available
for others to use.
- Github, Travis-CI,
Brew for providing infrastructure that greatly simplifies
open source development.
- Free Software Foundation for developing the GPL license and
promotion of the free software movement.
This is a bugfix release.
- #136: Documentation for
ignore.white.space (h/t @flying-sheep) and
max.diffs parameters listed
- #135: Incorrect handling of
potential meta data strings when unwrapping atomics would cause a "wrong sign
in by argument" error (h/t @flying-sheep). We also fixed other bugs related
to the handling of meta data in atomic vectors that were uncovered while
debugging this issue.
- #134: Forwarding
diff* functions no longer breaks substitution of arguments for diff banners
files with equal content but different locations to be
all.equal now (h/t
- #132: Duplicate pager slot
Pager removed (h/t Bill Dunlap).
There are also several other small internal changes that in theory should not
affect user facing behavior.
RNGversion() due to changes to sampling mechanism.
- #129: Allow pager
specification via lists rather than full
Pager objects for easier changes to
defaults. As part of this we changed
StyleRaw objects to use default
pager instead of
- #126: Add embedding diffs in
Shiny to vignette.
also ignores white space differences adjoining punctuation.
- #118: New option to preserve
temporary diff file output when using pager (see
- #114: New options
sgr.supported allow finer control of what happens when input already
contains ANSI CSI SGR and how ANSI CSI SGR is handled in string manipulations.
Related to this,
options(crayon.enabled=TRUE) is no longer set when
capturing output prior to diff as it used to be. By default pre-existing ANSI
CSI SGR is stripped with a warning prior to comparison.
- #131: Fix missing slot in S4
class definition (discovered by Bill Dunlap).
- #127: Width CSS conflicts
with bootstrap (reported by @eckyu, debugged/fixed by @cpsievert).
- #123: Compatibility with R3.1
- #121: Vignette describing how
to embed diffs in Rmd documents (@JBGruber).
- #115: Declare HTML page diff
encoding/charset as UTF-8 (@artemklevtsov).
- Comply with CRAN directive to remove references to packages not in
depends/imports/suggests in tests (these were run optionally before).
- Fix bugs in corner case handling when we hit
- Fix test failures caused by changes in tibble output
- Fix tests for next
- #107: Diffs on quoted
- #108: Problems caused by
- #100: R_useDynamicSymbols
- #97: 2D Guidelines fixes for
- #96: Warnings when comparing
large data tables.
- #94: Guide detection problems
in nested lists.
- #105: Copyright tweaks.
diffobj is now GPL (>=2)
instead of GPL-3.
- #81: Better handling of mixed
UTF-8 / ASCII strings, reported by jennybc
- #88: correctly handle trimming
when empty lists are involved, reported by wch
diffObj now favors
diffPrint output is large
NA as "NA" (needed with change in
nchar(NA) in base R)
- #85: Improved alignment of
unwrapped atomic vector diffs
- #83: Improve pager auto
detection (note now ANSI output is only allowed by default if terminal
supports ANSI colors and the system pager is
?Pager for details)
#45: basic implementation of
S4 guidelines and trimming (full resolution eventually with
- #84: simplify how to call
diffChr for improved performance, including "optimization" of
- #64: fix line limit in corner
- More robust handling of external
diff* methods and of how
- #71: Buggy diffs b/w data
frames when one has sequential row numbers and the other does not, loosely
related to #38
- #69: Improve performance on
outputs with large print/show output, and other assorted minor optimizations
- #72: Warn when
parameter overrides other user supplied parameters
- #70: Improve word contrast in YB
- #63: Show
when objects are not
all.equal but there are no visible differences
- Add Mean Relative
vignette and update vignette styling
- #67: Fix CRAN Binaries
- Clarified that C code is heavily modified and incompatible with original
- First version on CRAN
- #51: use RStudio viewport to display HTML diffs when running in RStudio, as per Noam Ross
- #54: #55, scale HTML output to viewport width (see
- #53: default term colors computed on run instead of on package load
- #56: disable wrap for HTML output
- HTML output now captured with default width 80 since there is no explicit relationship between HTML viewport width and
style parameter now accepts lists to use as instantiation arguments for
Style objects (see
- Fix subtle rendering and formatting application flaws
- Switch Travis shields to SVG per Gábor Csárdi
- Improve in-hunk alignment of partially matching lines
- Compile with
-pedantic, fix related warnings Arun
- Improved coverage and more robust testing
- Several internal structure changes to accommodate improvements
- #46: Guide and Trim Problems with Lists
- #47: Output Format in non-ANSI Terminals Without Browser (reported by Frank)
make_blocking Default prompt Confusing (reported by Frank)
- #49: In-Hunk Word Diffs Issues when Unwrap-diffing Atomics
- #50: CSS Lost in Rstudio Server Sessions (reported by Steven Beaupré)
- Turn off unwrapping for named atomic vectors (see #43)
- #44: Proper handling of NULL objects in
- #41: Compilation Issues in Winbuilder