code: def search(self, pattern, **kwargs):
          
  
          settings = foundations.data_structures.Structure(**{"case_sensitive": False,
                                                              "whole_word": False,
                                                              "regular_expressions": False,
                                                              "backward_search": False,
                                                              "wrap_around": True})
          settings.update(kwargs)
  
          self.__search_pattern = pattern
  
          if settings.regular_expressions:
              pattern = QRegExp(pattern)
              pattern.setCaseSensitivity(Qt.CaseSensitive if settings.case_sensitive else Qt.CaseInsensitive)
  
          flags = QTextDocument.FindFlags()
          if settings.case_sensitive:
              flags = flags | QTextDocument.FindCaseSensitively
          if settings.whole_word:
              flags = flags | QTextDocument.FindWholeWords
          if settings.backward_search:
              flags = flags | QTextDocument.FindBackward
  
          cursor = self.document().find(pattern, self.textCursor(), flags)
          if not cursor.isNull():
              self.setTextCursor(cursor)
              return True
          else:
              if settings.wrap_around:
                  self.store_text_cursor_anchor()
                  cursor = self.textCursor()
                  if settings.backward_search:
                      cursor.movePosition(QTextCursor.End, QTextCursor.MoveAnchor)
                  else:
                      cursor.movePosition(QTextCursor.Start, QTextCursor.MoveAnchor)
                  self.setTextCursor(cursor)
                  settings.wrap_around = False
                  if self.search(pattern, **settings):
                      return True
                  else:
                      self.restore_text_cursor_anchor()
docs: Searchs given pattern text in the document.
  
          Usage::
  
              >>> script_editor = Umbra.components_manager.get_interface("factory.script_editor")
              True
              >>> codeEditor = script_editor.get_current_editor()
              True
              >>> codeEditor.search(search_pattern, case_sensitive=True, whole_word=True, regular_expressions=True, \
  backward_search=True, wrap_around=True)
              True
  
          :param pattern: Pattern to search for.
          :type pattern: unicode
          :param \*\*kwargs: Search settings.
          :type \*\*kwargs: dict
          :return: Method success.
          :rtype: bool