prompt-toolkit / prompt-toolkit/python-prompt-toolkit

Long Names

Open
#909 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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:

  1. Allow the part already typed to not be included
  2. Ellipsis the start not the end of the string
  3. 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)

image

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.