1
1
mirror of https://github.com/dbcli/pgcli.git synced 2024-10-06 10:17:15 +03:00

Print refreshing in toolbar

This commit is contained in:
Darik Gamble 2015-09-04 06:00:00 -04:00
parent 27d6cb31b6
commit 7ade315d36
3 changed files with 12 additions and 3 deletions

View File

@ -27,7 +27,7 @@ class CompletionRefresher(object):
has completed the refresh. The newly created completion has completed the refresh. The newly created completion
object will be passed in as an argument to each callback. 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() self._restart_refresh.set()
return [(None, None, None, 'Auto-completion refresh restarted.')] return [(None, None, None, 'Auto-completion refresh restarted.')]
else: else:
@ -39,6 +39,9 @@ class CompletionRefresher(object):
return [(None, None, None, return [(None, None, None,
'Auto-completion refresh started in the background.')] '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): def _bg_refresh(self, pgexecute, special, callbacks):
completer = PGCompleter(smart_completion=True, pgspecial=special) completer = PGCompleter(smart_completion=True, pgspecial=special)

View File

@ -265,7 +265,9 @@ class PGCli(object):
def prompt_tokens(cli): def prompt_tokens(cli):
return [(Token.Prompt, '%s> ' % pgexecute.dbname)] 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, layout = create_default_layout(lexer=PostgresLexer,
reserve_space_for_menu=True, reserve_space_for_menu=True,
get_prompt_tokens=prompt_tokens, get_prompt_tokens=prompt_tokens,

View File

@ -1,6 +1,7 @@
from pygments.token import Token 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. Return a function that generates the toolbar tokens.
""" """
@ -31,5 +32,8 @@ def create_toolbar_tokens_func(get_vi_mode_enabled):
else: else:
result.append((token.On, '[F4] Emacs-mode')) result.append((token.On, '[F4] Emacs-mode'))
if get_is_refreshing():
result.append((token, ' Refreshing completions...'))
return result return result
return get_toolbar_tokens return get_toolbar_tokens