[報告]マイマクロの登録等

  1. はじめまして、yukiと申します。
    いつもMery使わせていただいております。ありがとうございます。
    Ver.2では、編集モードのユーザー設定やアウトラインで編集モード毎の条件設定が可能となり、今まで以上に重宝しております。

    さてVer.2を使用して、気付いたことを報告させていただきます。

    ①マイマクロやプラグインが起動方法によって別ものと認識される
     Meryの起動方法によって、Mery.ini内の[Keyboard]や[StandardBar]に登録されるマクロやプラグインのID(MyMacrosXXX、PluginsXXX)が変わってしまいます。
    そのため、ショートカットキーや標準ツールバーに設定しても、使用できないことがあります。(ツールバーでは見えなくなります。)
    現在は該当する全てのマクロ・プラグインのIDに対して、ショートカットキーの割り当てやツールーバーの登録を行うことで対処しています。

    今のところ、以下の3種類の起動方法で変わるを確認しています。
    (a)エクスプローラーから実行ファイルをダブルクリック
    (b)コマンドプロンプトからフルパスで実行(コマンドプロンプトのディレクトリをMeryがあるフォルダで実行と(a)と同じになるようです。)
    (c)fenrirから起動(ランチャー、url:http://hp.vector.co.jp/authors/VA026310/)

    ②アウトラインプラグインの不具合?
     アウトラインプラグインでタイプをカスタムとし、「|」で複数の値を設定した際、最後のキーワードが反映されません。たとえば、「AAA|BBB|CCC」とすると、AAAとBBBはアウトラインとして抽出されますが、CCCは無視されてしまいます。

     全てのバージョンではありませんが、2.0.0.3583と2.0.6.3803で確認しています。Ver.1(1.1.2.2840)では起こっていないようです。MeryはDドライブ(システムドライブではない)内におき、設定ファイルも実行ファイルを同じフォルダに置いて使用しています。環境はWin XP SP3 32bitです。

    どうぞよろしくお願いします。

     |  yuki  |  返信
  2. はじめまして、Mery をご愛用くださりありがとうございます。

    > Ver.2では、編集モードのユーザー設定やアウトラインで編集モード毎の条件設定が可能となり、今まで以上に重宝しております。

    ありがとうございます。
    まだ実用段階ではありませんが、早く正式版がリリースできるようがんばります!

    > ①マイマクロやプラグインが起動方法によって別ものと認識される

    もしかして複数のバージョンの Mery (Mery.exe My Macrosなど) を別のフォルダに入れられていたりしませんか?

    マクロやプラグインのID(MyMacrosXXXX、PluginsXXXX)はマクロの絶対パスから生成していますので、マクロの場所 (絶対パス) が変わってしまうとキーボード登録が消えてしまいます。

    こんな感じだと発生します。


    D:\Mery2003583\Mery.exe
    D:\Mery2003583\MyMacros


    D:\Mery2063803\Mery.exe
    D:\Mery2003583\MyMacros

    ①を起動して①の MyMacros を登録。そのあと、②を起動する。するとキー割り当てが消失。

    マクロの ID は絶対パスから生成していますので、異なるフォルダに保存された Mery を起動し、なおかつその配下の MyMacros が登録されている場合に発生しているんじゃないかと思うのですが。

    そもそも複数バージョンの共存は考慮していませんでしたが、良く考えてみると相対パスから ID をひねり出せばうまい具合に解決しそうな気がしますのでその方向で修正してみます。

    > ②アウトラインプラグインの不具合?
    >  アウトラインプラグインでタイプをカスタムとし、「|」で複数の値を設定した際、最後のキーワードが反映されません。たとえば、「AAA|BBB|CCC」とすると、AAAとBBBはアウトラインとして抽出されますが、CCCは無視されてしまいます。

    2.0.0.3583 で試してみましたが、CCCも抽出されてるようです。
    他にアウトラインで設定を変更している部分があれば教えて頂けませんか?
    あと、アウトライン抽出されないケースの例文を頂けると助かります。

    お手数をおかけしますがよろしくお願いいたします。

     |  Kuro  |  返信
  3. ご返答ありがとうございます。

    > まだ実用段階ではありませんが、早く正式版がリリースできるようがんばります!
    あまりご無理をなさらない程度にまったりとがんばって下さい。

    > もしかして複数のバージョンの Mery (Mery.exe My Macrosなど) を別のフォルダに入れられていたりしませんか?

    Mery Ver1(1.1.2.2840)とは共存させていますが、複数のVer 2のMeryを別フォルダに分けた使用は行っていません。
    My Macroもそれぞれのフォルダに入れています。

    > マクロやプラグインのID(MyMacrosXXXX、PluginsXXXX)はマクロの絶対パスから生成していますので、マクロの場所 (絶対パス) が変わってしまうとキーボード登録が消えてしまいます。
    > マクロの ID は絶対パスから生成していますので、異なるフォルダに保存された Mery を起動し、なおかつその配下の MyMacros が登録されている場合に発生しているんじゃないかと思うのですが。

    私なりに検証してみたところ、コマンドプロンプトからMeryを起動する際、コマンドの大文字小文字の違いでマクロのIDが異なることがわかりました。
    絶対パスからマクロのIDが生成されるとのことですので、Mery起動時の絶対パスの指定方法がマクロのIDに影響を与えたのではないかと思います。
    ランチャーへの登録時にもその辺りの配慮が欠けていたため(実際のパスには大文字が使われているのに全て小文字で登録...)、起動方法でマクロのIDが変わるように見えていたようです。
    登録を修正すると問題は起こらないようになりました。
    お手をわずらわせてしまい申し訳ありません。

    一応、検証した結果を以下に記載します。
    Meryの絶対パス :D:\Mery\Mery.exe
    マクロの絶対パス:D:\Mery\My Macros\test.js

    (a)エクスプローラーからダブルクリックで起動
     ⇒ Macros307749cdce16c6be0c9609aefc13c46b
    (b)コマンドプロンプトから起動(ディレクトリ:C:\WINDOWS\system32)
     (1)コマンド:D:\Mery\mery.exe、D:\Mery\Mery.exe
     ⇒ (a)と同じ
     (2)コマンド:d:\mery\mery.exe
     ⇒ Macros17ae7e59a5578940339c300cfa395292
     (3)コマンド:D:\mery\mery.exe
     ⇒ Macros796efe74579034c79c27cf1b69b10e17
     (4)コマンド:D:\MERY\MERY.exe
     ⇒ Macros7344d2f937f1196741185920a85c6ea3
    マクロのパスが問題となっているので、Mery.exeの部分は関係ありませんでした。

    > そもそも複数バージョンの共存は考慮していませんでしたが、良く考えてみると相対パスから ID をひねり出せばうまい具合に解決しそうな気がしますのでその方向で修正してみます。

    複数バージョンの共存はさせておりませんが、相対パスで IDが決定されればリムーバルディスクでMeryを持ち運ぶ際にマクロのキーボード登録がそのまま使えるようになと思いますのでので、よろしくお願いいたします。

    > 2.0.0.3583 で試してみましたが、CCCも抽出されてるようです。
    > 他にアウトラインで設定を変更している部分があれば教えて頂けませんか?
    > あと、アウトライン抽出されないケースの例文を頂けると助かります。

    設定
    ・タイプ:カスタム
    ・最大レベル:8
    ・検索/正規表現 1:AAA|BBB|CCC
    ・検索/正規表現 1の右のチェックボックス:on

    ----- 例文ここから -----
    AAA
    BBB
    CCC
    D AAA
    D BBB
    D CCC
    AAA D
    BBB D
    CCC D
    ----- 例文ここまで -----

    上の設定で例文のアウトラインを確認すると、AAA、BBB、CCC、D BBB、D CCC、AAA D、BBB Dが抽出されます(D AAAとCCC Dが抽出されません)。CCCそのものは抽出されていました、確認不足でした。
    Ver 1では、この表現で全ての行を抽出していたので、Ver 2でも同様の動作を期待していたのですが仕様が変わっていたのですね。
    Mery 2.0.6.3803, Alpha の記事(therry さん、もいすん さんとのやり取り)を見てわかりました。
    「.*?(?:AAA|BBB|CCC).*?」とすると、全ての行を抽出するようになりました。

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

    > あまりご無理をなさらない程度にまったりとがんばって下さい。

    ありがとうございます、まったりしすぎてちょっと返信遅れてしまいました、すみません。。。

    > 私なりに検証してみたところ、コマンドプロンプトからMeryを起動する際、コマンドの大文字小文字の違いでマクロのIDが異なることがわかりました。

    細かい検証結果をありがとうございました。とてもわかりやすかったです。大文字小文字の違い、、、その点を見落としていました。大文字小文字を区別して ID を生成していたため、このような現象が発生してしまったのですね。本日公開した Mery 2.0.7.3889, Alpha では大文字小文字を無視するように修正しましたのでうまく行くと思います。

    ※仕様変更しちゃったので今まで登録したショートカットは一旦消滅してしまいますが・・・

    > 複数バージョンの共存はさせておりませんが、相対パスで IDが決定されればリムーバルディスクでMeryを持ち運ぶ際にマクロのキーボード登録がそのまま使えるようになと思いますのでので、よろしくお願いいたします。

    一応、対応してみたつもりです。まだ検証不足なので落とし穴があるかもしれませんが・・・。

    > Ver 1では、この表現で全ての行を抽出していたので、Ver 2でも同様の動作を期待していたのですが仕様が変わっていたのですね。
    > Mery 2.0.6.3803, Alpha の記事(therry さん、もいすん さんとのやり取り)を見てわかりました。

    これですが、やはり問い合わせが増えそうなので旧バージョンの仕様に戻しました。行頭、行末の指定が無かった場合でも一致を見つけて抽出するようにしましたので、以前の正規表現でそのまま使用できるようになっていると思います。

    お手数をおかけしました。

     |  Kuro  |  返信
  5. 更新お疲れ様です。

    マクロのIDの件、対応ありがとうございます。
    大文字小文字の違い関係なく同じIDとして登録されることを確認しました。
    相対パスで IDで決定されることについても、フォルダを移動させてもマクロのショートカットキーが保持されているので、今のところ私の環境では問題なく動いています。

    また、アウトラインの仕様について了解しました。
    正規表現について全くの素人だったもので、良い勉強になりました。

    日記(Mery 2.0.6.3803, Alpha)に対する返答になりますが、
    Amazonのアフィリエイトの報酬は1%程度なんですね。思ったより少ない、、、
    さすがに高級なパソコンなどは買えそうにないので、小さいものをこつこつと買いますw

    今後ともよろしくお願いいたします。

     |  yuki  |  返信
  6. 書き込み・検証作業ありがとうございます。

    > また、アウトラインの仕様について了解しました。
    > 正規表現について全くの素人だったもので、良い勉強になりました。

    私も正規表現についてはまだまだ勉強不足な部分がありますので、
    ご不便をおかけして申し訳ございません。

    > 日記(Mery 2.0.6.3803, Alpha)に対する返答になりますが、
    > Amazonのアフィリエイトの報酬は1%程度なんですね。思ったより少ない、、、
    > さすがに高級なパソコンなどは買えそうにないので、小さいものをこつこつと買いますw

    そうなんですよね、、、なので 1 年で千円いけば良い方な感じ。
    ご協力ありがとうございます!
    アフェリエイトで頂いた報酬は新しい開発環境 Delphi XE 3 の購入に向けて
    ありがたく頂いておきますw

     |  Kuro  |  返信