

def _create_options(self):
    '\n        Create a list of `Option` instances for the options sidebar.\n        '

    def enable(attribute, value=True):
        setattr(self, attribute, value)
        return True

    def disable(attribute):
        setattr(self, attribute, False)
        return True

    def simple_option(title, description, field_name, values=None):
        ' Create Simple on/of option. '
        values = (values or ['off', 'on'])

        def get_current_value(cli):
            return values[bool(getattr(self, field_name))]

        def get_values():
            return {
                values[1]: (lambda _: enable(field_name)),
                values[0]: (lambda _: disable(field_name)),
            }
        return Option(title=title, description=description, get_values=get_values, get_current_value=get_current_value)
    return [OptionCategory('Input', [Option(title='Input mode', description='Vi or emacs key bindings.', get_current_value=(lambda cli: cli.editing_mode), get_values=(lambda : {
        'vi': (lambda cli: setattr(cli, 'editing_mode', EditingMode.Vi)),
        'emacs': (lambda cli: setattr(cli, 'editing_mode', EditingMode.Emacs)),
    })), simple_option(title='Paste mode', description="When enabled, don't indent automatically.", field_name='paste_mode'), Option(title='Complete while typing', description='Generate autocompletions automatically while typing. Don\'t require pressing TAB. (Not compatible with "History search".)', get_current_value=(lambda cli: ['off', 'on'][self.complete_while_typing]), get_values=(lambda : {
        'on': (lambda _: (enable('complete_while_typing') and disable('enable_history_search'))),
        'off': (lambda _: disable('complete_while_typing')),
    })), Option(title='History search', description='When pressing the up-arrow, filter the history on input starting with the current text. (Not compatible with "Complete while typing".)', get_current_value=(lambda cli: ['off', 'on'][self.enable_history_search]), get_values=(lambda : {
        'on': (lambda _: (enable('enable_history_search') and disable('complete_while_typing'))),
        'off': (lambda _: disable('enable_history_search')),
    })), simple_option(title='Mouse support', description='Respond to mouse clicks and scrolling for positioning the cursor, selecting text and scrolling through windows.', field_name='enable_mouse_support'), simple_option(title='Confirm on exit', description='Require confirmation when exiting.', field_name='confirm_exit'), simple_option(title='Input validation', description='In case of syntax errors, move the cursor to the error instead of showing a traceback of a SyntaxError.', field_name='enable_input_validation'), simple_option(title='Auto suggestion', description='Auto suggest inputs by looking at the history. Pressing right arrow or Ctrl-E will complete the entry.', field_name='enable_auto_suggest'), Option(title='Accept input on enter', description='Amount of ENTER presses required to execute input when the cursor is at the end of the input. (Note that META+ENTER will always execute.)', get_current_value=(lambda cli: str((self.accept_input_on_enter or 'meta-enter'))), get_values=(lambda : {
        '2': (lambda _: enable('accept_input_on_enter', 2)),
        '3': (lambda _: enable('accept_input_on_enter', 3)),
        '4': (lambda _: enable('accept_input_on_enter', 4)),
        'meta-enter': (lambda _: enable('accept_input_on_enter', None)),
    }))]), OptionCategory('Display', [Option(title='Completions', description='Visualisation to use for displaying the completions. (Multiple columns, one column, a toolbar or nothing.)', get_current_value=(lambda cli: self.completion_visualisation), get_values=(lambda : {
        CompletionVisualisation.NONE: (lambda _: enable('completion_visualisation', CompletionVisualisation.NONE)),
        CompletionVisualisation.POP_UP: (lambda _: enable('completion_visualisation', CompletionVisualisation.POP_UP)),
        CompletionVisualisation.MULTI_COLUMN: (lambda _: enable('completion_visualisation', CompletionVisualisation.MULTI_COLUMN)),
        CompletionVisualisation.TOOLBAR: (lambda _: enable('completion_visualisation', CompletionVisualisation.TOOLBAR)),
    })), Option(title='Prompt', description="Visualisation of the prompt. ('>>>' or 'In [1]:')", get_current_value=(lambda cli: self.prompt_style), get_values=(lambda : dict(((s, (lambda _, s=s: enable('prompt_style', s))) for s in self.all_prompt_styles)))), simple_option(title='Blank line after output', description='Insert a blank line after the output.', field_name='insert_blank_line_after_output'), simple_option(title='Show signature', description='Display function signatures.', field_name='show_signature'), simple_option(title='Show docstring', description='Display function docstrings.', field_name='show_docstring'), simple_option(title='Show line numbers', description='Show line numbers when the input consists of multiple lines.', field_name='show_line_numbers'), simple_option(title='Show Meta+Enter message', description=('Show the [Meta+Enter] message when this key combination is required to execute commands. ' + '(This is the case when a simple [Enter] key press will insert a newline.'), field_name='show_meta_enter_message'), simple_option(title='Wrap lines', description='Wrap lines instead of scrolling horizontally.', field_name='wrap_lines'), simple_option(title='Show status bar', description='Show the status bar at the bottom of the terminal.', field_name='show_status_bar'), simple_option(title='Show sidebar help', description='When the sidebar is visible, also show this help text.', field_name='show_sidebar_help'), simple_option(title='Highlight parenthesis', description='Highlight matching parenthesis, when the cursor is on or right after one.', field_name='highlight_matching_parenthesis')]), OptionCategory('Colors', [Option(title='Code', description='Color scheme to use for the Python code.', get_current_value=(lambda cli: self._current_code_style_name), get_values=(lambda : dict(((name, (lambda _, name=name: self.use_code_colorscheme(name))) for name in self.code_styles)))), Option(title='User interface', description='Color scheme to use for the user interface.', get_current_value=(lambda cli: self._current_ui_style_name), get_values=(lambda : dict(((self, (lambda _, name=name: self.use_ui_colorscheme(name))) for name in self.ui_styles)))), simple_option(title='True color (24 bit)', description='Use 24 bit colors instead of 265 colors', field_name='true_color')])]

dataset/ETHPy150Open jonathanslenders/ptpython/ptpython/python_input.py PythonInput._create_options/VarMisuse@986/2099 `name`->`self`