Handle empty items in arrays and arraylike objects #75
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds an
EmptyItem
descriptor to represent the gaps in sparse arrays. Formats gaps as<empty item>
, and treats them as unequal to anything other than empty items for comparison and diffing.Adds theme keys
for controlling the formatting; I'm not sure if this is the best way to do this. Maybe the item text should be configurable, or maybe the brackets should be part of the item text and not part of the open/close wrappers?
I initially implemented this with an
Empty
primitive descriptor, but I thinkEmptyItem
better matches the data model. I can't think of a non-list context whereEmpty
would be valid.This PR does not collapse empty items into e.g.
<5 empty items>
likeutil.inspect
does; that functionality seemed like a subset of #12.Closes #74.
This is a breaking change & bumps the serialization format version to 4.