Editor.OpenFile()の挙動について
-
"ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ"を作成しているkazyと申します。
何年かぶりに、コーディングする機会があり、Meryを利用しました。
自分が作ったマクロがあったと思い、見てみると「なんじゃこりゃ」という感じだったので、作り直しました。
その際、以前は気になっていなかったところですが、
ジャンプ先のファイルでカーソル位置がうまく変更できないことに気付きました。以前のマクロではActiveDocumentプロパティでDocumentオブジェクトを取得していました(なんでこんなことしたんだ)。そこで取得できるのはジャンプ先のDocumentオブジェクトでない場合がありました。
そこで、開いているDocumentオブジェクトのフルパスをキーにして、ジャンプ先として開いたDocumentオブジェクトを取得するようにしました。マクロの仕様として、Editor.OpenFile()が開いたDocumentオブジェクトを返してくれるとすごく便利だと思うのですが、どうでしょう。
| kazy | 返信 -
こんばんは、書き込みありがとうございます。
何年かぶりの Mery 起動、ありがとうございます ^^ctags.exe で tags ファイルを生成するマクロ、覚えています。このマクロに影響されて、ctags.exe でツリー表示するプラグイン (MeryWiki のクラスビュープラグイン) を作った思い出があります。
> 以前のマクロではActiveDocumentプロパティでDocumentオブジェクトを取得していました(なんでこんなことしたんだ)。
現状では、Editor.OpenFile() で新たに開いた Document オブジェクトにアクセスする手段が ActiveDocument プロパティしかないので、これを使われていたのではないでしょうか?> そこで取得できるのはジャンプ先のDocumentオブジェクトでない場合がありました。
一応、ActiveDocument を使えば Editor.OpenFile() した Document オブジェクトになるはずなのですが、確かにプログラム上、確実なものではなく、たぶんそうなるよ的なレベルではあります。> マクロの仕様として、Editor.OpenFile()が開いたDocumentオブジェクトを返してくれるとすごく便利だと思うのですが、どうでしょう。
それが一番確実だと思いますね。
現状、Editor.OpenFile() は戻り値無しなので、戻り値を設けたところで既存のマクロには影響なさそうですし、実装できそうであればそうしたいと思います。…と思って実装部のソースを見てみたら、ずいぶん昔に書いたヤツなので解読に時間がかかりそうな…。ちょっとすぐには難しいかもしれませんが、前向きに検討してみたいと思います。
| Kuro | 返信 -
早速、お返事ありがとうございます。
マクロを作ろうと思うようになったのが、Meryを使ってよかったことです。
windows環境にmeryのようなミニマリズムを備えたエディタは貴重だと思っています。
頑張ってください。| kazy | 返信 -
ご返信ありがとうございます。
> マクロを作ろうと思うようになったのが、Meryを使ってよかったことです。
ありがとうございます。とくにマクロ機能をウリにしたり紹介したこともないのですが、Mery からマクロや JavaScript に興味をもってくれるかたも多いようで、ありがたい限りです。> windows環境にmeryのようなミニマリズムを備えたエディタは貴重だと思っています。
私も、スキマ産業ではないですが、そういった需要を想定して開発しているのですが、かれこれ 10 年をこえてもいまだに Te〇aPad さんに追いつけないのが現状です ^^;> 頑張ってください。
今後とも応援よろしくお願いいたします。| Kuro | 返信