分割表示した時のマクロの挙動
-
左右に分割した時の右側、上下に分割した時の下側でおかしな挙動をするプロパティやメソッドがあるようです。
ScrollX・ScrollY プロパティは、右側・下側で編集してる時に取得や設定をしても、左側・上側で取得や設定をしたような挙動になります。
PageDown・PageUp メソッドは、右側・下側で実行するとキャレットは1ページ分移動しますがスクロール位置は変わらず、その代わりに左側・上側のスクロール位置が移動してしまいます。
LineDown・LineUp メソッドは、キャレットが編集エリア外にある場合キャレットが編集エリア内にワープしてきますが、右側・下側で実行すると……説明が難しいので具体例で。
左側を10行目までスクロールした状態で右側の1行目にキャレットを持っていき LineDown メソッドを実行すると2行目ではなく12行目に移動してしまいます。
そもそもこのワープ機能はキーボードの上下キーを押したときは凄く便利ですが、LineDown・LineUp メソッドだと混乱しそうな気も……。ポップアップメニューの Track メソッドは、リファレンスに定数が載ってないですが引数に偶数を指定するとキャレットの位置にポップアップを表示する仕様だと思います。
右側・下側にキャレットがある時に、引数が偶数の Track メソッドを実行すると、左側・上側にポップアップが表示されてしまいます。あと、これは分割表示とは関係ないですが今回いろいろ試しているときに気になることがありました。
マクロでキャレットの位置にポップアップを表示する際、キャレットが編集エリア外にある場合、縦方向は編集エリア内の端に表示されるのですが、横方向は Mery のウィンドウを飛び出して表示されてしまいます。
また試しに Shift + F10 でコンテキストメニューを表示させようとすると、キャレットが編集エリア外の左・右・下にあると表示されませんでした。環境は Windows 10 1803 / Mery (x64) 2.6.12 です。
以上、長々と書いてしまいましたが、少し違和感のある挙動ですが実害はないので、お手すきの際にご確認いただければと思います。
| ucky | 返信 -
現在のところマクロ機能の仕様上、分割ウィンドウには対応していない機能がございます。
私も将来的にはこれらを改善したいと考えていますが、マクロの仕組みが、直接機能を呼び出しているもの (メインエディタに発動) と、キーボード操作をエミュレートしているもの (アクティブなエディタに発動) が混在しており、これまでに作ってきたマクロのメソッド・プロパティの多さを考えると、これらすべてを整理するにはかなりの時間と精神力が必要となります。
(ScrollX や ScrollY などの位置操作系に限れば、プラグインからであればアクティブなエディタに対しての処理が可能です)
ご不便をおかけして申し訳ございませんが、将来的な課題ということでご了承いただけると幸いです。
| Kuro | 返信 -
ご確認ありがとうございます。
既知の問題でお手間を取らせてしまい申し訳ございません。
現在の仕様ということで承知しました。将来的に改善を考えられているとのことで嬉しいですが、かなり大変そうなので恐縮です。
どうか他の開発や私生活のご負担にならぬようにと思います。> ご不便をおかけして申し訳ございませんが、将来的な課題ということでご了承いただけると幸いです。
いえ、数バージョン前からの Chakra 対応で、より便利に使わせていただいてます。
| ucky | 返信 -
ご返信ありがとうございます。
> 将来的に改善を考えられているとのことで嬉しいですが、かなり大変そうなので恐縮です。
> どうか他の開発や私生活のご負担にならぬようにと思います。お気遣いありがとうございます。早めに気づいていれば、マクロのメソッドを実装するときに気を付けて作ったのですが、ご指摘を頂いたのが今年の年始ぐらいだったので、10 年間気づかなかったという。
マクロの総見直しとなりますから、結構やばそうです。
> いえ、数バージョン前からの Chakra 対応で、より便利に使わせていただいてます。
Chakra 対応は「チャクラ」っていう名前のインパクトしかなくて、普通のユーザさんには「?」な状態でした。実際にお役に立てているというお話を聞いたことがなかったので、お役に立てて良かったです。
あと、書き忘れていましたが、マクロでキャレットの位置が画面外に飛び出す件は調査してみます。
| Kuro | 返信