Custom key bindings for mssqlcli.
(mssql_cli)
| 7 | |
| 8 | |
| 9 | def mssqlcli_bindings(mssql_cli): |
| 10 | """ |
| 11 | Custom key bindings for mssqlcli. |
| 12 | """ |
| 13 | key_bindings = KeyBindings() |
| 14 | |
| 15 | @key_bindings.add(u'f2') |
| 16 | def _(event): |
| 17 | """ |
| 18 | Enable/Disable SmartCompletion Mode. |
| 19 | """ |
| 20 | del event # event is unused |
| 21 | _logger.debug('Detected F2 key.') |
| 22 | mssql_cli.completer.smart_completion = not mssql_cli.completer.smart_completion |
| 23 | |
| 24 | @key_bindings.add(u'f3') |
| 25 | def _(event): |
| 26 | """ |
| 27 | Enable/Disable Multiline Mode. |
| 28 | """ |
| 29 | del event # event is unused |
| 30 | _logger.debug('Detected F3 key.') |
| 31 | mssql_cli.multiline = not mssql_cli.multiline |
| 32 | |
| 33 | @key_bindings.add(u'f4') |
| 34 | def _(event): |
| 35 | """ |
| 36 | Toggle between Vi and Emacs mode. |
| 37 | """ |
| 38 | _logger.debug('Detected F4 key.') |
| 39 | mssql_cli.vi_mode = not mssql_cli.vi_mode |
| 40 | event.app.editing_mode = EditingMode.VI if mssql_cli.vi_mode else EditingMode.EMACS |
| 41 | |
| 42 | @key_bindings.add(u'tab') |
| 43 | def _(event): |
| 44 | """ |
| 45 | Force autocompletion at cursor. |
| 46 | """ |
| 47 | _logger.debug('Detected <Tab> key.') |
| 48 | b = event.app.current_buffer |
| 49 | if b.complete_state: |
| 50 | b.complete_next() |
| 51 | else: |
| 52 | b.start_completion(select_first=True) |
| 53 | |
| 54 | @key_bindings.add(u'c-space') |
| 55 | def _(event): |
| 56 | """ |
| 57 | Initialize autocompletion at cursor. |
| 58 | |
| 59 | If the autocompletion menu is not showing, display it with the |
| 60 | appropriate completions for the context. |
| 61 | |
| 62 | If the menu is showing, select the next completion. |
| 63 | """ |
| 64 | _logger.debug('Detected <C-Space> key.') |
| 65 | |
| 66 | b = event.app.current_buffer |