feat: add and handle diff_opts.on_unsaved_changes option #125
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.
Graceful Dirty Buffer Handling for Diff Operations
This PR adds the ability to gracefully handle unsaved changes when creating diffs. This has two behaviors to choose from:
error
(default): Throws an error when attempting to create a diff with unsaved changes. This is unchanged from the existing behavior.discard
: Automatically discards unsaved buffer changes by reloading the buffer from disk before creating the diff.The implementation includes:
diff_opts.on_unsaved_changes
configuration option with validationdiscard_buffer_changes()
function that safely reloads buffers from diskThis makes it easier to work with diffs when files have unsaved changes, allowing you to choose between safety or convenience based on your workflow preferences.