Composers and readers did not work as expected. It is just not possible for
himalaya to spawn a command that spawns $EDITOR, piping and redirection cannot
satisfy all the needs. Either the $EDITOR does not spawn (hangs over), either
himalaya does not collect any output from edition. The simplest way is to use an
intermediate temp file, or use process substitution. For eg., using mml:
mml compose >(himalaya message send)
You can also write into a file then feed himalaya with it.
* feat: Add configs for `reply-with` and `forward-with` commands
Config extended from:
(Old)
```toml
[message.composer.mml]
command = "mml compose"
```
, where `compose-with`, `reply-with`, and `forward-with`
all share the same composer command, to:
(New)
```toml
[message.composer.mml]
default = true
compose-command = "mml compose"
reply-command = "mml reply"
forward-command = "mml forward"
```
* docs: ComposerConfig
* refactor(account): simplify composer resolution with `get_composer`
- Implement `Account::get_composer`, and `Account::get_reader`
to fetch config by name or default.
- Remove the redundant `resolve_composer`, `default_composer`
`resolve_reader`, and `default_reader` helpers.
- Simplify the configuration retrieval architecture.
* refactor: update composer and reader config to use std::process::Command
- Remove `_command` suffix from `compose`, `reply`,
and `forward` configuration fields.
- Replace composer and reader config command type
from `String` to `std::process::Command`.
- Remove `Clone` derives from `Config`, `Account`, and
related structs due to `Command` type limitations.
Refs: #687