MCPcopy Index your code
hub / github.com/dbcli/pgcli / pgcli_bindings

Function pgcli_bindings

pgcli/key_bindings.py:17–132  ·  view source on GitHub ↗

Custom key bindings for pgcli.

(pgcli)

Source from the content-addressed store, hash-verified

15
16
17def pgcli_bindings(pgcli):
18 """Custom key bindings for pgcli."""
19 kb = KeyBindings()
20
21 tab_insert_text = " " * 4
22
23 @kb.add("f2")
24 def _(event):
25 """Enable/Disable SmartCompletion Mode."""
26 _logger.debug("Detected F2 key.")
27 pgcli.completer.smart_completion = not pgcli.completer.smart_completion
28
29 @kb.add("f3")
30 def _(event):
31 """Enable/Disable Multiline Mode."""
32 _logger.debug("Detected F3 key.")
33 pgcli.multi_line = not pgcli.multi_line
34
35 @kb.add("f4")
36 def _(event):
37 """Toggle between Vi and Emacs mode."""
38 _logger.debug("Detected F4 key.")
39 pgcli.vi_mode = not pgcli.vi_mode
40 event.app.editing_mode = EditingMode.VI if pgcli.vi_mode else EditingMode.EMACS
41
42 @kb.add("f5")
43 def _(event):
44 """Toggle between Vi and Emacs mode."""
45 _logger.debug("Detected F5 key.")
46 pgcli.explain_mode = not pgcli.explain_mode
47
48 @kb.add("tab")
49 def _(event):
50 """Force autocompletion at cursor on non-empty lines."""
51
52 _logger.debug("Detected <Tab> key.")
53
54 buff = event.app.current_buffer
55 doc = buff.document
56
57 if doc.on_first_line or doc.current_line.strip():
58 if buff.complete_state:
59 buff.complete_next()
60 else:
61 buff.start_completion(select_first=True)
62 else:
63 buff.insert_text(tab_insert_text, fire_event=False)
64
65 @kb.add("escape", filter=has_completions)
66 def _(event):
67 """Force closing of autocompletion."""
68 _logger.debug("Detected <Esc> key.")
69
70 event.current_buffer.complete_state = None
71 event.app.current_buffer.complete_state = None
72
73 @kb.add("c-space")
74 def _(event):

Callers 1

_build_cliMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected