fix: resolve sync drift and improve formatting safety#119
Open
renich wants to merge 3 commits into
Open
Conversation
830c13d to
2510cd1
Compare
Assisted-by: Gemini <gemini@google.com>
Assisted-by: Gemini <gemini@google.com>
Assisted-by: Gemini <gemini@google.com>
2510cd1 to
02de1fa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
This PR fixes a critical synchronization bug between the editor and the server and adds safety guards to the document formatting logic.
Fixes: #41, #84, #63
Key Changes
.chompinTextDocumentthat was stripping newlines during incremental updates, causing the server's view of the source to drift.formatOnPasteleads to added newline after each paste #63): Added syntax validation to the result ofCrystal.formatto prevent the server from pushing invalid code back to the editor in edge cases.Verification
spec/reproduction_41_spec.cr(Sync Drift).spec/reproduction_63_spec.cr(Formatting).PR 4: feat/requires-discovery
Title: feat: automatic discovery of src/requires.cr
Assisted-by: Gemini gemini@google.com