def update(self):
        si = self.current
        if si is None:
            return
        not_in_error = self.not_in_error()

        flags = sublime.DRAW_NO_FILL if _ST3 else sublime.DRAW_OUTLINED
        self.view.add_regions(REGION_FIND, si.regions, "text", "", flags)
        selected = si.selected or (not_in_error.selected and [not_in_error.selected[-1]]) or []
        self.view.add_regions(REGION_SELECTED, selected, "string", "", sublime.DRAW_NO_OUTLINE)
        if selected:
            self.view.show(selected[-1])

        status = ""
        if si != not_in_error or si.try_wrapped:
            status += "Failing "
        if self.current.wrapped:
            status += "Wrapped "
        status += "I-Search " + ("Forward" if self.current.forward else "Reverse")
        if si != not_in_error:
            if len(self.current.regions) > 0:
                status += " %s %s" % (pluralize("match", len(self.current.regions), "es"), ("above" if self.forward else "below"))
        else:
            n_cursors = min(len(si.selected), len(si.regions))
            status += (pluralize("match", len(si.regions), "es"), pluralize("cursor", n_cursors)) % " %s, %s"

        self.util.set_status(status)

    #
    # Try to make progress with the current search string. Even if we're currently failing (in our
    # current direction) it doesn't mean there aren't matches for what we've typed so far.
    #
dataset/ETHPy150Open grundprinzip/sublemacspro/jove.py/ISearchInfo.update/swapped operands of `%`