mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-05 00:41:00 +01:00
fixed up ptk completer a bit
This commit is contained in:
parent
8920cc3d4e
commit
b46020f1d4
2 changed files with 23 additions and 2 deletions
14
news/ptkcomp.rst
Normal file
14
news/ptkcomp.rst
Normal file
|
@ -0,0 +1,14 @@
|
|||
**Added:** None
|
||||
|
||||
**Changed:** None
|
||||
|
||||
**Deprecated:** None
|
||||
|
||||
**Removed:** None
|
||||
|
||||
**Fixed:**
|
||||
|
||||
* PTK completions will now correctly deduplicate autosuggest completions
|
||||
and display completions values based on the cursor position.
|
||||
|
||||
**Security:** None
|
|
@ -48,6 +48,7 @@ class PromptToolkitCompleter(Completer):
|
|||
endidx + expand_offset,
|
||||
self.ctx)
|
||||
# completions from auto suggest
|
||||
sug_comp = None
|
||||
if env.get('AUTO_SUGGEST'):
|
||||
sug_comp = self.suggestion_completion(document, line)
|
||||
if sug_comp is None:
|
||||
|
@ -55,7 +56,9 @@ class PromptToolkitCompleter(Completer):
|
|||
elif len(completions) == 0:
|
||||
completions = (sug_comp,)
|
||||
else:
|
||||
completions = (sug_comp,) + completions
|
||||
completions = set(completions)
|
||||
completions.discard(sug_comp)
|
||||
completions = (sug_comp,) + tuple(sorted(completions))
|
||||
# reserve space, if needed.
|
||||
if len(completions) <= 1:
|
||||
pass
|
||||
|
@ -69,9 +72,13 @@ class PromptToolkitCompleter(Completer):
|
|||
break
|
||||
c_prefix = c_prefix[:-1]
|
||||
# yield completions
|
||||
if sug_comp is None:
|
||||
pre = min(document.cursor_position_col - begidx, len(c_prefix))
|
||||
else:
|
||||
pre = len(c_prefix)
|
||||
for comp in completions:
|
||||
# do not display quote
|
||||
disp = comp.strip('\'"')[len(c_prefix):]
|
||||
disp = comp[pre:].strip('\'"')
|
||||
yield Completion(comp, -l, display=disp)
|
||||
|
||||
def suggestion_completion(self, document, line):
|
||||
|
|
Loading…
Add table
Reference in a new issue