From 11de2d98b3a734ffcd4641a7c5b7affeb47844f6 Mon Sep 17 00:00:00 2001 From: mathieui Date: Fri, 16 Apr 2021 21:44:02 +0200 Subject: fix: take newlines into account when completing stuff fixes #3385 --- poezio/tabs/muctab.py | 3 ++- poezio/windows/inputs.py | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'poezio') diff --git a/poezio/tabs/muctab.py b/poezio/tabs/muctab.py index 31ca7884..5cde8f68 100644 --- a/poezio/tabs/muctab.py +++ b/poezio/tabs/muctab.py @@ -1812,7 +1812,8 @@ class MucTab(ChatTab): word_list.append(user.nick) after = config.getstr('after_completion') + ' ' input_pos = self.input.pos - if ' ' not in self.input.get_text()[:input_pos] or ( + text_before = self.input.get_text()[:input_pos] + if (' ' not in text_before and '\n' not in text_before) or ( self.input.last_completion and self.input.get_text() [:input_pos] == self.input.last_completion + after): add_after = after diff --git a/poezio/windows/inputs.py b/poezio/windows/inputs.py index 0d884464..7ee8aa45 100644 --- a/poezio/windows/inputs.py +++ b/poezio/windows/inputs.py @@ -409,12 +409,14 @@ class Input(Win): Normal completion """ pos = self.pos - if pos < len( - self.text) and after.endswith(' ') and self.text[pos] == ' ': + if pos < len(self.text) and after.endswith(' ') and self.text[pos] in ' \n': after = after[: -1] # remove the last space if we are already on a space if not self.last_completion: space_before_cursor = self.text.rfind(' ', 0, pos) + line_before_cursor = self.text.rfind('\n', 0, pos) + if line_before_cursor > space_before_cursor: + space_before_cursor = line_before_cursor if space_before_cursor != -1: begin = self.text[space_before_cursor + 1:pos] else: -- cgit v1.2.3