docs: def show_menu(title, options, default=None, height=None, width=None, multiselect=False, precolored=False):
      """
      Shows an interactive menu in the terminal.
  
      Arguments:
          options: list of menu options
          default: initial option to highlight
          height: maximum height of the menu
          width: maximum width of the menu
          multiselect: allow multiple items to be selected?
          precolored: allow strings with embedded ANSI commands
  
      Returns:
          * If multiselect is True, returns a list of selected options.
          * If mutliselect is False, returns the selected option.
          * If an option is a 2-tuple, the first item will be displayed and the
            second item will be returned.
          * If menu is cancelled (Esc pressed), returns None.
          *
      Notes:
          * You can pass OptionGroup objects to `options` to create sub-headers
            in the menu.
      """
  
      plugins = [FilterPlugin()]
      if any(isinstance(opt, OptionGroup) for opt in options):
          plugins.append(OptionGroupPlugin())
      if title:
          plugins.append(TitlePlugin(title))
      if precolored:
          plugins.append(PrecoloredPlugin())
      menu = Termenu(options, default=default, height=height,
                     width=width, multiselect=multiselect, plugins=plugins)
      return menu.show()