bash で実験したが
$ echo 1 $ echo 2 $ echo 3
と入力した後、Ctrl-P で echo 2 を呼び出して echo 2+ に変更すると、ヒストリ構造は一時的に
echo 1echo 2+echo 3
みたいになる。だが、だが、一旦 Enter を押すと
echo 1echo 2echo 3echo 2+
のように、echo 2 が復元され、echo 2+ が新エントリとして末尾に追加される。
go-readline-ny は一時動作までエミュレートできていないので、いずれちゃんと直さなくちゃなあ(誰も気にしていないようだが)
幸い、ヒストリまわりのインターフェイスの仕様の互換性は維持できそうだ
type IHistory interface {
Len() int
At(int) string
}
たぶん、唯一の問題はこの修正をリリースノートや、ChangeLog に、どのように書こうかという点だ。
追記 (2024-06-11)
- go-multiline-ny については v0.15.0 にて対応
- go-readline-ny でも一応対応済みだが、まだタグは打っていないので、無理やり使う場合は
go get -u github.com/nyaosorg/go-readline-ny@masterする必要あり