Identification of caller for ivy-read #1957
Open
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.
Hi,
With
ivy, projectile usesivy-readfor completion. This function takes a named parameter:callerthat allowsivyto change its behavior (e.g.ivy-richannotations, ordisplay-bufferbehavior). As it stands, projectile always sets this parameter toprojectile-completing-read.This PR changes it to set a different caller according to what is being read:
projectile-read-projectfor a project name,projectile-read-bufferfor a buffer name,projectile-read-filefor a file name,projectile-read-directoryfor a directory.Based on the changelog, the purpose appears to be similar to #1892.
It is also similar to what counsel-projectile does, but that package is much larger in scope, and more opinionated. This PR won't change user-facing behavior without additional configuration on their side.
One possible friction point is if a user has already configured eg
ivy-richto match on'projectile-completing-read. Then they will need to adjust their configuration to the new identifiers. If that is a big problem, we can add a configuration variable to make the new behavior opt-in or opt-out.Examples of what can be done (requires additional code)
Show the current branch of the projects (very useful when juggling between multiple worktrees):

Have the same information with

projectile-switch-bufferas withswitch-buffer:Before submitting a PR make sure the following things have been done (and denote this
by checking the relevant checkboxes):
eldev test)M-x checkdocwarningsThanks!