From bb59771d9962dcd69c29b008031fd4ae9002915d Mon Sep 17 00:00:00 2001 From: mathieui Date: Thu, 1 Aug 2013 20:17:12 +0200 Subject: Fix #2049 (get the current completed argument) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A command argument can now be completed even if it isn’t the last one in the input. - Add a new method Input.new_completion Almost like the old auto_completion method, except taht it takes another argument: argument_position, which is the argument to be completed. - Methods using the old completion method still work - All completion methods in poezio now use the new one if necessary - Further details can be found in the docstring of new_completion --- src/decorators.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/decorators.py') diff --git a/src/decorators.py b/src/decorators.py index ab987701..3cb967b3 100644 --- a/src/decorators.py +++ b/src/decorators.py @@ -1,7 +1,9 @@ """ -Module containing the decorators +Module containing various decorators """ +from functools import partial + class RefreshWrapper(object): def __init__(self): self.core = None @@ -40,5 +42,14 @@ class RefreshWrapper(object): return ret return wrap +def __completion(quoted, func): + class Completion(object): + quoted = quoted + def __new__(cls, *args, **kwargs): + return func(*args, **kwargs) + return Completion + +completion_quotes = partial(__completion, True) +completion_raw = partial(__completion, False) refresh_wrapper = RefreshWrapper() -- cgit v1.2.3