Fix occasional error when indenting namespace-qualified function #1475
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.
I got
(args-out-of-range -1 -1)
error when I tried to indent a namespace-qualified function call in a CLJS buffer which is associated with browser REPL connection.Stacktrace:
I haven't found minimal steps to reproduce it yet, but the cause is clear.
It is because
cider-resolve-alias
is called betweenstring-match
andreplace-match
incider--get-symbol-indent
1.cider-resolve-alias
can also callstring-match
2 , so the match data can be replaced with another one.This PR should fix it by backing up the match data with
save-match-data
macro.[1]
cider/cider-mode.el
Lines 291 to 292 in 491d5e5
[2] E.g.
cider-resolve-alias
->cider-resolve--get-in
->cider-current-connection
->cider-find-connection-buffer-for-project-directory
->file-truename
->string-match