Python prompt_toolkit.filters.has_focus() Examples
The following are 7
code examples of prompt_toolkit.filters.has_focus().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
prompt_toolkit.filters
, or try the search function
.
Example #1
Source File: key_bindings.py From pymux with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _load_prefix_binding(self): """ Load the prefix key binding. """ pymux = self.pymux # Remove previous binding. if self._prefix_binding: self.custom_key_bindings.remove_binding(self._prefix_binding) # Create new Python binding. @self.custom_key_bindings.add(*self._prefix, filter= ~(HasPrefix(pymux) | has_focus(COMMAND) | has_focus(PROMPT) | WaitsForConfirmation(pymux))) def enter_prefix_handler(event): " Enter prefix mode. " pymux.get_client_state().has_prefix = True self._prefix_binding = enter_prefix_handler
Example #2
Source File: layout.py From pyvim with BSD 3-Clause "New" or "Revised" License | 6 votes |
def __init__(self, editor): def get_formatted_text(): eb = editor.window_arrangement.active_editor_buffer lineno = eb.buffer.document.cursor_position_row errors = eb.report_errors for e in errors: if e.lineno == lineno: return e.formatted_text return [] super(ReportMessageToolbar, self).__init__( FormattedTextToolbar(get_formatted_text), filter=~has_focus(editor.command_buffer) & ~is_searching & ~has_focus('system'))
Example #3
Source File: key_bindings.py From pymux with BSD 3-Clause "New" or "Revised" License | 5 votes |
def add_custom_binding(self, key_name, command, arguments, needs_prefix=False): """ Add custom binding (for the "bind-key" command.) Raises ValueError if the give `key_name` is an invalid name. :param key_name: Pymux key name, for instance "C-a" or "M-x". """ assert isinstance(key_name, six.text_type) assert isinstance(command, six.text_type) assert isinstance(arguments, list) # Unbind previous key. self.remove_custom_binding(key_name, needs_prefix=needs_prefix) # Translate the pymux key name into a prompt_toolkit key sequence. # (Can raise ValueError.) keys_sequence = pymux_key_to_prompt_toolkit_key_sequence(key_name) # Create handler and add to Registry. if needs_prefix: filter = HasPrefix(self.pymux) else: filter = ~HasPrefix(self.pymux) filter = filter & ~(WaitsForConfirmation(self.pymux) | has_focus(COMMAND) | has_focus(PROMPT)) def key_handler(event): " The actual key handler. " call_command_handler(command, self.pymux, arguments) self.pymux.get_client_state().has_prefix = False self.custom_key_bindings.add(*keys_sequence, filter=filter)(key_handler) # Store key in `custom_bindings` in order to be able to call # "unbind-key" later on. k = (needs_prefix, key_name) self.custom_bindings[k] = CustomBinding(key_handler, command, arguments)
Example #4
Source File: layout.py From pyvim with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, editor): super(CommandLine, self).__init__( Window( BufferControl( buffer=editor.command_buffer, input_processors=[BeforeInput(':')], lexer=create_command_lexer()), height=1), filter=has_focus(editor.command_buffer))
Example #5
Source File: layout.py From pyvim with BSD 3-Clause "New" or "Revised" License | 5 votes |
def _bufferlist_overlay_visible(editor): """ True when the buffer list overlay should be displayed. (This is when someone starts typing ':b' or ':buffer' in the command line.) """ @Condition def overlay_is_visible(): app = get_app() text = editor.command_buffer.text.lstrip() return app.layout.has_focus(editor.command_buffer) and ( any(text.startswith(p) for p in ['b ', 'b! ', 'buffer', 'buffer!'])) return overlay_is_visible
Example #6
Source File: layout.py From pyvim with BSD 3-Clause "New" or "Revised" License | 4 votes |
def __init__(self, editor, editor_buffer): def get_text(): app = get_app() insert_mode = app.vi_state.input_mode in (InputMode.INSERT, InputMode.INSERT_MULTIPLE) replace_mode = app.vi_state.input_mode == InputMode.REPLACE sel = editor_buffer.buffer.selection_state temp_navigation = app.vi_state.temporary_navigation_mode visual_line = sel is not None and sel.type == SelectionType.LINES visual_block = sel is not None and sel.type == SelectionType.BLOCK visual_char = sel is not None and sel.type == SelectionType.CHARACTERS def mode(): if get_app().layout.has_focus(editor_buffer.buffer): if insert_mode: if temp_navigation: return ' -- (insert) --' elif editor.paste_mode: return ' -- INSERT (paste)--' else: return ' -- INSERT --' elif replace_mode: if temp_navigation: return ' -- (replace) --' else: return ' -- REPLACE --' elif visual_block: return ' -- VISUAL BLOCK --' elif visual_line: return ' -- VISUAL LINE --' elif visual_char: return ' -- VISUAL --' return ' ' def recording(): if app.vi_state.recording_register: return 'recording ' else: return '' return ''.join([ ' ', recording(), (editor_buffer.location or ''), (' [New File]' if editor_buffer.is_new else ''), ('*' if editor_buffer.has_unsaved_changes else ''), (' '), mode(), ]) super(WindowStatusBar, self).__init__( get_text, style='class:toolbar.status')
Example #7
Source File: layout.py From pyvim with BSD 3-Clause "New" or "Revised" License | 4 votes |
def __init__(self, editor, window_arrangement): self.editor = editor # Back reference to editor. self.window_arrangement = window_arrangement # Mapping from (`window_arrangement.Window`, `EditorBuffer`) to a frame # (Layout instance). # We keep this as a cache in order to easily reuse the same frames when # the layout is updated. (We don't want to create new frames on every # update call, because that way, we would loose some state, like the # vertical scroll offset.) self._frames = {} self._fc = FloatContainer( content=VSplit([ Window(BufferControl()) # Dummy window ]), floats=[ Float(xcursor=True, ycursor=True, content=CompletionsMenu(max_height=12, scroll_offset=2, extra_filter=~has_focus(editor.command_buffer))), Float(content=BufferListOverlay(editor), bottom=1, left=0), Float(bottom=1, left=0, right=0, height=1, content=ConditionalContainer( CompletionsToolbar(), filter=has_focus(editor.command_buffer) & ~_bufferlist_overlay_visible(editor) & Condition(lambda: editor.show_wildmenu))), Float(bottom=1, left=0, right=0, height=1, content=ValidationToolbar()), Float(bottom=1, left=0, right=0, height=1, content=MessageToolbarBar(editor)), Float(content=WelcomeMessageWindow(editor), height=WELCOME_MESSAGE_HEIGHT, width=WELCOME_MESSAGE_WIDTH), ] ) search_toolbar = SearchToolbar(vi_mode=True, search_buffer=editor.search_buffer) self.search_control = search_toolbar.control self.layout = Layout(FloatContainer( content=HSplit([ TabsToolbar(editor), self._fc, CommandLine(editor), ReportMessageToolbar(editor), SystemToolbar(), search_toolbar, ]), floats=[ Float(right=0, height=1, bottom=0, width=5, content=SimpleArgToolbar()), ] ))