# hazwaz.mixins module

class hazwaz.mixins.ExternalEditorMixin

  Bases: `object`

  Add facilities to open a file in an external editor to a Command.

  edit_file_in_external_editor(filepath: str) → bool

    Open filepath in an external editor and wait for it to be closed.

    Return whether opening the file was succesful. This tries to cycle through all editors listed in self.editors.

  editors = [(None, '$EDITOR (set to {editor})'), ('sensible-editor', 'sensible-editor'), ('vi', 'vi')]

    A list of editors to try.

    Defaults to the value of `$EDITOR`, followed by `sensible-editor`, followed by `vi` as a last resort.

    Each editor should be a tuple `(<executable>, <name>)`, where `<name>` is printed in case of errors.

    To write unittests that use this mixin, you can override this attribute with `[("true", "true")]`.