Suppress eldoc when the current sexp seems to be too large #1502
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.
This PR restricts the range of searching the beginning of the current sexps for eldoc.
Current version of eldoc could be slow in a large buffer because
cider-eldoc-beginning-of-sexp
could traverse the whole buffer.Such a situation is especially prone to happen in the REPL buffer.
In the following example, if the cursor is located at the right of the prompt,
cider-eldoc-beginning-of-sexp
calls(forward-sexp -1)
about 15 times (user> -> line -> a -> is -> ...
).When the REPL buffer has 4k lines and 35k sexp-like objects (this means
(forward-sexp -1)
will be called 35k times),cider-eldoc-beginning-of-sexp
takes about 4 seconds in my environment.With my fix, it takes less than 0.001 seconds.
This might be related to #1361.