import method

class CheckSpelling(method.Method):
    """Check the spelling of a buffer via ispell"""
    ispell_args = ('ispell', '-x', '-M')
    def _execute(self, w, **vargs):
        # -x   no backup file
        # -M   show context menu
        if w.buffer.changed():
            w.set_error("There are unsaved changes; please save first.")
            return
        l = list(self.ispell_args)
        l.append(w.buffer.path)
        w.application.run_external(*l)
        if w.buffer.changed_on_disk():
            w.buffer.reload()