prompt-toolkit / prompt-toolkit/python-prompt-toolkit
Long Names
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 10.6k
- Forks
- 815
- PR merge metrics
- No merged PRs in 30d
Description
Hi,
If I have a long name I am trying to autocomplete, this no longer is useful. Would it be possible to allow for one of the following:
- Allow the part already typed to not be included
- Ellipsis the start not the end of the string
- Allow for the text displayed in the UI to not be the text updates what is selected
While below is contrived, this happens with autocomplete of long chains of properties. Reproducer:
import random
import string
def randomString(stringLength=10):
"""Generate a random string of fixed length """
letters = string.ascii_lowercase
return ''.join(random.choice(letters) for i in range(stringLength))
def my_completer(c, text):
longstr = 'AUTO_COMPLETE_A_VERY_LONG_STRING_BECAUSE_SOMETIMES_THIS_HAPPENS'
if text.startswith(longstr):
return [(longstr + randomString()).decode('utf8') for x in range(150)]
return []
get_ipython().set_custom_completer(my_completer, 0)

Python 2.7.15
IPython 5.8.0
PromptToolkit: 1.0.15
Please also let me know if this is available in a later version of prompt_toolkit.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the supplied my_completer reproducer with the noted Python, IPython, and PromptToolkit versions, then trace the autocomplete UI from set_custom_completer. Done means long completion candidates remain usable and the displayed text can be shortened without changing the selected completion.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100