code: def show(self, hide_replace=True):
          
          QWidget.show(self)
          self.visibility_changed.emit(True)
          self.change_number_matches()
          if self.editor is not None:
              if hide_replace:
                  if self.replace_widgets[0].isVisible():
                      self.hide_replace()
              text = self.editor.get_selected_text()
              # When selecting several lines, and replace box is activated the
              # text won't be replaced for the selection
              if hide_replace or len(text.splitlines())<=1:
                  highlighted = True
                  # If no text is highlighted for search, use whatever word is
                  # under the cursor
                  if not text:
                      highlighted = False
                      try:
                          cursor = self.editor.textCursor()
                          cursor.select(QTextCursor.WordUnderCursor)
                          text = to_text_string(cursor.selectedText())
                      except AttributeError:
                          # We can't do this for all widgets, e.g. WebView's
                          pass
      
                  # Now that text value is sorted out, use it for the search
                  if text and not self.search_text.currentText() or highlighted:
                      self.search_text.setEditText(text)
                      self.search_text.lineEdit().selectAll()
                      self.refresh()
                  else:
                      self.search_text.lineEdit().selectAll()
              self.search_text.setFocus()
docs: Overrides Qt Method