Mery3.2.xとそれ以前(3.1.x)でウィンドウ上下分割時の優先ペイン(?)の仕様が変わった?

  1. バージョンアップ内容や少し以前からのフォーラム投稿を遡っても見当たらない(気がする)ので確認になります。

    _
    Mery3.1.xと3.2.xでウィンドウ上下分割をおこなったときの挙動に関して。
    (ここでは、分割後のそれぞれの表示領域を「ペイン」と呼称します)

    ○上下分割時:
    3.1.x → 上ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)
    3.2.x → 下ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)

    ○上下分割解除時:
    3.1.x → 上ペインを表示対象として、結合。
      (上ペインの表示位置情報で結合後の表示内容が決まる)
    3.2.x → 下ペインが表示対象として、結合。
      (下ペインの表示位置情報で結合後の表示内容が決まる)

    __
    3.1.xまでの挙動を意図して、ウィンドウ上下分割→マクロ実行(カーソル先頭位置へ戻す)していて、改めて気になりました。

    P.S.
    ウィンドウ上下分割時→分割解除で上下が変わったことには気が付いて、まぁ慣れればいいか、と報告していなかった。(^^ゞ

     |  noname  |  返信
  2. > ○上下分割時:
    > 3.1.x → 上ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)
    > 3.2.x → 下ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)

    「マクロでのカーソル移動に追従した表示更新の対象」という意味になります。

     |  noname  |  返信
  3. #連投で申し訳ありません。
    > > ○上下分割時:
    > > 3.1.x → 上ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)
    > > 3.2.x → 下ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)
    >
    > 「マクロでのカーソル移動に追従した表示更新の対象」という意味になります。

    たとえば、
    0.文章を開く
    1.ウィンドウ上下分割
    2.マクロ実行(何某かの処理を経てから、カーソルを文頭へ戻して終わる)

    1~2の間で操作対象ペインの変更を行なっていない場合、

    3.1.x:手順2のマクロによるカーソル移動は、上ペインへ行われる
    3.2.x:手順2のマクロによるカーソル移動は、下ペインへ行われる

    という挙動になるのは、意図されたモノか、という確認です。

     |  noname  |  返信
  4. ご報告ありがとうございます。

    ウィンドウ分割ですが、Ver 3.1.0 以降で機能改善のため大幅な見直しと仕様変更を行っています。

    バージョンアップ内容では以下に該当します。

    --------------------------------
    Ver 3.1.0
    ・ウィンドウを分割したときにそれぞれのエディターでカーソル位置と選択範囲を保持できるようにした

    Ver 3.2.0
    ・ウィンドウ分割で選択範囲がないときもカーソル位置を同期するようにしてみた

    Ver 3.2.2
    ・折り返し位置が変更されたときにスクロールバーの位置をなるべく保持するようにした

    関連スレッド
    https://www.haijin-boys.com/discussions/5607
    https://www.haijin-boys.com/discussions/5654
    https://www.haijin-boys.com/discussions/5686
    https://www.haijin-boys.com/discussions/5772
    --------------------------------

    > ○上下分割時:
    > 3.1.x → 上ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)
    > 3.2.x → 下ペインがマクロのカーソル移動系の対象(文頭に戻す、末尾など)

    Ver 3.1.0 ですでに仕様は変わっているので、上の例では 3.0.4 以前と 3.1.0 以降の差になりますね。

    ややこしいので「従来」と表現させていただきますね。

    上記の動作はちょっと誤解があるようで、従来もマクロのカーソル移動系の対象が上ペインに固定されていたわけではありません。

    マクロによるカーソル移動の対象となるのは現在アクティブなペイン (フォーカスがあるペイン) となっており、これは従来から変更はありません。

    > ○上下分割解除時:
    > 3.1.x → 上ペインを表示対象として、結合。
    >   (上ペインの表示位置情報で結合後の表示内容が決まる)
    > 3.2.x → 下ペインが表示対象として、結合。
    >   (下ペインの表示位置情報で結合後の表示内容が決まる)

    Ver 3.1.0 以降での分割解除時ですが、下ペインというわけではなく、分割解除のときにフォーカスがあったほうのペインを表示対象として結合するようになりました。

    > 0.文章を開く
    > 1.ウィンドウ上下分割
    > 2.マクロ実行(何某かの処理を経てから、カーソルを文頭へ戻して終わる)
    >
    > 1~2の間で操作対象ペインの変更を行なっていない場合、
    >
    > 3.1.x:手順2のマクロによるカーソル移動は、上ペインへ行われる
    > 3.2.x:手順2のマクロによるカーソル移動は、下ペインへ行われる
    >
    > という挙動になるのは、意図されたモノか、という確認です。

    そうなりますね。

    まず、マクロの仕様が変更されたということはありません。

    Ver 3.1.0 以降では [上下に分割] のコマンドを実行した場合、フォーカスが自動的に新たに作成されたペイン (上下分割の場合は下ペイン) に移動するようになっています。

    そのため、[上下に分割] を実行した直後にマクロを実行すると、現在フォーカスのある下ペインでカーソル移動が行われるというわけです。

    これらの仕様は意図したものであり、有名どころのエディターですと Visual Studio Code や Visual Studio 2019、Atom などがこの操作性になっています。

     |  Kuro  |  返信
  5. 当方で従前のバージョンをうろ覚えで記述しておりました。
    申し訳ありません。

    マクロによるカーソル移動の挙動に関しては、ご説明通り、アクティブ側で作用することを確認しました。

    _
    > > ○上下分割解除時:
    > > 3.1.x → 上ペインを表示対象として、結合。
    > >   (上ペインの表示位置情報で結合後の表示内容が決まる)
    > > 3.2.x → 下ペインが表示対象として、結合。
    > >   (下ペインの表示位置情報で結合後の表示内容が決まる)
    >
    > Ver 3.1.0 以降での分割解除時ですが、下ペインというわけではなく、分割解除のときにフォーカスがあったほうのペインを表示対象として結合するようになりました。

    現在、当方が使用しているVer. 3.2.1 では、上下分割解除後の結合時、必ず下ペインが表示対象として結合されます。
    以下が、再現手順です。

    1.既存ファイルを開く。
    2.ウィンドウ上下分割を行う。
    3.上下ペインである程度、別々の領域が表示されるようにする。
     (事象を分かりやすくするため。)
    4.上ペインにフォーカスがある状態(カーソル操作や編集など)にする。
    5.ウィンドウ上下分割を解除して、結合させる。

    ※結合後、右端のスクロールバーの表示領域とカーソル位置が食い違う。
     (分割時に離れた場所を表示するようにしているとわかりやすい)

    同手順4で下ペインにしたとき、上ペインが表示対象にはならず、下ペインになります。

    _
    なお、最新版(Ver. 3.2.3)での挙動確認は行っておりません。

    最新版(Ver. 3.2.3)で、先のKuroさんのコメント通り、フォーカスされている(=編集操作やカーソル移動などで有効になった)ペインが、結合後の表示対象となるようなら、問題ありません。
    (=バージョンアップで解消できるため)

     |  noname  |  返信
  6. ご返信ありがとうございます。

    > > Ver 3.1.0 以降での分割解除時ですが、下ペインというわけではなく、分割解除のときにフォーカスがあったほうのペインを表示対象として結合するようになりました。
    >
    > 現在、当方が使用しているVer. 3.2.1 では、上下分割解除後の結合時、必ず下ペインが表示対象として結合されます。

    説明不足だったようですみません。

    Ver 3.2.1 での分割解除時は、分割解除のときにフォーカスがあったほうのペインの「カーソル位置」と「選択状態」のみが引き継がれます。

    「スクロール位置」の保持については折り返し位置との兼ね合いもあり、様々なエディターの仕様を検証した後、Ver 3.2.2 で対応済みとなっています。

    変更ログとしては以下に該当します。
    --------------------------------
    Ver 3.2.2
    ・折り返し位置が変更されたときにスクロールバーの位置をなるべく保持するようにした

    【ペインを分割したときのカーソル位置】
    https://www.haijin-boys.com/discussions/5772
    --------------------------------

    ブログ記事にてなるべく更新内容とフォーラムのトピックを紐づけて紹介するよう心がけてはいますが、内容が伝わりづらい部分もあるかと思います。

    変更ログの内容はフォーラムに問い合わせいただいた内容をもとに、トピックの投稿者さんに分かりやすいような要点のみを記載させていただいていますので、ご了承くださいませ。

     |  Kuro  |  返信
  7. > 「スクロール位置」の保持については折り返し位置との兼ね合いもあり、様々なエディターの仕様を検証した後、Ver 3.2.2 で対応済みとなっています。

    スクロール保持するようになってたんですね、Ver 3.2.3で確認しました。
    今までWebで拾ったMeryコードを調整したプラグインを上下分割の代わりに使ってたのですがそれを無効にしました。
    使ってないとはいえ縦書きにはそれは対応してなかったのでよかったです。

     |  MM  |  返信
  8. ご確認いただきありがとうございます。
    そんなプラグインがあるんですね、面白そうです。

    スクロール位置の保持は Visual Studio Code の挙動を研究してなるべくそれっぽく実装してみましたがなかなか苦戦しました ^^;

    Ver 3.2.3 ではウィンドウ分割時の別窓のカーソル位置の保持がうまくいかないバグがあるようなので、次のバージョンではそのあたりも改善したいと思います。

     |  Kuro  |  返信
スポンサーリンク