Editor.OpenFile()の挙動について

  1. "ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ"を作成しているkazyと申します。
    何年かぶりに、コーディングする機会があり、Meryを利用しました。
    自分が作ったマクロがあったと思い、見てみると「なんじゃこりゃ」という感じだったので、作り直しました。
    その際、以前は気になっていなかったところですが、
    ジャンプ先のファイルでカーソル位置がうまく変更できないことに気付きました。

    以前のマクロではActiveDocumentプロパティでDocumentオブジェクトを取得していました(なんでこんなことしたんだ)。そこで取得できるのはジャンプ先のDocumentオブジェクトでない場合がありました。
    そこで、開いているDocumentオブジェクトのフルパスをキーにして、ジャンプ先として開いたDocumentオブジェクトを取得するようにしました。

    マクロの仕様として、Editor.OpenFile()が開いたDocumentオブジェクトを返してくれるとすごく便利だと思うのですが、どうでしょう。

     |  kazy  |  返信
  2. こんばんは、書き込みありがとうございます。
    何年かぶりの Mery 起動、ありがとうございます ^^

    ctags.exe で tags ファイルを生成するマクロ、覚えています。このマクロに影響されて、ctags.exe でツリー表示するプラグイン (MeryWiki のクラスビュープラグイン) を作った思い出があります。

    > 以前のマクロではActiveDocumentプロパティでDocumentオブジェクトを取得していました(なんでこんなことしたんだ)。
    現状では、Editor.OpenFile() で新たに開いた Document オブジェクトにアクセスする手段が ActiveDocument プロパティしかないので、これを使われていたのではないでしょうか?

    > そこで取得できるのはジャンプ先のDocumentオブジェクトでない場合がありました。
    一応、ActiveDocument を使えば Editor.OpenFile() した Document オブジェクトになるはずなのですが、確かにプログラム上、確実なものではなく、たぶんそうなるよ的なレベルではあります。

    > マクロの仕様として、Editor.OpenFile()が開いたDocumentオブジェクトを返してくれるとすごく便利だと思うのですが、どうでしょう。
    それが一番確実だと思いますね。
    現状、Editor.OpenFile() は戻り値無しなので、戻り値を設けたところで既存のマクロには影響なさそうですし、実装できそうであればそうしたいと思います。

    …と思って実装部のソースを見てみたら、ずいぶん昔に書いたヤツなので解読に時間がかかりそうな…。ちょっとすぐには難しいかもしれませんが、前向きに検討してみたいと思います。

     |  Kuro  |  返信
  3. 早速、お返事ありがとうございます。
    マクロを作ろうと思うようになったのが、Meryを使ってよかったことです。
    windows環境にmeryのようなミニマリズムを備えたエディタは貴重だと思っています。
    頑張ってください。

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

    > マクロを作ろうと思うようになったのが、Meryを使ってよかったことです。
    ありがとうございます。とくにマクロ機能をウリにしたり紹介したこともないのですが、Mery からマクロや JavaScript に興味をもってくれるかたも多いようで、ありがたい限りです。

    > windows環境にmeryのようなミニマリズムを備えたエディタは貴重だと思っています。
    私も、スキマ産業ではないですが、そういった需要を想定して開発しているのですが、かれこれ 10 年をこえてもいまだに Te〇aPad さんに追いつけないのが現状です ^^;

    > 頑張ってください。
    今後とも応援よろしくお願いいたします。

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