Add ptk 2.0 completer

This commit is contained in:
Tyler Goodlet 2018-01-14 21:35:59 -05:00
parent a5b5b9acf5
commit 30247da2d0
2 changed files with 16 additions and 2 deletions

View file

@ -108,3 +108,17 @@ class PromptToolkitCompleter(Completer):
else:
return LayoutDimension()
window._height = comp_height
class PromptToolkit2Completer(PromptToolkitCompleter):
"""Completer for ptk2.
"""
def suggestion_completion(self, document, line):
"""Provides a completion based on the current auto-suggestion."""
cli = self.shell.prompter.cli
sug = self.hist_suggester.get_suggestion(cli.app.current_buffer, document)
if sug is None:
return None
comp, _, _ = sug.text.partition(' ')
_, _, prev = line.rpartition(' ')
return prev + comp

View file

@ -9,7 +9,7 @@ from prompt_toolkit.layout.lexers import PygmentsLexer
from xonsh.platform import ptk_version_info
from xonsh.base_shell import BaseShell
from xonsh.tools import print_exception, carriage_return
from xonsh.ptk.completer import PromptToolkitCompleter
from xonsh.ptk.completer import PromptToolkitCompleter, PromptToolkit2Completer
from xonsh.ptk.history import PromptToolkitHistory
from xonsh.ptk.key_bindings import load_xonsh_bindings
from xonsh.ptk.shortcuts import get_prompter
@ -337,7 +337,7 @@ class PromptToolkitShell2(PromptToolkitShell):
self._first_prompt = True
self.prompter = get_prompter()
self.history = PromptToolkitHistory()
self.pt_completer = PromptToolkitCompleter(
self.pt_completer = PromptToolkit2Completer(
self.completer, self.ctx, self)
self.key_bindings = KeyBindings()
load_xonsh_bindings(self.key_bindings)