MCPcopy Create free account
hub / github.com/dbcli/mycli / mycli_bindings

Function mycli_bindings

mycli/key_bindings.py:67–331  ·  view source on GitHub ↗

Custom key bindings for mycli.

(mycli)

Source from the content-addressed store, hash-verified

65
66
67def mycli_bindings(mycli) -> KeyBindings:
68 """Custom key bindings for mycli."""
69 kb = KeyBindings()
70
71 @kb.add('f1')
72 def _(event: KeyPressEvent) -> None:
73 """Open browser to documentation index."""
74 _logger.debug('Detected F1 key.')
75 webbrowser.open_new_tab(DOCS_URL)
76 prompt_toolkit.application.run_in_terminal(print_f1_help)
77 safe_invalidate_display(event.app)
78
79 @kb.add('escape', '[', 'P')
80 def _(event: KeyPressEvent) -> None:
81 """Open browser to documentation index."""
82 _logger.debug("Detected alternate F1 key sequence.")
83 webbrowser.open_new_tab(DOCS_URL)
84 prompt_toolkit.application.run_in_terminal(print_f1_help)
85 safe_invalidate_display(event.app)
86
87 @kb.add("f2")
88 def _(_event: KeyPressEvent) -> None:
89 """Enable/Disable SmartCompletion Mode."""
90 _logger.debug("Detected F2 key.")
91 mycli.completer.smart_completion = not mycli.completer.smart_completion
92
93 @kb.add('escape', '[', 'Q')
94 def _(_event: KeyPressEvent) -> None:
95 """Enable/Disable SmartCompletion Mode."""
96 _logger.debug("Detected alternate F2 key sequence.")
97 mycli.completer.smart_completion = not mycli.completer.smart_completion
98
99 @kb.add("f3")
100 def _(_event: KeyPressEvent) -> None:
101 """Enable/Disable Multiline Mode."""
102 _logger.debug("Detected F3 key.")
103 mycli.multi_line = not mycli.multi_line
104
105 @kb.add('escape', '[', 'R')
106 def _(_event: KeyPressEvent) -> None:
107 """Enable/Disable Multiline Mode."""
108 _logger.debug('Detected alternate F3 key sequence.')
109 mycli.multi_line = not mycli.multi_line
110
111 @kb.add("f4")
112 def _(event: KeyPressEvent) -> None:
113 """Toggle between Vi and Emacs mode."""
114 _logger.debug("Detected F4 key.")
115 if mycli.key_bindings == "vi":
116 event.app.editing_mode = EditingMode.EMACS
117 mycli.key_bindings = "emacs"
118 event.app.ttimeoutlen = mycli.emacs_ttimeoutlen
119 else:
120 event.app.editing_mode = EditingMode.VI
121 mycli.key_bindings = "vi"
122 event.app.ttimeoutlen = mycli.vi_ttimeoutlen
123
124 @kb.add('escape', '[', 'S')

Callers 1

main_replFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected