code: def edit_preferences(self):
          
          from spyder.preferences.configdialog import ConfigDialog
          dlg = ConfigDialog(self)
          dlg.size_change.connect(self.set_prefs_size)
          if self.prefs_dialog_size is not None:
              dlg.resize(self.prefs_dialog_size)
          for PrefPageClass in self.general_prefs:
              widget = PrefPageClass(dlg, main=self)
              widget.initialize()
              dlg.add_page(widget)
          for plugin in [self.workingdirectory, self.editor,
                         self.projects, self.ipyconsole,
                         self.historylog, self.help, self.variableexplorer,
                         self.onlinehelp, self.explorer, self.findinfiles
                         ]+self.thirdparty_plugins:
              if plugin is not None:
                  try:
                      widget = plugin.create_configwidget(dlg)
                      if widget is not None:
                          dlg.add_page(widget)
                  except Exception:
                      traceback.print_exc(file=sys.stderr)
          if self.prefs_index is not None:
              dlg.set_current_index(self.prefs_index)
          dlg.show()
          dlg.check_all_settings()
          dlg.pages_widget.currentChanged.connect(self.__preference_page_changed)
          dlg.exec_()
docs: Edit Spyder preferences