Commit Graph

20 Commits

Author SHA1 Message Date
Dave Collins de6d1a24a0 Reorganize the new map key sorting functionality.
This commit moves the new code related to sorting reflect.Value items into
common.go since it is accessed by both the formatter and the dumper.  It
also adds comments to the new functions and unexports SortValues since it
should be an internal function only.
2013-11-14 21:39:21 -06:00
Dave Collins f0ba95e184 Fix a few style issues pointed out by golint. 2013-11-14 21:19:56 -06:00
Patrick Mezard 8e1b34364f dump: make SortKeys default to string representation instead of nothing
The previous version of SortKeys was sorting only native types. Now, if
the type is unknown it defaults to its reflect.Value.String()
representation which at least guarantees display stability.
2013-10-28 14:35:33 +01:00
Patrick Mezard 1fdf49f1b9 config: add SortKeys option to sort native map keys before display
If ConfigState.SortKeys is true, then dump and format will sort map keys
before displaying them. Only native types (bool, ints, uint, uintptr,
string) are supported, other slices are left unchanged.

The motivation is to have more diffable output, mostly for test purpose.
2013-10-27 23:44:49 +01:00
Dave Collins a83f71796b Add better support for dumping cgo char arrays.
This commit adds support for dumping a few cgo types like hexdump -C as
requested in issue #11.  In particular, it now handles char [#], unsigned
char [#], and uint8_t [#].
2013-09-21 21:43:56 -05:00
Dave Collins 7ea732c827 Detect nil slices and print them as <nil>.
This commit modifies the code to detect nil slices and display them as
<nil> (as opposed to simply empty slices).  For most instances a nil slice
can be treated the same as an empty slice, but there is a difference and
things like reflect.DeepEqual notice.  This change makes it clear whether
the type in question is a nil slice or an empty slice.
2013-09-09 20:38:28 -05:00
Dave Collins 173295b96e Fix incorrect val display on packed nil interfaces.
This was reported by shurcooL as issue #12.
2013-03-27 22:50:09 -05:00
Dave Collins 691853c424 Update docs for new Sdump function. 2013-03-11 18:37:09 -05:00
Dave Collins 3a62f585a7 Add support for Sdump.
This commit adds a function named Sdump which works exactly like Dump and
Fdump except it returns the formatted output as a string.  This serves the
same purpose as the the Sprint* family of functions.
2013-03-11 18:15:28 -05:00
Dave Collins 096da7a702 Update docs for new byte array and slice behavior. 2013-03-08 22:45:02 -06:00
Dave Collins 70d81533ec Dump byte arrays and slices like hexdump -C.
This commit modifies the Dump family functions to output byte arrays and
slices like hexdump -C as specified in issue #9.
2013-03-08 22:15:12 -06:00
Dave Collins 471552e81e Modify printInt and printUint to accept base.
This paves the way to improve how byte arrays are output as well as
increases the flexibily of the functions.
2013-03-08 19:55:04 -06:00
Dave Collins 52f41f689f Rename pad function to indent.
The name indent better describes the function.  This also will help
differentiate the function from planned functions that are intended to
perform padding for the purposes of aligning fields, types, and values.
2013-02-03 01:35:24 -06:00
Dave Collins a9907c1584 Improve invalid reflect value handling.
It was previously possible for an invalid reflect value to lead to a panic
in certain obscure cases.  Rather than adding multiple checks for the
invalid reflect value, handle invalid reflect values immediately.
2013-01-20 20:44:21 -06:00
Dave Collins 1f81f22357 Implement support for %#v and %#+v in Formatter.
This commit implements feature request #3.  In particular, it allows the
formatter to respond to %#v and %#+v.  The # flag (%#v) adds type
information to the output and the combination of the # and + flags (%#+v)
adds both type information and pointer information.  This allows the
consumer a choice between displaying types, pointer information, or both.
2013-01-17 18:43:51 -06:00
Dave Collins 638b62b9f5 Fix a few comment typos and improve consistency. 2013-01-13 00:17:58 -06:00
Dave Collins 389ea44d6a Fix incorrect type display on nil pointers.
This was reported by korschak as issue #4 who also pinpointed the issue
and provided a patch.
2013-01-12 23:30:04 -06:00
Dave Collins 034a2a5a5e Implement support for unqiue config instances.
This commit adds a new type, SpewState, which can be used to create
instances with unique configuration options.  The methods of SpewState are
equivalent to the top-level functions.  Full documentation and examples
are included.
2013-01-12 12:06:59 -06:00
Dave Collins 184d118062 Add config pointers to format and dump states.
This paves the way to support individual configuration options through a
separate type while still providing the simple global config and package
level methods.
2013-01-10 20:39:05 -06:00
Dave Collins 1a599b7b25 Initial implementation. 2013-01-08 23:38:16 -06:00