def hit(self, view):
        if not ST3:
            self.check(view.id())

        self.checked.add(view.id())
        if view.size() == 0:
            g = GrammarChecker.get_checker(view.id())
            if g:
                g.clear()
            GrammarChecker.reload()
            sublime.set_timeout(lambda: view.erase_status('checkbounce-grammar'), 0)
            return

        const.grammar_queue.hit(view)
    def on_selection_modified(self, view):
        vid = view.id()
        if vid in const.grammar_errors:
            gram_regions = const.grammar_error_regions[vid]
            try:
                sel = view.sel()[0]
            except IndexError:
                view.erase_status('checkbounce-grammar')
                return
            for region in gram_regions:
                if sel.intersects(region):
                    c = GrammarChecker.get_checker(vid)
                    if c:
                        expl = c.get_explanation_for_region(region)
                        if expl:
                            view.set_status('checkbounce-grammar', expl)
                            return

            view.erase_status('checkbounce-grammar')
        else:
            view.erase_status('checkbounce-grammar')