Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork144
Fix reader syntaxes disrupted by newlines#655
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
RuijieYu wants to merge2 commits intoabo-abo:masterChoose a base branch fromRuijieYu:bug-647-quote-newline
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Uh oh!
There was an error while loading.Please reload this page.
Conversation
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
Fixes bug#653.* lispy-test.el(lispy-simulate-key) (lispy-simulate-keys) (lispy-simulate-expect):Added facilities to assert results after a given set of keypresses.(lispy-read-unsafe-chars): added regression tests for bug#648.
Fixes bug#647.Lispy would assume an implicit nil after the reader syntax, like this:```emacs-lisp(defun foo () ' (bar baz) ) ;; point here, press i to format```Gets this incorrect result:```emacs-lisp(defun foo () '() (bar baz))```* lispy.el (lispy--delete-insignificant-sexps): allow removing sexps that areimplicitly-created by lispy, and serve no purpose in the real input and outputsexp other than formatting. At the moment, just remove newline nodes.(lispy--read-reader-syntax): helper function to avoid code duplication; replacesa reader syntax RS, e.g., "`", plus its immediately-next sexp into an internalrepresentation with TAG.(lispy--read): update handling of "#'", ",@", "'", "`", "," to make use of`lispy--read-reader-syntax'.(lispy--insert): fixed float and quasiquote handling (currently it calls`(insert (caddr sxp))', which is incorrect because `insert' considers it acharacter; float was not problematic because this code path was never triggered:things like 1.2 have not been converted into `ly-raw float' constructs anyway.* lispy-test.el (lispy-read-quote-newline): added 5 simple tests for each of theaddressed reader syntaxes.
0acedfe to8e6d0a1CompareSign up for freeto 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.
Uh oh!
There was an error while loading.Please reload this page.
Note that I am writing this PR on a recent Emacs 30 build, whereas the min version supported for lispy is
24.3. I hope someone can test on some earlier versions.Fixes#647. Alsofixes#653 by its first commit.
Lispy would assume an implicit nil after the reader syntax, like this:
Gets this incorrect result:
(lispy--delete-insignificant-sexps): allow removing sexps that are
implicitly-created by lispy, and serve no purpose in the real input and output
sexp other than formatting. At the moment, just remove newline nodes.
(lispy--read-reader-syntax): helper function to avoid code duplication; converts
a reader syntax RS, e.g.,
"`", plus its immediately-next sexp, into an internalrepresentation with TAG.
(lispy--read): update handling of
"#'",",@","'","`",","to make use oflispy--read-reader-syntax.(lispy--insert): fixed float and quasiquote handling (currently it calls
(insert (caddr sxp)), which is incorrect becauseinsertconsiders it acharacter; float was not problematic because this code path was never triggered:
things like
1.2have not been converted intoly-raw floatconstructs anyway.(lispy-read-quote-newline): added 5 simple tests for each of the
addressed reader syntaxes.