/opt/imh-python/lib/python3.9/site-packages/prompt_toolkit/completion
NameSizeModeActions
__pycache__/-0755rm
base.py161030644editdlrm
deduplicate.py14360644editdlrm
filesystem.py39490644editdlrm
fuzzy_completer.py77380644editdlrm
nested.py38440644editdlrm
word_completer.py34350644editdlrm
__init__.py9920644editdlrm
Edit: /opt/imh-python/lib/python3.9/site-packages/prompt_toolkit/completion/deduplicate.py (1436B)
from __future__ import annotations from typing import Iterable from prompt_toolkit.document import Document from .base import CompleteEvent, Completer, Completion __all__ = ["DeduplicateCompleter"] class DeduplicateCompleter(Completer): """ Wrapper around a completer that removes duplicates. Only the first unique completions are kept. Completions are considered to be a duplicate if they result in the same document text when they would be applied. """ def __init__(self, completer: Completer) -> None: self.completer = completer def get_completions( self, document: Document, complete_event: CompleteEvent ) -> Iterable[Completion]: # Keep track of the document strings we'd get after applying any completion. found_so_far: set[str] = set() for completion in self.completer.get_completions(document, complete_event): text_if_applied = ( document.text[: document.cursor_position + completion.start_position] + completion.text + document.text[document.cursor_position :] ) if text_if_applied == document.text: # Don't include completions that don't have any effect at all. continue if text_if_applied in found_so_far: continue found_so_far.add(text_if_applied) yield completion