diff --git a/pgcli/completion_refresher.py b/pgcli/completion_refresher.py index 07c5a527..39a15cec 100644 --- a/pgcli/completion_refresher.py +++ b/pgcli/completion_refresher.py @@ -27,7 +27,7 @@ class CompletionRefresher(object): has completed the refresh. The newly created completion object will be passed in as an argument to each callback. """ - if self._completer_thread and self._completer_thread.is_alive(): + if self.is_refreshing(): self._restart_refresh.set() return [(None, None, None, 'Auto-completion refresh restarted.')] else: @@ -39,6 +39,9 @@ class CompletionRefresher(object): return [(None, None, None, 'Auto-completion refresh started in the background.')] + def is_refreshing(self): + return self._completer_thread and self._completer_thread.is_alive() + def _bg_refresh(self, pgexecute, special, callbacks): completer = PGCompleter(smart_completion=True, pgspecial=special) diff --git a/pgcli/main.py b/pgcli/main.py index ebc46abd..a034d9de 100755 --- a/pgcli/main.py +++ b/pgcli/main.py @@ -265,7 +265,9 @@ class PGCli(object): def prompt_tokens(cli): return [(Token.Prompt, '%s> ' % pgexecute.dbname)] - get_toolbar_tokens = create_toolbar_tokens_func(lambda: self.vi_mode) + get_toolbar_tokens = create_toolbar_tokens_func(lambda: self.vi_mode, + lambda: self.completion_refresher.is_refreshing()) + layout = create_default_layout(lexer=PostgresLexer, reserve_space_for_menu=True, get_prompt_tokens=prompt_tokens, diff --git a/pgcli/pgtoolbar.py b/pgcli/pgtoolbar.py index 610f9b8f..a8fa7627 100644 --- a/pgcli/pgtoolbar.py +++ b/pgcli/pgtoolbar.py @@ -1,6 +1,7 @@ from pygments.token import Token -def create_toolbar_tokens_func(get_vi_mode_enabled): + +def create_toolbar_tokens_func(get_vi_mode_enabled, get_is_refreshing): """ Return a function that generates the toolbar tokens. """ @@ -31,5 +32,8 @@ def create_toolbar_tokens_func(get_vi_mode_enabled): else: result.append((token.On, '[F4] Emacs-mode')) + if get_is_refreshing(): + result.append((token, ' Refreshing completions...')) + return result return get_toolbar_tokens