【雑談】メリーと遊ぼう2

  1. あけましておめでとうございます。今年もよろしくお願いいたします

    どうもシリルです。ご無沙汰しております
    こちらではご無沙汰でしたが私のPCでは毎日のようにMeryが起動しています
    専らゲームメモやアイデア帳のような使い方になっています

    そして勝手ながら「メリーと遊ぼう」スレッド第2弾を建てさせて頂きました
    こちらではMeryユーザー皆々様のMery体験を教えて頂ければと思います
    Meryを使って「こんなことしてるよ!」「こんなことできたよ!」との声を
    ぜひKuroさんにお届けしましょう

     |  シリル  |  返信
  2. というわけで私からひとネタ

    https://imgur.com/a/eSFVQia

    多言語翻訳のようなもの?を作って遊んでみました
    翻訳結果の質があまりよろしくないのはご愛嬌です
    何かをしてアウトプットバーに表示されるのがどうやら私好きすぎるみたいです

     |  シリル  |  返信
  3. 遅くなりましたがあけましておめでとうございます。
    こちらこそ、今年もよろしくお願いいたします。

    > こちらではご無沙汰でしたが私のPCでは毎日のようにMeryが起動しています

    ありがとうございます!暴れ馬なときもあるかもしれませんが (おもにバグでw) 可愛がっていただけると嬉しいです。

    > 多言語翻訳のようなもの?を作って遊んでみました

    すごっ!これは面白いですね。タイ語とかまったくわかりませんが翻訳結果を眺めてるだけで楽しそう。サンプルの文章は笑いました ^^

    あと、アウトプットバーってあまり使う機会がないもので、ちゃんと動いているかどうか不安です。出力結果の取りこぼしとかバグとか見つけたら教えてくださいね。

    私も小ネタとして誰得な小技をひとつ紹介します。
    https://imgur.com/a/VjyEUrV

    [文字色] と [背景色] の右側の [...] ボタンを Ctrl キーを押しながらクリックすると直接入力できる!…ただそれだけ。

    #ff0000
    rgb(255, 0, 0)
    hsl(215, 10%, 50%)

    ↑ HTML カラー、RGB カラー、HSL カラーの形式で入力できます。

    色見本とかを見ながらテーマを作るときに役立つかも?

     |  Kuro  |  返信
  4. > ありがとうございます!暴れ馬なときもあるかもしれませんが (おもにバグでw) 可愛がっていただけると嬉しいです。

    実はこの翻訳マクロ、1年くらい前に作ったんですが、その際に「Meryは強い子になったな」と感じました。それよりもさらに以前に別のマクロをPythonで作った時にはエラーを出した時にMeryが落ちることがあって……「おっ落ちるなんて珍しい」と喜んだりしてたものですが、1年前は落ちる頻度がかなり減ったな~と感じてました。

    まぁ落ちる原因がwindow.を忘れるとか私のポカミスだったわけなので。流石にポカが減っただけだったのかもしれませんが、いやぁどうだろ強くなったなと感じました

    あとPythonの場合コメントが#なので#iconなどは効かないんだなと思ってましたが、「あれ?効くじゃん」と気付いたのも1年前だったような……。これも私の勘違いでしょうか?以前は効かなかったですよね?目立たないところでもこっそりパワーアップしてるMeryちゃん!と思いました

    > あと、アウトプットバーってあまり使う機会がないもので、ちゃんと動いているかどうか不安です。出力結果の取りこぼしとかバグとか見つけたら教えてくださいね。

    今まで色々なことにアウトプットバーを使ってきましたがおかしなところは無かったので、これからもたぶん平気だと思いますが、そうですね何か気付いたことがあったら報告します

     |  シリル  |  返信
  5. そうでしたか。落ちてしまうのは申し訳ございませんでした。

    テキストエディターの性質上、創作にかかわる大切なアイデアやデータを扱うこともあると思うので、そういったソフトが突然落ちてしまうというのは大きなヘイトを買ってしまいそうです……

    Python マクロは私自身 Python を 1 ミリも知らないもので、技術的には動くに違いない、という想定のもとに実装しているものですから、うまく動作しない部分があったら教えていただけると助かります。

    window. が省略できるかどうかはマクロで使う言語の仕様次第のようですね。大文字小文字の区別もあったりなかったりしますし、このあたりはすべては把握できていません。

    > あとPythonの場合コメントが#なので#iconなどは効かないんだなと思ってましたが、「あれ?効くじゃん」と気付いたのも1年前だったような……。

    Python の言語仕様はわからないのですが、#icon など Mery 独自の指令は Mery 側で解釈したあとに全部削除してマクロエンジンに渡すようにしているので、以前から使えてたとは思います。(JavaScript でも # はコメントではないですがエラーになりますしね)

    でも、#icon とかの指令はマクロファイルの先頭に書いてもらう必要があるので、

    // 私のマクロ
    #icon = "****"

    こんな感じでファイルの最初にコメントがあって、#icon の指令が続く場合はエラーになるので、もしかするとそういったところかも?

    > 今まで色々なことにアウトプットバーを使ってきましたがおかしなところは無かったので、これからもたぶん平気だと思いますが、そうですね何か気付いたことがあったら報告します

    ありがとうございます。

    メリーと遊ぼうスレッド、めっちゃ面白そうですがマイナーなエディターなもので盛り上がりが…w

    差し支えなければこのスレッドで開発中のプラグインのベータ版など公開して行こうかしら~

     |  Kuro  |  返信
  6. > テキストエディターの性質上、創作にかかわる大切なアイデアやデータを扱うこともあると思うので、そういったソフトが突然落ちてしまうというのは大きなヘイトを買ってしまいそうです……

    こんなときこそ、Mery 3.3.0 から導入された

    > [自動保存フォルダー] が空の場合は Mery.ini と同じ場所の "AutoSave" フォルダーに "AutoSave-ファイル名" の形式で保存、[上書き保存] 時に削除するようにした

    の出番ですねっ。
    AutoSaveKeepUnsavedChanges=0 という良さげな隠しオプションも搭載され、不正終了対策もバッチリ!

    …ですが、個人的には不正終了対策と併せて、数日間は保管されるバックアップのようにも使いたかったので、上記の隠しオプションを使わずに以下のようなマクロを「Meryがフォーカスを失ったとき」のイベントで発動するようにしています。

    無題タブのメモなんかも「AutoSave-無題-1.~2~」などの連番なファイル名で過去のファイルを上書きせずに指定の日時は残してくれるので、なかなかに安心です。(メモっていたタブを勢い余って消してしまったときによく救われますw)

    // 起動している間に1度だけ実行する
    if (!window.tag.exists('CleanAutoSaveFolder')) {
      var autoSaveFolder = 'AutoSave'; // 自動保存フォルダ
      var periodDate = 7; // 更新日時がn日以上前を削除対象とする
      main(autoSaveFolder, periodDate);
      window.tag('CleanAutoSaveFolder') = true;
    }
    
    function main(folderPath, periodDate) {
      var fso = new ActiveXObject("Scripting.FileSystemObject");
      // フォルダが存在しなければ処理終了
      if (!fso.FolderExists(folderPath)) {
        return
      }
      
      // 親フォルダ名が 'Mery' でなければ処理終了
      var folder = fso.GetFolder(folderPath);
      if (folder.ParentFolder.Name != 'Mery') {
        return
      }
      
      var critDate = new Date();
      critDate.setDate(critDate.getDate() - periodDate);
      
      var e = new Enumerator(folder.Files);
      e.moveFirst();
      while(e.atEnd() == false) {
        var file = e.item();
        if (critDate > file.DateLastModified) {
          fso.DeleteFile(file);
        }
        e.moveNext();
      }
    }
     |  yuko  |  返信
  7. > Kuroさん
    > テキストエディターの性質上、創作にかかわる大切なアイデアやデータを扱うこともあると思うので、そういったソフトが突然落ちてしまうというのは大きなヘイトを買ってしまいそうです……

    返信遅くなってごめんなさい。普通に使ってるぶんには落ちることなんてほぼないので平気だと思います。Pythonマクロの場合も保存しないと実行に反映されませんから、マクロが消えちゃうってこともないですし

    > Python の言語仕様はわからないのですが、#icon など Mery 独自の指令は Mery 側で解釈したあとに全部削除してマクロエンジンに渡すようにしているので、以前から使えてたとは思います。(JavaScript でも # はコメントではないですがエラーになりますしね)

    ありゃ、やっぱり私の勘違いだったのか。私、勘違い多いですね、すみません気を付けます

    > 差し支えなければこのスレッドで開発中のプラグインのベータ版など公開して行こうかしら~

    おお、なんと!実はこっそり期待してます
    開発中のお話ぜひ聞きたいです

    > yukoさん
    > 個人的には不正終了対策と併せて、数日間は保管されるバックアップのようにも使いたかったので、上記の隠しオプションを使わずに以下のようなマクロを「Meryがフォーカスを失ったとき」のイベントで発動するようにしています

    高度なマクロですね、すごい!
    これって落ちた時も=フォーカスを失った時なんでしょうか?それは流石に?まぁでも、そうかイベントを使えば自動でやってくれるから「あっ」って時に絶大な効果を発揮しますよね、流石はyukoさんです

     |  シリル  |  返信
  8. >> シリルさん

    Meryマクロ、楽しくってつい時間かけすぎて、「あれ?効率化のために書いたのに結果的にもっと時間掛かってるような?」ってなったりするのが悩みの種ですw

    > これって落ちた時も=フォーカスを失った時なんでしょうか?

    残念ながら、不正終了などで落ちたときはMeryのコントロールを外れてしまうため、「フォーカスを失ったとき」で登録しているマクロは動作しないと思われます。

    …が、私が投稿したマクロは「Meryの自動保存機能でAutoSaveフォルダに保存されたファイルを所定の日数分残してクリーンアップする」といった用途のものなので、ファイルのバックアップ処理のところはMery側の機能にお任せしてます。(たぶん、その方が保存時の処理に細やかな気配りがされていると思うので)

    以下スクショのような自動保存設定にしておくと、Mery.ini の置かれたフォルダに「AutoSave」フォルダが作成され、そこに5分おきにファイルが保存されていきます。
    https://imgur.com/a/he2vsO4
    前述のマクロを「フォーカスを失ったとき」で動くように仕込んでおくことで、このAutoSaveフォルダ内をお掃除するイメージですね。

    ちなみに、Meryの起動時引数でマクロを動かすこともできたはずなので、それで発動させてもよいかとも考えましたが、ファイル削除などの重い処理を起動前にやってしまうとMeryの起動速度が遅くなってしまうかとも思い、一番動作速度で気にならなさそうな「フォーカスが外れたとき」で動かすようにしてみました。

     |  yuko  |  返信
  9. > 返信遅くなってごめんなさい。

    いえいえ、気が向いたときや気分が落ち込んだときなどにテキトーにお気軽にご意見やご投稿を頂けると幸いです。

    > ありゃ、やっぱり私の勘違いだったのか。私、勘違い多いですね、すみません気を付けます

    いえいえ、私の記憶喪失なのかもしれません。

    > おお、なんと!実はこっそり期待してます
    > 開発中のお話ぜひ聞きたいです

    おお、嬉しいー!数年間眠ってるプラグインとかもありますw

    >> yukoさん
    > 個人的には不正終了対策と併せて、数日間は保管されるバックアップのようにも使いたかったので、上記の隠しオプションを使わずに以下のようなマクロを「Meryがフォーカスを失ったとき」のイベントで発動するようにしています

    自動保存とかそんなに必要?と思っていましたが、スマホとか使ってると当たり前のように自動保存な時代ですものね。

    私は Ctrl + S が手癖のようになっている世代ですが、今の時代は勝手に保存されてあたりまえな時代なのかも。

     |  Kuro  |  返信
  10. > 以下スクショのような自動保存設定にしておくと、Mery.ini の置かれたフォルダに「AutoSave」フォルダが作成され、そこに5分おきにファイルが保存されていきます。

    おお。この機能、ちょっと隠しオプション的になってるので使ってる人は少ない気がします。

    MS Word や Exel のような、強制終了したときの復旧を目的とした自動保存機能 (勝手に身に覚えのないフォルダーに自動保存) が欲しいというご要望の対応で実装した機能です。

    オプション画面もすでに一杯ですしどうしようかなーと思って色々と考えた結果、隠しオプション的なかたちになってしまいました。

    [自動保存する] をオン、[自動保存フォルダーに保存する] をオン、[自動保存フォルダー] を空っぽ。

    この設定にすると、編集中のファイルが身に覚えのないフォルダーに自動的に保存されます。

    さらに裏技的な使い方としては、[分ごと] を 0 にするとリアルタイムで保存されるので心配性なかたはお試しくださいませ。

     |  Kuro  |  返信
  11. >> Kuroさん

    リアルタイム保存もいけるんですね。とはいえディスクアクセスが頻繁に起こるのも気になるので、そのへんのバランスが悩ましいところ🤔

    こまめにCtrl+Sで保存するのが正攻法なんだろうと思いつつも、惰性で無題タブでメモ取りをしてしまう私 (しかも消えて欲しくないようなものも無題タブに残しがち) にとっては、自動保存機能にはちょいちょい助けられていますー。

    あと、これまたちょいちょい助けられているのが、上書き保存するつもりがタブ閉じの勢いあまって保存せずに閉じてしまったとき。数分前の状態になら戻せるという安心感がありますw

     |  yuko  |  返信
  12. Ver 3.3.5 は安定してそうなのでちょっとネタを投稿。

    雑談スレッドということで、以前にツイッターでつぶやいていた Markdown プラグインを紹介してみたいと思います。
    https://twitter.com/haijinboys/status/1459527890513457156

    >> yuko さん

    ツイッターとフォーラムではご意見ありがとうございました。

    https://www.haijin-boys.com/discussions/6358
    ↑ もとネタは上記のスレッドですが、雑談スレッドのほうがテーマに沿ってるし気楽な感じなのでこちらに投稿させていただきますね。

    ---
    Markdown プレビュー プラグイン Ver 1.0.0 (64 ビット版) [1,828,632 バイト 2022/03/10]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.0.zip
    ウイルスチェック: https://www.virustotal.com/#/file/dc3743823098409f73505392aaf4750b45d59f2b95d5fa76e6307a1d6f90855f

    詳細な機能や使い方は同梱の README.txt をご参照いただければと思います。(README.txt も Markdown で書かれているので、このプラグインを使って表示してみてね!)

    【概要】
    Mery のウィンドウに編集中のファイルと並べて Markdown のプレビューを表示して、編集中に変更をリアルタイムで反映して確認できるプラグインです。

    【注意】
    `WebView2Loader.dll` を `Mery.exe` と同じフォルダーにコピーするのと、Windows 11 未満の場合は https://developer.microsoft.com/ja-jp/microsoft-edge/webview2/ から WebView2 ランタイムをインストールする必要があります。

    【制限】
    特典コンテンツか課金コンテンツを想定して開発しているので README.txt にそういった旨が記載されています。

    現在、ベータ版につき動作検証にご協力いただけるかたは無料でお試しいただけますが、再配布は禁止とさせていただきます。

    ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    ---

    と、こんな感じのネタですが雑談スレッドで大丈夫だったでしょうか😅

     |  Kuro  |  返信
  13. EPUB 形式で出力すると title がないという警告が出ることに気付きました。

    エラーではないのですが Mery 的には Pandoc から何らかの警告が出たときは「エクスポートに失敗しました」というメッセージを表示しているので、ビックリしてしまわれるかもしれません。

    これは Pandoc の仕様のようで、警告は表示されますが出力は成功しています。

    title 要素をつければ警告は表示されなくなります。

    ---
    title: "適当"
    ---

    ↑ こんなメタデータを文書の先頭に書けば title 要素として認識してくれて警告も表示されなくなるようです。

     |  Kuro  |  返信
  14. >> Kuroさん

    うおお…これは、完成度に感動…🙄
    エディタ部とのスクロール同期もスムーズ。要望したハイライトのオプション対応まで、ありがとうございます。素晴らしい限りです。

    さらに、Pandoc対応は個人的にはかなりサプライズでした!
    Pandocから出力される各フォーマットにはあまり精通していないですが、とりあえずWordのエクスポートを試してみました。問題なさそうです。Pandoc.exeのパスや、Wordのスタイルファイルのパスをポータブルな状態にするべく、Mery.exeの場所からの相対パスにしてみましたが、これも問題なし。流石です。

    また、アウトラインプラグインを左に表示、Markdownプレビューを右に表示などと合わせて使うことで、まるでQiitaの見出しサイドバーのような使いっぷりで扱えそうだというのも分かり、活用の夢が広がります。

    もはやこれ以上何を求めればよいのかという具合なのですが、強いて気になったところを挙げるなら、以下の2点でしょうか。(ただ後者はプラグインの仕様上、厳しそうだなという雰囲気を感じています)

    1. アウトラインプラグイン上の見出し選択によるエディター部スクロールでは、Markdownプレビューのスクロール同期がズレることがある。
    2. Meryの幅を狭めてからMarkdownプレビューをONにすると、直前のプレビュー幅が復元されることでエディター部がプレビューに埋め尽くされることがある。(贅沢を言えば、"プレビューON時、エディター部の半分幅で表示する"といったオプションで、プレビュー部の幅復元動作が変えられると嬉しい)

     |  yuko  |  返信
  15. お試しいただきありがとうございます。

    > Pandoc.exeのパスや、Wordのスタイルファイルのパスをポータブルな状態にするべく、Mery.exeの場所からの相対パスにしてみましたが、これも問題なし。流石です。

    お褒めいただき恐縮ですが、Mery.exe からの相対パスは考慮していないので、たまたまですね😅

    カレントディレクトリからの相対パスに pandoc.exe があったか、すでにインストール済みの pandoc.exe にパスが通っていたのだと思います。

    Word のスタイルファイルのパスもそのまま pandoc.exe にパラメータとして渡しているだけなので、Mery.exe からではなくカレントディレクトリからの相対パスになっていると思います。

    これは Mery.exe からの相対パスに対応させたほうがポータブル版としては使いやすそうですね。

    > 1. アウトラインプラグイン上の見出し選択によるエディター部スクロールでは、Markdownプレビューのスクロール同期がズレることがある。

    アウトラインプラグインとの連携までは考慮していませんでしたが、それができると面白そうですね。

    アウトラインプラグインの見出し選択は無理やりスクロール位置を移動させているふしがあるので、現在のプラグイン仕様に機能追加は必要ですが、できないこともないような気がします。

    > 2. Meryの幅を狭めてからMarkdownプレビューをONにすると、直前のプレビュー幅が復元されることでエディター部がプレビューに埋め尽くされることがある。

    ご推察のとおり、プラグインの表示幅はプラグイン側ではなく本体側で管理されているので難しいところですね。

    やるとしたら、本体側でプラグインが表示されるときにプラグインの幅をチェックしてエディター部の幅を超えていたらエディター部の半分幅で表示、みたいな感じになるかと思います。

    これだと、幅によってはギリギリ埋め尽くされてしまうケースも出てきそうですが…。

    ちなみに、VS Code だとプレビュー部の幅は保持されず、毎回、エディター部の半分幅で表示されるようですね。

    本体側での制御になるので、なるべくオプションには頼りたくないところですが、うーん。何か妙案はないものでしょうか。

     |  Kuro  |  返信
  16. >> Kuroさん

    > カレントディレクトリからの相対パスに pandoc.exe があったか、すでにインストール済みの pandoc.exe にパスが通っていたのだと思います。

    なるほど…そういうことでしたか。どうやら、ショートカットからMeryを起動していたことで、作業フォルダー(カレントディレクトリ)の指定がMery.exeの保存場所に向いていたようです。

    > やるとしたら、本体側でプラグインが表示されるときにプラグインの幅をチェックしてエディター部の幅を超えていたらエディター部の半分幅で表示、みたいな感じになるかと思います。
    > これだと、幅によってはギリギリ埋め尽くされてしまうケースも出てきそうですが…。

    やはり、本体側での制御になりますよね。

    仕様として誰にとっても万能なもの、となると思いつかないのですが、自分の使い方から想像するに、「プラグインを表示した時点で、エディター部の半分幅を超えていたら、プラグイン部の幅をエディター部の半分幅まで縮める」となっていると使いやすいかなと妄想しました。

    ・基本的に、エディター部の半分以上の幅をプラグイン部が占めてしまうと使いづらいため、プラグイン表示時点では最大でも半分幅程度にしておきたい。
    ・それでも、プラグイン表示後に幅をエディター部の半分以上に広げるケースはありそう。例えばMarkdownプレビューを一時的に広くして見たいとか、アウトライン表示で見切れている部分を一時的にすべて表示したいとか。

    上記の状況から、前述の「プラグインを表示した時点で、エディター部の半分幅を超えていたら、プラグイン部の幅をエディター部の半分幅まで縮める」くらいの頻度での幅の自動調整であれば使いやすいように感じました。

    とはいえ、もし「エディター部 3 : プラグイン部 7」くらいの比率で常用する方がいたら、やはり幅の自動調整というのはやめてほしい、と思うのでしょうけど…難しいですね…😓

     |  yuko  |  返信
  17. ご返信ありがとうございます。

    > プラグインを表示した時点で、エディター部の半分幅を超えていたら、プラグイン部の幅をエディター部の半分幅まで縮める

    私も最初はこれを考えまして、でも、まさに「エディター部 3 : プラグイン部 7」みたいな使い方する人もいるかもしれないと思い、半分幅ではなく3分の2幅ぐらいがいいかなとか考えたりしてました😅

    でも、今回問題となっているのはウィンドウの幅を小さくしてからプラグインを表示したときに画面が埋め尽くされる、ということだったので、エディター部をはみ出た場合のみ幅調整が走るほうが影響が少ないかなーと…。

    あと、プラグインを起動する順番もあって、まずアウトラインプラグインを起動するとそれがエディター部の半分幅。次にプレビューを起動すると、エディター部の半分幅。となるので、起動する順番が逆になるとプラグインの幅も変わってくるという問題も。

    これは仕組みを理解していれば、プラグインの設定で順番を入れ替えれば回避できそうではありますが。

    > やはり幅の自動調整というのはやめてほしい、と思うのでしょうけど…難しいですね…😓

    これが本当、難しいところですね。チラっと書いた、VS Code だと半分幅固定だよーというのはまさに、VS Code だと毎回半分幅になるのである程度 MS 準拠だよ!

    と、言い訳材料になるかなという感じで、個人的には「プラグインを表示した時点で、エディター部の半分幅を超えていたら、プラグイン部の幅をエディター部の半分幅まで縮める」が一番、好みです😆

     |  Kuro  |  返信
  18. いいですね~マークダウンプレビュー☆
    資料関係をどういう風に整理しようかと悩んだ時期がありましてナナテ〇ーやナミ200〇、秀〇、Typor〇などをつまみ食いしてました
    なんだか定着しなかったんですよね……これらのツールは良いものですけど、私のモチベーション的に(←)

    資料だと、どうしても画像を表示したくなっちゃうんですよね、だからTypor〇なんかはすごく良かったんですが結局使い慣れたメリー二刀流にして画像はパスだけ書いて外部ツールからフォトビューワー(フォトではなく)を起動させちゃえみたいな

    そしたら資料を整理しなくなってゲームメモばかり取るようになったんですよね……不思議(←)
    まぁテキストエディタだし、画像はね、と思ってたところにマークダウンプレビューですからタイミング良すぎでした

    https://imgur.com/a/SqXniqC

    えぇ!早速表示させてみましたよ、可愛いですね!画伯!(←)
    エディタ部分の上のタブバーがグイグイ左に押しやられて縦一列になりました。これはこれでいいかもしれない

    > と、こんな感じのネタですが雑談スレッドで大丈夫だったでしょうか😅

    えぇ、もちろんですとも!
    「こんなことしてるよ、できたよ」という趣旨なのでまさにドンピシャリ
    開発者であるKuroさんご本人が語るという所が特別感満載ですし!
    というかスレ立てておいて盛り上げられなくてすみません……
    Kuroさんフォローありがとうございましたyukoさんもありがとうございます

    > やはり幅の自動調整というのはやめてほしい、と思うのでしょうけど…難しいですね…😓

    > これが本当、難しいところですね。チラっと書いた、VS Code だと半分幅固定だよーというのはまさに、VS Code だと毎回半分幅になるのである程度 MS 準拠だよ

    あぁ、んー、私は、その、全幅でバン、と切り替わる、くらいでも(小声)
    モニタ2台なんですけど、どちらもスクエア型の4:3なので横幅がそんなに取れないんです

    今、全画面にしてないやと思って、全画面→ウィンドウモードにしたらプレビュー部分がエディタ部分を超えてアウトラインの半分くらいまで侵食しました。
    どうやら全画面時の横幅をウィンドウモードでも保持してるらしいのでうまく見切れば今の状態でも全幅切り替えがウィンドウモードなら可能ですね(いいのかな)
    これだと横幅を調節するハンドル?が出てこないので元に戻すなら一度全画面にして横幅を減らします

     |  シリル  |  返信
  19. お試しいただきありがとうございます。

    Typor〇、いいですよね。私はマークダウンってほとんど知らなかったもので Typor〇を開発の参考にさせていただきつつ、普段使いにも便利だなぁと思っていました。(Pandoc 機能とかもろに影響受けちゃってますね…)

    いつのまにか Typor〇が有料化してて、これは Mery のマークダウン機能の開発を急がねば!と気合が入ったこともありました。

    > まぁテキストエディタだし、画像はね、と思ってたところにマークダウンプレビューですからタイミング良すぎでした

    資料として保存する用途なら、プレビューを右クリックしてからの [PDF 形式で保存] は画像も埋め込めるので役に立つかもしれません。

    > えぇ!早速表示させてみましたよ、可愛いですね!画伯!(←)

    なんと、まさかのメリーさんのマスコットキャラ!?ありがとうございます、可愛いです😆 そしてスクショの Mery 感の無さもスゴイ。このアプリ、何~?と聞かれそうでオシャレですね!

    > というかスレ立てておいて盛り上げられなくてすみません……

    いえいえ、私のほうこそ。ガチな要望とか来るとヤなのでこの場を借りて公開させていただいてしまいました😅 ゆる~く、お付き合いいただけると嬉しいです。

    > あぁ、んー、私は、その、全幅でバン、と切り替わる、くらいでも(小声)

    おうふ。エディター部分も埋め尽くされるぐらいの全幅派ですか。好みは人それぞれですねぇ。

    > 今、全画面にしてないやと思って、全画面→ウィンドウモードにしたらプレビュー部分がエディタ部分を超えてアウトラインの半分くらいまで侵食しました。

    ぐはー、これは痛いところです。プラグインの幅についてはもう少し考えて出直してきます!

    …などと言いつつ、うーん、何も思いつかないよー。(と、このスレッドでは適当なノリで行かせていただければと思います ^^)

     |  Kuro  |  返信
  20. > Typor〇、いいですよね。私はマークダウンってほとんど知らなかったもので Typor〇を開発の参考にさせていただきつつ、普段使いにも便利だなぁと思っていました。(Pandoc 機能とかもろに影響受けちゃってますね…)
    >
    > いつのまにか Typor〇が有料化してて、これは Mery のマークダウン機能の開発を急がねば!と気合が入ったこともありました。

    なんと、有料化していたんですね。思い返せば、「いつかは有料化するぞ」と言いながら、ずっとプレビュー版扱いで提供されていた気がしますね。

    もともと私は日本語文書の扱いやすさから、VSCodeなどよりもMeryでMarkdownなメモを取っていた人なんですが、プレビューと別フォーマット出力(Markdown to Wordなど)が一緒くたにできるっていいですね。
    議事録作成など、ただのテキストからもう一歩フォーマットを整えて展開したいときに捗りそうな予感です。

     |  yuko  |  返信
  21. > 思い返せば、「いつかは有料化するぞ」と言いながら、ずっとプレビュー版扱いで提供されていた気がしますね。

    そうだったのですね。最初は「このクオリティで無料!?Markdown の世界ってハードル高っ!」と思ったものです😱

    ある日、自動アップデートすると15日間の体験版になってました。

    > プレビューと別フォーマット出力(Markdown to Wordなど)が一緒くたにできるっていいですね。

    Markdown → Word はちょっとびっくりしますよね。Pandoc に丸投げしてるだけですが、国産のエディターでは珍しい機能なのでウリになるといいなぁ。

    その後、いくつか検討した点と気づいた点があるのでここに記しておきますね。

    1. アウトラインプラグインの見出しクリックとのスクロール同期
    → 実装できそうです

    2. プラグインの幅によっては埋め尽くされる問題
    → プラグインを表示したときに4分の3幅を超えていたら4分の3幅に縮めようと思います

    3. プレビューを右クリックの [オプション] で [バーの位置] を変更してもすぐに反映されない (Mery の再起動が必要)
    → 改善しておきます

    4. 縦書きに対応できると面白そう
    → 無謀な挑戦かもしれませんが、縦書き EPUB で出力できたら電子書籍とか作れて楽しそうです

     |  Kuro  |  返信
  22. どうもお世話になってます
    自分では書かないと思いますが
    .mdのビュワーとして使えるかなとMarkdownPreview-x64-1.0.0.zip
    試してみました
    v3.3.5で検索バーの表示と位置の固定が出来るようになったのですが
    Markdownプレビューを表示してると次回起動時に位置の固定が出来なくなりました
    よろしくお願いします

     |  kiyohiro  |  返信
  23. 何度か起動終了して確認しましたが
    必ず検索バーの位置が変わるわけではなく
    通常時の位置が続いたり位置が変わったり
    再現方法がわからないです

    画像
    https://imgur.com/3EZpVB7
    左(位置が変わった時)右(通常時の位置)

     |  kiyohiro  |  返信
  24. お試しいただきありがとうございます。

    サードパーティ製のプラグインにつきましては私のほうでは調べようがないのでサポート対象外とさせていただいてます。

    雑談の範囲内ということで良ければ、私も試しに導入してみたので設定手順をご紹介します。

    Mery を起動して検索バーを表示、検索バーの上で右クリックしてポップアップメニューから [独自にツールバーの位置を記録/復元する] をオンにして Mery を再起動します。

    その後、再び検索バーを表示して位置の調整を行えば位置が記録/復元されるようになりました。

    Markdown プレビューを導入した状態で何度も起動と終了を繰り返してみましたが問題なさそうです。

    あと、FindBarPlugin は Mery.exe のフォルダーにある Plugins フォルダー配下に設定を保存するようなので、Plugins フォルダーにアクセス権がないと設定が保存されず、起動するたびに位置がリセットされてしまうようです。

    Program Files 配下に Mery がインストールされている場合などは Plugins フォルダーのアクセス権にご注意ください。(私はこれでハマりました)

    他に考えられることとしては、現在インストールされている Mery とは別にテストなどのために ZIP 版 (ポータブル版ではなく) を 1 度でも起動してしまった場合です。これをやってしまうと Mery.ini は共通なので設定が正しく復元されないことがあります。

    あとは、FindBarSettings.json を読み取り専用にしてみるとかはいかがでしょうか。でも、FindBarPlugin の説明書によると動作環境が Mery 2.6.7 か 3.1.0 となっているのでそもそも最新ベータ版では不安定なのかもしれないですね。

     |  Kuro  |  返信
  25. > いつのまにか Typor〇が有料化してて、これは Mery のマークダウン機能の開発を急がねば!と気合が入ったこともありました。

    有料化!そういえばどこかでチラッと聞いた気がします。私がつまみ食いしてたときはまだ無料でした。まぁ私もマークダウンよく知らないので見出しと画像表示くらいしか使ってないです……あとは表くらい

    > 資料として保存する用途なら、プレビューを右クリックしてからの [PDF 形式で保存] は画像も埋め込めるので役に立つかもしれません。

    EPUBもできるんですよね、すごいです!私、よくわかってないですけど、すごいです!

    > なんと、まさかのメリーさんのマスコットキャラ!?ありがとうございます、可愛いです😆 そしてスクショの Mery 感の無さもスゴイ。このアプリ、何~?と聞かれそうでオシャレですね!

    マクロに使ってる自作アイコンはそんな代り映えしないですけど、時々修正したり追加したりしてます。一番右のは新作で、アウトプットする感じの良いデザインができたと自画自賛アハハ
    標準アイコンは今はダークモードだと自動でモノクロになるんでしたっけ?今までの慣れのせいか、なんか色がないと寂しいと感じてしまって、meryresにmyを付けるやり方で昔のに戻しちゃいました。やぁ自分でもモノクロアイコン作ったりwikiに投稿までしてるのに使ってないという……すみません

    > …などと言いつつ、うーん、何も思いつかないよー。(と、このスレッドでは適当なノリで行かせていただければと思います ^^)

    はい、のんびりいきましょう🐑
    まぁその状態でも、落ちるわけでもないですし、ちゃんとスクロールもしますし

    ショートカットで閉じようと思った時にプレビュー部分にフォーカスがあると効かないのも少し気になりました。よく考えるとアウトラインだってそうだし、従来どおりですね

    と思ったのですがちょっと不思議な現象に遭遇したので報告
    1.エディタ部分とアウトラインを表示している状態(フォーカスはエディタ部分)
    2.マークダウンプレビューをショートカットで表示(侵食なし)
    3.アウトラインをショートカットで消す(フォーカスは……どこだろ)
    4.マークダウンプレビューをショートカットで消そうとするとツールバーの下に空白のバーが現れる(マークダウンプレビューは消えない)
    5.以降マークダウンプレビューのショートカットを使用すると空白バーが現れたり消えたりするようになる

    マウス操作はなしです。3でアウトラインを消したあと念の為にエディタ部分をクリックすると4では普通にマークダンプレビューが消えるようです
    ツールバーで表示非表示の操作をすると、この現象は起きません

    えっと、見なかったことにしますね、私は何も見ていません

    最近、たらこパスタを作ったりもするんですがあんまり上手にできなくて「これだったらコンビニのたらこパスタのほうが美味しいな」という出来なんです。そこでオイルに刻んだネギ混ぜて軽く炒めてからたらこパスタにすると美味しくできました
    これをたらこパスタと言い張るのはちょっとずるいかもしれないのでネギたらこパスタですね

     |  シリル  |  返信
  26. > マクロに使ってる自作アイコンはそんな代り映えしないですけど、時々修正したり追加したりしてます。

    めっちゃ凝ってますね。こんなにカスタマイズしていただけると開発者として嬉しく思います。

    > 標準アイコンは今はダークモードだと自動でモノクロになるんでしたっけ?

    そうなんです。慣れってありますよね。私もアイコンの変更は長い間、気が進みませんでしたから。

    モノクロアイコン 58 個 × 4 サイズ分を作り終えたころには「モノクロが良いんだ、モノクロが良いんだ…」と白目をむいていました。

    > と思ったのですがちょっと不思議な現象に遭遇したので報告

    ご報告ありがとうございます。

    ありゃぁ、私の普段使ってる環境だと再現されませんでした。

    とりあえず Mery 3.3.5 のポータブル版でクリーンな状態でも試してみたのですが再現できなかったので、何か他にも条件があるのかもしれません。

    > 1.エディタ部分とアウトラインを表示している状態(フォーカスはエディタ部分)

    アウトラインが左、プレビューが右であってますよね?

    > 2.マークダウンプレビューをショートカットで表示(侵食なし)

    アウトラインを Ctrl + 1、プレビューを Ctrl + 2 に割り当ててみましたが、参考までにどのキーに割り当てられているか教えてください。

    > 3.アウトラインをショートカットで消す(フォーカスは……どこだろ)

    普通にエディター部にフォーカス、残っちゃってますね😅

    > 4.マークダウンプレビューをショートカットで消そうとするとツールバーの下に空白のバーが現れる(マークダウンプレビューは消えない)

    (3) が問題ないので (4) も発生しないようです。

    > ツールバーで表示非表示の操作をすると、この現象は起きません

    きちんとショートカットキーのみで手順どおりやってみたのですが、再現できず。うーん、気になります。

    あと、他にもプラグインが導入されていたりしますか?それかフォーカスを受け取ったときのイベントマクロとか。

    > えっと、見なかったことにしますね、私は何も見ていません

    いえいえー!不具合のご報告は大歓迎なので、ご協力いただけると助かります。

    > そこでオイルに刻んだネギ混ぜて軽く炒めてからたらこパスタにすると美味しくできました

    私も昨日、たらこパスタを作りました。そして、私もネギ入れる派です😁

    でも、炒めたことはなかったですね。風味が出そうだし、ネギ、上に乗せるだけだと辛いときとかあるので、炒めるのはアリかもー。今度やってみよっと。

     |  Kuro  |  返信
  27. > ありゃぁ、私の普段使ってる環境だと再現されませんでした。

    > アウトラインが左、プレビューが右であってますよね?

    はい、あってます

    > アウトラインを Ctrl + 1、プレビューを Ctrl + 2 に割り当ててみましたが、参考までにどのキーに割り当てられているか教えてください。

    アウトライン Alt + 1、プレビュー Alt + M です

    > あと、他にもプラグインが導入されていたりしますか?それかフォーカスを受け取ったときのイベントマクロとか。

    1.アウトライン 2.半透明 3.お気に入り 4.スニペット
    5.プロ生ちゃん 6.EditorConfig 7.MarkDown プレビュー 8.Zenモード時計

    です、イベントマクロは入れてません
    どうしてだろ?と思ってプレビューのDLL消してみたりZIP版を試したりしていたところ発生しなくなりました。
    ごめんなさい、見なかったことにしてください。お騒がせしました

     |  シリル  |  返信
  28. 回答ありがとうございます
    v3.3.5の対応で
    表示出来るようになったので本格的に使い始めたのですが
    MarkdownPreview-x64-1.0.0.zipを試したら
    また、v3.3.5以前の状態になったので報告しました
    取り敢えずMarkdownプレビューをオフにしてから終了すると
    今の所位置の復元は出来てるようです
    > あとは、FindBarSettings.json を読み取り専用にしてみるとかはいかがでしょうか。
    これも試してみます

    あと今回のテスト中
    マーカーのバーもたまに位置が変わりました
    これも検索バーの影響でしょうか?
    検索バーの位置の復元出来ていても
    マーカーのバーだけ左によってしまうことが何度かありました

    一応この検索バーは他のテキストエディタの様に文字マークに連動してないとか
    位置が変わるとかいまいち使いづらいので
    Kuroさんの検索バーが出るまでのつなぎで入れてます
    > 現在、開発中ですがやや難航しています。
    とのことですが期待して待ってます

     |  kiyohiro  |  返信
  29. > v3.3.5の対応で表示出来るようになったので本格的に使い始めたのですがMarkdownPreview-x64-1.0.0.zipを試したらまた、v3.3.5以前の状態になったので報告しました

    3.3.5 では、検索バープラグインに対応したというわけではなく、ある程度うまく動くように調整しただけですね。

    検索バープラグインは C++ で書かれているようですが、私には知識がないものでソースコードのビルドすらできず、3.3.5 での調整が精一杯でした。

    > マーカーのバーもたまに位置が変わりました
    > これも検索バーの影響でしょうか?

    うーん、わかりません。ツールバー系のプラグインは公式ではひとつもリリースしてないですし、SDK (開発キット、作り方) もまだ公開していないものですから、検索バープラグインがどうやって開発されたのかすら謎です。

    ツールバー系のプラグインは仕様が固まり次第、きちんと SDK をリリースする予定なので、それを使って開発していただければある程度は技術的にもサポートできると思います。

    とりあえず、今回は検索バープラグインの動作不良と Markdown プレビューは切り離して評価いただければと思います。

    > Kuroさんの検索バーが出るまでのつなぎで入れてます

    検索バーは特典コンテンツ (開発支援をいただいたお礼) として開発しているものですが、雑談スレッドのネタ第二弾で貼ってみようかしら。

    と、開発支援をいただいたお礼なのに、開発支援をいただいたかたにテストしてもらうという本末転倒な事態😅

     |  Kuro  |  返信
  30. > ごめんなさい、見なかったことにしてください。お騒がせしました

    いえいえ!貴重な情報ありがとうございます。

    まだ現象の再現はできていないのですが、Alt キーを使っているのがちょっと怪しい気がしています。

    というか、プレビュー部分にフォーカスがある状態で Alt キーを単独で押すだけでフリーズしちゃいますね。(これは何かしら対策しておきます)

    あと、ひとつ思い出したのが、Mery のフォーカスが外れる現象のご報告が過去に 1 度だけありまして、そのときは再起動したら直ったとのことでした。
    https://www.haijin-boys.com/discussions/6415

    根本的な原因はわかっていない状態なので、また現象が再発したり、再現するためのコツがわかったりしたら、教えていただけるととても助かります。

    ところで早速、オイルに刻みネギまぜて炒めるたらこパスタを作ってみました。ひと手間加えるだけで全然違いますね、これは美味しい!😂

    今日はオリーブオイルを使いましたが、ゴマ油と焦がしネギで和風テイストな感じも試してみたくなりました。

     |  Kuro  |  返信
  31. >> Kuroさん

    BIZ UDゴシックがオープンソースになったという噂 (https://coliss.com/articles/build-websites/operation/work/googlefonts-morisawa-biz-ud-gothic-and-mincho.html) を聞きつけ、また合成フォントを公開してしまいました。

    https://github.com/yuru7/udev-gothic

    Meryのフォントファイルの直読み込み機能にまたまた助けられ、おそらくオープンソースになってからのBIZ UDゴシック派生フォントとしては国内最速で公開できたのではないか、と自負しています。 ←最速だったのか、ちゃんと調べてはいませんw

    今回はリガチャ付きフォントにもチャレンジしてみたのですが、奇妙な現象を見かけましたのでご報告です。
    フォント側の状態がおかしい、というのも往々にしてあり得ると思っていますので、何か気になる点があれば教えていただけたら助かります。

    ・Mery v3.3.5 (x64)
    ・DirectWrite および合字 有効
    ・フォント: UDEV Gothic LG (今回新たに公開したフォントの、リガチャ対応版の方です)

    改行直後に書かれる全角記号の位置が左寄りにズレます。ただ、そのズレた全角記号の直後に半角 "a" や "A" などを置いておくと、ズレません。不思議…

    スクショはこちら。
    https://imgur.com/a/XfAiHi7

    なお、VSCodeやChromeで確認してみるとズレませんでした。

     |  yuko  |  返信
  32. BIZ UDゴシックがオープンソースになったんだなぁと思っていたらもう UDEV Gothic がリリースされてて「早っ!」と思いました🤣

    > 最速だったのか、ちゃんと調べてはいませんw

    私も目を疑う速さでしたから、きっと最速ですね!

    なるほど、BIZ UDゴシックより英数字と日本語のバランスが美しくていい感じ。しかもリガチャ対応とは、とても興味深いです。

    > 改行直後に書かれる全角記号の位置が左寄りにズレます。

    早速、UDEV Gothic LG (Ver 0.0.4) を試させていただきました。

    https://imgur.com/a/CTFunGX
    …が、ズレてないー😅

    ・DirectWrite オン、オフともに正常
    ・カスタムフォント、インストールフォント、どちらも正常
    ・フォントサイズを変更してみても問題なし
    ・記号のオン、オフも問題なさそう
    ・DirectWrite のカラーフォントや合字オプションとかも関係なさそう

    Windows 10 21H2 (19044.1586) + Mery 3.3.5 ですが、他に何か条件があるのかもしれないです。

     |  Kuro  |  返信
  33. >> Kuroさん

    こんな摩訶不思議な環境差があるのかぁ…と、色々な環境で確認してみました。

    (1) Mery設定の疑い

    - Meryポータブル版で、起動直後の状態からDirectWrite/合字の箇所だけONにしてみるも同じ状況。
    - 同じ設定で、UDEV Gothic LDから、UDEV Gothic(リガチャなし版)に変えてみると、発生しない。
    - 合字をOFFにしたり、DirectWriteをOFFにするなど、リガチャがOFFになるような状況にすると発生しない。
    - カスタムフォント/インストールフォントによる違いも特になさそう。

    なお上記のDirectWrite設定は、以下のような内容で設定しています。
    https://imgur.com/a/TZTq9Bg

    ⇒設定状態で変化があるわけではなさそう。

    (2) グラフィック周りの仕様差の疑い

    以下の2環境で確認してみましたが、いずれの環境でも状況変わらず。


    - Windows 11 (22000.556)
    - CPU: Ryzen 5 3600
    - GPU: Radeon 5600


    - Windows 11 (22000.556)
    - CPU: Celeron J4125
    - GPU: 上記CPUの内蔵GPU

    ⇒少なくともハードウェア差は関係なさそう。

    (3) OS間の仕様差の疑い

    上記①の端末でHyper-Vを動かし、その上に立てた仮想Windows10 (19044.1288) でポータブル版Mery 3.3.5を動かしてみました。(設定は(1)のときと同様)
    なんと、直りました…🙄

    https://imgur.com/a/qrGKvzn

    ⇒つまりWindows 11の不具合…?

    本来であれば上記①か②の端末のいずれかをWindows 10にダウングレードして確認するのがOSのみの差分で比較できるからよいのでしょうが、ひとまずOSバージョンによる仕様差なのかなぁ、、、というところです。

    あと一応、表示テストしていたときのテキストを貼っておきますね。リガチャがONになっていることがトリガーになるようではあるので、リガチャが効く記号群も一緒に書いてあります。

    改行直後に書かれる全角記号の位置が不安定
    
    「e 1
    「e あ
       「e 行頭から半角スペースが続いてもずれる
       「a "a"にすると何故かずれない…
    
    【BBB
    【AAA
    |BBB
    |AAA
    ¥BBB
    ¥AAA
    
    # リガチャ
    <>a|->b++c->
    <!--d~~>e->>
    /==f<=g###h|>
     |  yuko  |  返信
  34. > ⇒つまりWindows 11の不具合…?

    なるほど、Windows 11 でしたか。こちらでも現象が再現されました。

    最新版だと修正されてないかなと思い、Windows 11 Insider Preview (22557.1) でも確認してみたのですがダメでした。

    どうも DirectWrite の仕様 (不具合?) っぽいですね。

    Chrome は DirectWrite は使っているものの、レンダリングは独自実装だったと思うので問題が発生しないのかもしれません。(VS Code もエンジンは Chrome と同じだったような)

    DirectWrite を使っていて、かつリガチャに対応しているアプリということで思いついたものをいくつかテストしてみました。
    https://imgur.com/a/axEcqEj

    ・秀〇エディタさん
    → ズレました

    ・E〇Editor さん
    → ズレました

    ・Windows Terminal
    → ズレました

    ・Visual Studio 2022 (GIF 画像なのでクリックしてみてください)
    → 貼り付けた瞬間は大丈夫だけどスクロールとかしてるとズレたり戻ったり

    改行を挟まなくても、新規文書に↓だけ入力して、

    ↓のように e を入力したり削除したりするだけでカッコの位置がズレてしまいますね。

    「e

    また、↓のように 1 を入力したり削除したりしてもカッコの位置がズレてしまうようです。

    「e1

    文字の組み合わせによってリガチャとして認識されたり解除されたりしているような動きですね。

     |  Kuro  |  返信
  35. > DirectWrite を使っていて、かつリガチャに対応しているアプリということで思いついたものをいくつかテストしてみました。

    おおっ、リガチャが見られそうなエディタがあまり思いつかなかったので、助かりました。それにしても、不思議ですね…(特にVisual Studio)
    何か、開けてはいけない箱を開けてしまったのかもしれません…w

    全角¥マークを見るに、半角表示になってしまっているように見えますね。それで左寄せになったり、中央寄せになったりと、その辺の寄せ方向はアプリによって異なるようですね。
    Windows 11のせいだ、と断定してしまいたいですが、もう少しフォント側も調べてみたいと思います。

     |  yuko  |  返信
  36. > というか、プレビュー部分にフォーカスがある状態で Alt キーを単独で押すだけでフリーズしちゃいますね。(これは何かしら対策しておきます)

    そういえばプレビューを使い始めた時にフリーズしてました。ひょっとするとそれで登録したショートカットが保存されずに無効になってた?いやオプションを閉じた時に保存されるんでしたっけ……
    再起動もしてみたはずですが、うーん、わかんなくなっちゃいました
    慌てず焦らず、しっかり確認してから報告しますね、すみませんでした

    > ところで早速、オイルに刻みネギまぜて炒めるたらこパスタを作ってみました。ひと手間加えるだけで全然違いますね、これは美味しい!😂

    おぉ~それは良かったです
    ネギ油というのがあるらしく、色んな料理に使えるそうです。別の容器にネギ油を保管しても良いそうですが、そこまでしなくていっかと思ってネギたらこパスタにしてみました

     |  シリル  |  返信
  37. >> yuko さん

    > 何か、開けてはいけない箱を開けてしまったのかもしれません…w

    私もテストしていたらとんでもない現象に遭遇してしまいました😱

    Windows 10 (x64) でテストしていたところ、Windows 10 でも 32 ビットアプリだと現象が再現され、Mery は 64 ビット版だと大丈夫ですが 32 ビット版だと Windows 10 でもズレました。

    > 左寄せになったり、中央寄せになったりと、その辺の寄せ方向はアプリによって異なるようですね。

    まさにこれですが、これは謎の運要素が絡んでいるようです。

    Windows 10 (x64) 環境でテスト用に単純なフォームに Direct2D (DirectWrite) を使って文字を描画するだけのシンプルな実行ファイル (32 ビット) を作って表示してみたところ…
    https://imgur.com/a/kYWiXuF (GIF 動画です)

    上から同じ文字列をダーっと X 座標は固定で、Y 座標だけ変えて描画しただけなのですが、再描画するたびに結果が異なるという謎の現象。

    64 ビットでビルドすると問題は発生しませんでした。

    また、リガチャ対応なしの UDEV Gothic のほうだと 32 ビットアプリでも問題は発生しませんでした。

    > Windows 11のせいだ、と断定してしまいたいですが、もう少しフォント側も調べてみたいと思います。

    Windows 10 でも 32 ビットアプリだと発生するという、さらに謎が深まった感じですが、私もこれはとても気になります。

     |  Kuro  |  返信
  38. >> シリル さん

    > ひょっとするとそれで登録したショートカットが保存されずに無効になってた?いやオプションを閉じた時に保存されるんでしたっけ……

    設定はオプションを閉じたときに保存されるのでフリーズしても反映されてるはずですね。

    > 慌てず焦らず、しっかり確認してから報告しますね、すみませんでした

    いえいえ、謝らないでくださいー。長年、ひとりサポセンやってるとフォーラムのノリが分からなくなってしまい、つい事務的な口調になってしまって、文字から冷たく感じられてしまってたらすみません。

    昔のフリーソフト全盛期な頃の掲示板みたいなノリが大好きなのですが、SNS の時代ってほんと気を使っちゃいますね。

    このスレッドではまったりさせていただいてて、癒されています😊

    お気軽に、適当に、まったりとお付き合いいただければありがたいです。

    > ネギ油というのがあるらしく、色んな料理に使えるそうです。

    ネギ油、チャーハンとかに使うと激ウマ!と聞いて、作ってみようかなぁと思ったこともありましたが、面倒くささが勝ちますね…w

    ネギたらこパスタは手軽で香り豊か。パスタも一緒に炒めたので、ところどころカタ焼きそばみたいになっててそこもまた美味でした。

    炒めた後にバターとマヨと醤油で味付けしてモミ海苔をかけましたが、チートですかね?😅 って、食べ物の話してたらおなかすいてきました。

     |  Kuro  |  返信
  39. このスレ見てると、無性に腹が減ってきますね…😋 ネギ油 in たらこパスタ、試してみます。

    > まさにこれですが、これは謎の運要素が絡んでいるようです。

    なんだか愉快な見た目で笑ってしまいました。自動演奏で勝手に動くピアノを見ている気分になりましたw

    そして、私自身まったく意味が分からないのですが、UDEV Gothic v0.0.5 で直りました、、、
    https://imgur.com/a/mmAfSpk

    やったことと言えば、ドットゼロをスラッシュゼロにしたくらいで、まったくリガチャ関連の修正をしていないんです。
    FontForgeの何かの仕様が関係しているのかしら…というところで、もし今後のビルドでも再現がしないようであれば、闇に葬られるわけですが…なんだったんだろう。

     |  yuko  |  返信
  40. > そして、私自身まったく意味が分からないのですが、UDEV Gothic v0.0.5 で直りました、、、

    0.0.5、試させていただきました。ほんとだ、直ってるぅぅぅ!🥴 お疲れ様です!

    > やったことと言えば、ドットゼロをスラッシュゼロにしたくらいで、まったくリガチャ関連の修正をしていないんです。

    これ、ツイッターのほうで拝見してました。ゼロのデザインを変更しただけということですよね。

    Windows 11 のバグかと思いきや、FontForge のバグ説まで出てくると、見なかったことにしてしまいたくなりますね😱

    とりあえずは Mery のせいではなさそうでひと安心ですw

    私のほうは Mery を使って DirectWrite の OpenType 機能のフラグの組み合わせを片っ端から色々と試して、現象が発生しないフラグの組み合わせがないかパワープレイで調査していました。

    結果的には、DirectWrite のリガチャのフラグをオフにしても、別のフラグによって現象が再現されることが確認できたぐらいで、現象が発生しないフラグの組み合わせを見つけることはできませんでした。

    原因がわからないのはなんとも気持ちの悪いものですね…。

    でも、今回の検証作業の副産物として Mery 的にはちょっと面白い機能が作れそうなので次のバージョンをお楽しみに!😋

     |  Kuro  |  返信
  41. > とりあえずは Mery のせいではなさそうでひと安心ですw

    すみません、不要な心配をおかけしてしまいまして…😅

    > でも、今回の検証作業の副産物として Mery 的にはちょっと面白い機能が作れそうなので次のバージョンをお楽しみに!😋

    流石、ただでは転ばぬ精神が素晴らしいですw
    今回の検証で思いついたとは、なんだろう…全然想像がつきません…楽しみにしています!

     |  yuko  |  返信
  42. Twitter見ました。DirectWrite、あんな自由にフラグを適用できるんですね(それを採用できるMeryも流石、なのですが😊)

    またオンリーワンな機能が増えてしまいますねっ。

     |  yuko  |  返信
  43. Twitter、気付いてくれて良かったです😊 そして UDEV Gothic、すごい反響ですね。お疲れ様です!

    > DirectWrite、あんな自由にフラグを適用できるんですね

    ですです。数えたら 81 個もフラグがあって、その組み合わせでも描画が変わる始末。

    別のスレッドですが、以前に yuko さんに salt についてのご助言をいただいたとき、Mery で実装するとなると OpenType 機能の設定画面だとか salt の切り替えとか GUI が面倒くさすぎて無理だなーと思ってました。

    Mery のこの実装は結構、冒険してますよーw

    UDEV Gothic の検証で DirectWrite のフラグを色々と試していましたが、いちいちプログラムを書き換えるのが面倒になって、文字列で指定する方式を思いつきました。

    知らない人には「なんだこれ?」な感じになるので隠しオプションにしようかと思っていたのですが、ベータ版だし表に出してみるかなーということで、CSS の OpenType 機能の構文 (font-feature-settings) で記述できるようにしてみました。
    https://helpx.adobe.com/jp/fonts/using/open-type-syntax.html

    ドットゼロとスラッシュゼロなど、選択できるようになるのでフォント作者様にとっては余計な手間がかかってしまうかもしれませんが…😅

     |  Kuro  |  返信
  44. UDEV Gothicは罫線文字やギリシャ文字などは半角しかないですよね?
    ─│┌┐└┘ など
    αβγ など
    ±§⊥‰♯♭¶´¨°′″ など

     |  通りすがり  |  返信
  45. >> Kuroさん

    > ドットゼロとスラッシュゼロなど、選択できるようになるのでフォント作者様にとっては余計な手間がかかってしまうかもしれませんが…😅

    いえいえ、もしそこで問題が露見したとして、それはフォント側の落ち度ですから、見つかったらむしろありがたいなーという感じです。(同人フォントでしかないので、見つかっても直せるかはともかくとして)

    リリースされるのが楽しみです😊

    そういえば、いつの間にかこのフォーラムでもBIZ UDゴシックが使われるようになっていたんですね!(UDEV Gothicに触れて目についただけで、昔から使われていたのかもですが…)

    >> 通りすがりさん

    > UDEV Gothicは罫線文字やギリシャ文字などは半角しかないですよね?

    今のところは、そうですね。あくまで「現状はこういう仕様」というだけですから、今後対象の記号の増減はあるかもしれません。
    もし不具合など見られた場合はGitHubのissueにてお知らせくださいー。

     |  yuko  |  返信
  46. >> Kuroさん

    > CSS の OpenType 機能の構文 (font-feature-settings) で記述できるようにしてみました。

    ということは、DirectWriteを使うときのフラグではCSSとは違った設定方法なんですね。てっきり "salt" とかCSSと同じような名称でフラグ指定をしたりするのかなぁなんて想像していました。

    ユーザーが入力できるフロントでの設定値はCSSと同じ、としておくと馴染みやすそうですし、いいアイデアですね。

     |  yuko  |  返信
  47. 分かりました。
    ありがとうございます。

     |  通りすがり  |  返信
  48. >> yuko さん

    > そういえば、いつの間にかこのフォーラムでもBIZ UDゴシックが使われるようになっていたんですね!(UDEV Gothicに触れて目についただけで、昔から使われていたのかもですが…)

    そうなんです。といっても Windows 10 に BIZ UDゴシックが実装されてすぐに飛びついたのでもう何年も前になりますがw 英数字は Arial なので微妙に気付きづらいかもですね😅

    ちなみに、それより昔は M+ の Web フォントを使っていました。

    > ということは、DirectWriteを使うときのフラグではCSSとは違った設定方法なんですね。てっきり "salt" とかCSSと同じような名称でフラグ指定をしたりするのかなぁなんて想像していました。

    "salt" とかの名称は CSS とかと同じで、これらは OpenType 機能タグと呼ばれるらしいのですが、DirectWrite の場合は CSS みたいに文字列で指定ってわけにはいかなくて、例えばこんな感じ。

    DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = $746C6173; // 'salt'
    LFontFeature.nameTag := DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES;
    LFontFeature.parameter := 1;
    FTypography.AddFontFeature(LFontFeature);

    "salt" の文字列をこねくり回して 0x746C6173 という数値を作ってそのフラグ (パラメーター) をオン (1) にしてタイポグラフィ (なんすかそれ!) に追加して、それをテキストの中の指定した範囲に適用する、みたいな面倒くささ😭

    なので大したことはやってませんが、Mery 側で CSS 形式の文字列を解析して DirectWrite 形式に変換する的な簡易パーサーを作ってみた感じです。

    実験していたら、さらに、バリアブルフォントのカスタム軸とかも操作できそうな感じになってきましたが、まだ時代が追い付いていない気もするので、できないことにしておきます😆

     |  Kuro  |  返信
  49. >> Kuro さん

    なにやら、どんどんDirectWriteに熟達していってますね…すごい…🙄

    > それより昔は M+ の Web フォントを使っていました。

    そうそう、その頃の記憶があって、「あれ、いつの間にかBIZ UDゴシックだ」って思ったんです。
    MSゴシック・メイリオの派閥(?)が強すぎてあまり目立ちませんが、BIZ UDゴシックもすごく綺麗で、ナイスなプリインストールフォントですよね。

    ところでところで、VSCodeのような複合キーショートカット(Ctrl-K -> Ctrl-U を押すと、選択範囲をUpperCaseにするなど)の動きできないかな…と考えていて、ポップアップメニューの機能を使うことでそれっぽくなって嬉しかったので、ご報告です。

    以下のようなアクセスキー付きのポップアップメニューの生成と、簡易的な操作を実現する関数群のマクロを用意して、Ctrl-Kに割り当てました。
    文字を選択してCtrl-K -> U (Ctrlから指を離さず連続で U を押しても動作する) とすると、選択範囲を大文字にできる、という寸法です。
    これは、隠れた名機能ですね、ポップアップメニュー。これなら複合キーのショートカットも実現できるぞと、色々な工夫の夢が広がります。

    #title="複数キーでのショートカット操作"
    BeginUndoGroup();
    
    var sel = document.selection;
    
    function main() {
      if (sel.IsEmpty) return;
    
      var menu = CreatePopupMenu();
      menu.Add("大文字に変換(&U)", 1);
      menu.Add("小文字に変換(&L)", 2);
      menu.Add("単語の頭文字を大文字に変換(&C)", 3);
      var track = menu.Track(0);
    
      switch (track) {
        case 1:
          upperCase();
          break;
        case 2:
          lowerCase();
          break;
        case 3:
          capitalizeCase();
          break;
      }
    }
    
    function lowerCase() {
      sel.ChangeCase(meCaseLowerCase);
    }
    
    function upperCase() {
      sel.ChangeCase(meCaseUpperCase);
    }
    
    function capitalizeCase() {
      sel.ChangeCase(meCaseCapitalize);
    }
    
    main();
     |  yuko  |  返信
  50. >> yuko さん

    > なにやら、どんどんDirectWriteに熟達していってますね…すごい…🙄

    そんなことないです。Microsoft 的には DirectWrite 使えって感じになっていますが、テキストエディター的には DirectWrite ってそこそこ重いので、個人的にはあまり気が進まないところです😭

    (私のパソコンはいまだに C2D 世代のポンコツなので Steam のゲームやりながら Mery で DirectWrite 使うとめっちゃ遅かったりします)

    > MSゴシック・メイリオの派閥(?)が強すぎてあまり目立ちませんが、BIZ UDゴシックもすごく綺麗で、ナイスなプリインストールフォントですよね。

    ですね~。MS 公式の等幅フォントって MS ゴシック以来ですし、しかもモリサワかよっ!とテンションあがりましたw しかし、BIZ UDゴシックがオプソになるとは…。

    > 複合キーショートカット

    おお、これは面白い!vi な操作も実現できそうで夢が広がりんぐですねw ポップアップメニューが表示されるのも逆にわかりやすくて良いかも😃

     |  Kuro  |  返信
  51. >> Kuroさん

    > 個人的にはあまり気が進まないところです😭

    えっ😮 そうだったんですね。
    むしろノリノリかと思っていましたw でも縦書きとか合字とか、そういうのに対応していこうと思うとDirectWriteに頼らざるをえないところもあって、やっぱり仲良くやっていくしかないかぁ、って感じなんでしょうね。

    > (私のパソコンはいまだに C2D 世代のポンコツなので Steam のゲームやりながら Mery で DirectWrite 使うとめっちゃ遅かったりします)

    C2D…壊れず動き続けてるのが逆にすごいです…🙄 とはいえ、電源とかHDDがイカれることがあれど、CPUが壊れるって私も経験したことないので、CPUはパーツの中でも長寿命なのかもですね。
    ところで、釈迦に説法かもしれませんが、最近家族のPCを購入しまして、LenovoのM75q Tinyって製品がとてもよかったですよ、とオススメしておきます。

    コレ↓
    https://www.lenovo.com/jp/ja/desktops/thinkcentre/m-series-tiny/ThinkCentre-M75q-Gen-2/p/11TC1MTM7G2

    Ryzen 5000番台シリーズが載っているのに6万円台から買えるのが魅力です。Ryzenって内蔵GPU性能がよいので、ゲームもそこそこできてしまうのですよね。
    それでいて、筐体が弁当箱くらいのサイズ感ってのが素晴らしく…良い時代だなぁとセットアップしながら思いました。

    > ポップアップメニューが表示されるのも逆にわかりやすくて良いかも😃

    そうそう、そうなんです。親切設計な複合キーだなぁって思いましたw

    Ctrlを離さずに Ctrl-K -> Ctrl-U などと押して発動できるのがVSCodeっぽくていいなぁと思っていたのですが、キーによってはCtrlを離さなきゃダメなケースもあるみたいです。例えば、今回のマクロでいうと、"単語の頭文字を大文字に変換(&C)" を動かそうと Ctrl-K -> Ctrl-C と押すと、どうもこれは受け付けてくれないようです。(本来は修飾キーなしで押すのが正しいのでしょうけどね)

     |  yuko  |  返信
  52. いつもお世話になっております。

    心地よく使えて、楽しくなるエディタを提供してくださって本当にありがとうございます。
    作業が苦でなくむしろ楽しいと胸を張って言えるのの半分くらいは Mery のおかげだと本気で思ってます。

    今更ですが、Markdown プレビュー プラグイン も素晴らしいです!
    普段以上にやる気に満ち満ちていて、いろいろはかどる気がします。

    が、ひとつだけ要望があって、お邪魔させていただきました。

    段落や見出し、テーブルセル内容の最初と最後にある ASCII 空白以外の空白文字を「削除しない」という選択肢が欲しいです。

    私は Markdown Extra 系統しか扱ったことがなく無知でしたが、markdown-it はもちろん、世間でメジャーな GFM や CommonMark では ASCII 空白だけでなく、Unicode 空白文字も削除するんですね。
    ASCII 空白以外は、要素の内部では存在を無視されることはないと思い込んでました。
    対応していない構文(説明リストなど)は、意図したタグでマークアップされないだけでそのまま残りますが、冒頭(と最後)の空白文字は存在そのものが消えてしまいます。

    プラグインのサポートする構文の仕様と承知の上ですが、全角スペース(U+3000)や NBSP(U+00A0)などを残すことができると嬉しいです。

     |  noon  |  返信
  53. Mery をご愛用いただきありがとうございます。そう言っていただけると励みになります。

    Markdown プレビュープラグインもお試しいただきありがとうございます!まだ開発段階ですし、バグも残ってるのでご利用の際はデータのバックアップを取るなど、ご注意くださいね。

    > プラグインのサポートする構文の仕様と承知の上ですが、全角スペース(U+3000)や NBSP(U+00A0)などを残すことができると嬉しいです。

    Markdown プレビュープラグインは markdown-it を使っているので、構文の仕様も markdown-it に準拠してしまいます。

    markdown-it は現在でも更新されているようなので、そういった機能が搭載された場合は Mery でも対応できるかもしれません。

    また、すでにそういった機能が搭載されてるよ、といった情報をお持ちの方がいらっしゃったら情報をいただけるととっても助かります!

     |  Kuro  |  返信
  54. 丁寧にご回答くださってありがとうございます。

    プログラムのことを何も知らないのに、むちゃなお願いをしてしまってすみませんでした。
    markdown-it もパーサーという言葉すらも今回初めてまともに認識して検索した有様です。Markdown のプログラムってだけでも色々あって別の世界を覗いたような気分です。
    その中でエンジニアの方の記事とかコメントとか拝見した限り、全角スペース(による行頭字下げ)をしたがるような人は誰もいらっしゃらなさそうでした。
    相当変な要望を出してしまったのではないかと思います……。

    自分の無知は恥ずかしい限りですが、おかげで新しい知識の一端に触れられたので、少し勉強させていただこうと思います。
    Mery っていう頼りになる相棒がありますし!

     |  noon  |  返信
  55. 段落の最初に全角スペースを入れたくなるのは、日本語の文章では自然なことだと思います。なにも「変な要望」ではないと思いますよ。
    ところで、自分で作ったマークダウン・プレビュー・プラグインで、marked.js を使っているのですが、marked だと段落先頭の全角スペースは残ります。

     |  honadaiku  |  返信
  56. こんばんは。5 月病とワクチンの副反応で寝込んでいましたが、ようやく回復しました。

    >> noon さん

    ご返信ありがとうございます。

    > プログラムのことを何も知らないのに、むちゃなお願いをしてしまってすみませんでした。

    そんなことないですよー。お気軽に、雑談のノリでコメントいただければ嬉しいです。

    > 自分の無知は恥ずかしい限りですが、おかげで新しい知識の一端に触れられたので、少し勉強させていただこうと思います。

    私も Markdown は知識がなくて勉強しながら開発しているものですから、こういう使い方があるよーとか、こういう機能があると便利かもーとか教えていただけると参考になります。

    >> honadaiku さん

    情報ありがとうございます。

    marked を試してみました。確かに全角スペースが保持されてますね。marked に浮気してしまおうかしら。

    >> noon さん、honadaiku さん

    > 段落の最初に全角スペースを入れたくなるのは、日本語の文章では自然なことだと思います。なにも「変な要望」ではないと思いますよ。

    ですです。日本語の文章だと必須だと思います。

    私もその後、調べていたのですが CommonMark は全角スペースを削除する仕様、GFM (GitHub Flavored Markdown) は削除しない仕様のようです。

    marked のドキュメントを見てみると GFM 対応が明記されていますが、markdown-it のほうは GFM 対応ではなく CommonMark に準拠だそうで、CommonMark に加えて GFM っぽい (similar to GFM) こともできる独自仕様らしいです。

    現在のところ markdown-it には全角スペースを保持するオプションは無いようで、拡張機能も探してみたのですが見当たりませんでした。

    markdown-it の開発者コミュニティでそういった機能についての話題を見つけたのですが、回答としては「拡張機能でも無理」「パーサーの書き換えが必要」とのことで、メンテナンス性を考えるとちょっと難しいかなといったところです。

    【参考サイト】markdown-it/markdown-it - Gitter
    https://gitter.im/markdown-it/markdown-it?at=5aaffda6458cbde55751c1bc

    …と、諦めかけていたのですが markdown-it のソースコードを読んでいたらパーサーを書き換えずに実現できるトリックを思いついたので、ちょっと試してみようと思います。

     |  Kuro  |  返信
  57. > …と、諦めかけていたのですが markdown-it のソースコードを読んでいたらパーサーを書き換えずに実現できるトリックを思いついたので、ちょっと試してみようと思います。
    👍
    markdown-it はプラグインで機能拡張できるのが利点だと思うので、markdown-it でいけるのならその方がいいと思います。
    (……きこえますか…きこえますか……隠しオプションでいいので、ユーザーがプラグインを追加できる機能を希望します……)

    marked での全角スペースの扱いは、テーブルの中では消えてしまったり、見出しでも # の後ろは消えるけど、Setext形式だと残ったり、微妙です。中の人が日本語を使わないから見落としてるだけっぽい感じなので、ばれたら消されるかも。

     |  honadaiku  |  返信
  58. 雑談ですが、最近の Microsoft は Windows 10 にも WebView2 のランタイムを自動インストールしているようですね。これで Markdown プレビューを配布しやすくなりました。

    >> honadaiku さん

    > markdown-it はプラグインで機能拡張できるのが利点だと思うので、markdown-it でいけるのならその方がいいと思います。

    それはありますね。Markdown プレビューでも markdown-it の拡張機能を使うことで、数式 (KaTeX)、ハイライト (== 構文)、タスクリスト (チェックボックス) を実装しています。

    > (……きこえますか…きこえますか……隠しオプションでいいので、ユーザーがプラグインを追加できる機能を希望します……)

    に、兄さん、頭が痛いよ…… (違)

    プラグインってローカルの js ですよね?サーバーサイドの markdown-it.js にローカルに置いてある markdown-it のプラグイン js を組み込むなんてことできるのでしょうか。セキュリティ的に厳しそうな気もしますが、それが出来たら夢が広がりますね。

    > marked での全角スペースの扱いは、テーブルの中では消えてしまったり、見出しでも # の後ろは消えるけど、Setext形式だと残ったり、微妙です。

    そうだったのですね。GitHub (GFM) だとテーブルや見出しでもきちんと全角スペースが保持されているようなので、marked も GFM サポートが進めばいずれ対応されるのではないでしょうか。

    > 中の人が日本語を使わないから見落としてるだけっぽい感じなので、ばれたら消されるかも。

    それは考えたくないですね。その点では今回の markdown-it の全角スペース保持のトリックも中の人が仕様を変更してしまうと動かなくなる恐れがあります😱

    さて、全角スペース保持の実験ですが、うまくいきました。近日中には Markdown プレビューの新しいバージョンを公開できると思うので、よろしくお願いします!

     |  Kuro  |  返信
  59. 脳内にお伝えしたかったのは、MarkdownPreview プラグインのオプションの話です。

    例えば、Mery\Plugins\MarkdownPreview フォルダに markdown-it-sup.min.js と markdown-it-sub.min.js を入れておいて、MarkdownPreview.ini に

    [Markdown]
    Scripts=markdown-it-sup.min.js,markdown-it-sub.min.js
    Options=.use(markdownitSup).use(markdownitSub)

    とか書くと markdown-it.js と一緒に読み込まれて上付き下付きが使えるようになる、みたいなものを考えていました。

     |  honadaiku  |  返信
  60. なるほど、そういう使い方でしたか。

    私はてっきり

    use(require('markdown-it-mark'));

    みたいな呼び出し方かと思ってました。

    ↑だと Node.js に依存するので無理ですが、markdown-it-sup.min.js のように単体で動作するプラグインなら対応できるかもしれないです。

    もちろん

    use(markdownitSup)

    の部分は第 2 引数でオプションがあるプラグインもありそうなので、ユーザー側で記述してもらう必要がありますが。

    面白そうなのでちょっと研究してみたいと思います。

     |  Kuro  |  返信
  61. こんばんは。いやー、暑い。と思ったら寒い!気候が安定しない今日この頃、油断すると一気に体調もってかれますね。

    雑談ネタということで、Markdown プレビュー プラグインの新しいバージョンができたので貼ってみます😁

    今回はバグフィックスと、段落内の先頭と末尾の全角空白の保持、markdown-it のプラグイン対応です。

    markdown-it のプラグインは [オプション] の [プラグイン] カテゴリから [追加] で簡単に使えるようにしてみました。詳細は README.txt をご参照ください。

    ---
    Markdown プレビュー プラグイン Ver 1.0.2 (64 ビット版) [1,788,715 バイト 2022/05/16]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.2.zip
    ウイルスチェック: https://www.virustotal.com/#/file/231de9f246d8be42ff25a58a8aa6b6b102741756b7d07ef29a73a4c55556c9c6

    現在、ベータ版につき動作検証にご協力いただけるかたは無料でお試しいただけますが、再配布は禁止とさせていただきます。

    ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    ---

    動作検証にご協力いただけると大変ありがたいです。

     |  Kuro  |  返信
  62. わーすごい! バージョンアップありがとうございます。
    あっという間に理想が実現してしまいました……。
    しかもデフォルトで空白が残るだなんて、喜びのあまりジタバタしています。

    要望した当人が初っ端で躓いてもだもだしている間に、お調べくださって、さらに解決策を思いついてサッと実装してくださって、そのひらめきと知識とスキルに感服です。
    身につけるまで相当な時間と労力をかけられたでしょうに、こうしてさらっと提供してくださって本当に感謝の念に堪えません。
    (ちょっと大袈裟で気持ち悪い表現になっているかもしれませんが、それだけありがたがっているのだと大目に見てやってください)

    >> Kuroさん、honadaikuさん

    段落の字下げについて、自然なことだとおっしゃっていただけてほっとしました。てっきりスタイルシートで対応するのがスタンダードな世界なのかと思っておりました。
    これからは堂々と全角空白使っていこうと思います!

     |  noon  |  返信
  63. そんなに喜んでいただけると感無量ですw

    > しかもデフォルトで空白が残るだなんて、喜びのあまりジタバタしています。

    そこはちょっと考えた部分ですが、やっぱり国産のテキストエディターですから日本語向けにそういったおちゃめな仕様 (CommonMark の仕様外) もアリかなと思ってデフォルトにしてみました。

    > 身につけるまで相当な時間と労力をかけられたでしょうに、こうしてさらっと提供してくださって本当に感謝の念に堪えません。

    いえいえ、まだまだ勉強中の身ですよー。今回はたまたま熱で数日寝込んでいたもので、時間が有り余っていただけです😅

    > これからは堂々と全角空白使っていこうと思います!

    コンテンツにもよりますが、Web サイトですと字下げなしでもそれほど気になりませんが、小説だったり電子書籍だったりすると字下げ欲しいですよね。

    ぜひ、Markdown プレビュー プラグインで遊んでいただき、バグを見つけたらご報告いただけると嬉しいです!

     |  Kuro  |  返信
  64. 👍+1
    アップデートお疲れ様です。
    ワクチン副作用は大変そうでしたね。私もこれから3回目なので、あまり酷くならないといいなぁ、と思ったり、、、

    ところで、CommonMarkの標準仕様ではないものの、脚注(Footnotes)には対応しているのかな?と試してみたところ、対応しているような、そうでないような状態になったのでご報告です。

    キャプチャ:
    https://imgur.com/a/8cMGR1M

    Footnotesで [^1] など用意したものは、ハイパーリンクになっていますが、実際にその説明文(例では「aiueo」の部分)はプレビュー上で表示されていません。
    また、ハイパーリンクになっている箇所をクリックしてみると、「指定されたファイルが見つかりません。 C:\path\to\file\aiueo.md」となるため、Footnotesの説明文をファイル名としたリンクになっているようです。
    (欲を言えば、このハイパーリンクをクリックしたら該当のFootnotesにスクロールされるのが使いやすいですが、それは求めすぎ感ありますね)

    Footnotesの表示イメージは以下のようなものです。
    https://github.blog/changelog/2021-09-30-footnotes-now-supported-in-markdown-fields/

    拡張記法ではありますが、Markdownノートアプリでは割とよく対応されている記法、という印象です。とはいえ拡張記法という立場なので「Footnotesには未対応!」としてしまうのもアリですが、説明文部分は見えるようになっていてほしいかなぁと思います。

     |  yuko  |  返信
  65. 早速お試しいただきありがとうございます。

    > ワクチン副作用は大変そうでしたね。私もこれから3回目なので、あまり酷くならないといいなぁ、と思ったり、、、

    そうなんですよー。何かあったときのためにツイッターでこまめに状況を報告しようと思っていたものの、しんどすぎて無理でしたw

    3 回目を受けた際にはくれぐれもお大事になさってくださいね。

    Footnotes ですが、今回の新機能として markdown-it のプラグインを追加することで Markdown の構文を拡張できるようになりました。

    Footnotes なら、こちらですね。
    https://github.com/markdown-it/markdown-it-footnote

    ↑これをダウンロードしてきて dist フォルダーの markdown-it-footnote.min.js を [オプション] の [プラグイン] から [追加] ボタンで追加すれば Footnotes 構文が使用できるようになります。

    ハイパーリンクのクリックで Footnotes へのスクロールもできるようです。

    その他、多くのプラグインが提供されています。
    https://github.com/markdown-it/markdown-it#syntax-extensions

    プラグイン機能の詳細は README.txt に書いてみたので、ご参照いただければと思います。

     |  Kuro  |  返信
  66. >> Kuroさん

    > 3 回目を受けた際にはくれぐれもお大事になさってくださいね。

    ありがとうございます。心してかかりたいと思いますw

    > Footnotes ですが、今回の新機能として markdown-it のプラグインを追加することで Markdown の構文を拡張できるようになりました。

    おお、なるほどっ。
    私としたことが折角の新機能を見逃していました。

    ふむふむ、markdown-it というMarkdownパーサーがプラグイン拡張できるようになっているんですね。お陰様でFootnotesも使えました。ちゃんとアンカーも効いてて素晴らしい。

    しかし、公開されているプラグインがかなりの数あって驚き…😮
    https://www.npmjs.com/search?q=keywords:markdown-it-plugin
    これはプラグインを探すだけでも楽しめますね…!

     |  yuko  |  返信
  67. >> yuko さん

    うまくいったようで良かったです。

    しかしながら、私のほうでも markdown-it-footnote を試してみたら、同じ番号の脚注が複数あったときにアンカーがうまく動作してないですね。

    どうやら WebView2 の仕様のようで、ハイパーリンクのフラグメント識別子 (# から始まる文字列) にコロン : が含まれるとダメっぽいです。

    (markdown-it-footnote は同じ脚注が複数あるときに「識別子:連番」の形式でアンカーを貼るみたい)

    これは対策を考えてみます。markdown-it-footnote.js をカスタマイズしても良いですが、できれば WebView2 側で対策しておきたいところです。

    あと、最初にレスを書いたときは気付いてなかったのですが、Footnotes って GitHub の標準機能になっていたのですね。そういうことなら Markdown プレビューにも標準で組み込んで良いかもです。

    > しかし、公開されているプラグインがかなりの数あって驚き…😮
    > https://www.npmjs.com/search?q=keywords:markdown-it-plugin

    すごい量ですね!↑のは npm (Node.js のパッケージ) なのでそのままでは動作しないものもあるかも?

    markdown-it-emoji は :) ←こんなので絵文字を入力できちゃうという、なかなか面白いプラグインでした😆

     |  Kuro  |  返信
  68. > markdown-it-emoji は :) ←こんなので絵文字を入力できちゃうという、なかなか面白いプラグインでした😆

    英語圏の顔文字みたいな表記で絵文字に変換されるやつですね。キュートな機能で好印象なんですが、対応する絵文字を覚えていられる自信がありませんw

    > すごい量ですね!↑のは npm (Node.js のパッケージ) なのでそのままでは動作しないものもあるかも?

    かもしれませんね。markdown-itの通常の使用法を知らないのですが、軽く眺めてみた感じ、node.jsでコンパイルか何かが必要だったりするのかなぁ、と思い、そっ…とタブを閉じてしまいました😅

    > あと、最初にレスを書いたときは気付いてなかったのですが、Footnotes って GitHub の標準機能になっていたのですね。そういうことなら Markdown プレビューにも標準で組み込んで良いかもです。

    そうなんですよー。とはいっても去年に搭載されたようなので、GFM的には新しめの記法なようですね。(GitHubであまりFootnotes書くことが無かったので使えないことに気づかなかった)

     |  yuko  |  返信
  69. https://i.gyazo.com/ad6fa112144a72ad90d1e75813f8bf6c.png
    私はこんな感じにカスタムしてます。
    それで物語書いている光景ぽんと投げておきます。

    無理せず頑張って欲しいですね

     |  瑞葉  |  返信
  70. あけましておめでとうございます。

    お正月に Markdown プレビュープラグインのスタイルシートを弄っていて気づいたことを報告させてください。
    Markdown プレビューのお話はスレッド内で完結した方がよろしいような気がするので、こちらで失礼いたします。

    Markdown → HTML への変換で余計な div タグが追加されることがあります。
    (プレビューを「HTML 形式で保存」したもののソースを見た場合のことです)

    環境
    ・Windows 11 Home、バージョン:22H2、64ビット
    ・Mery (x64) Version 3.4.0
    ・Markdown プレビュー (x64) Version 1.0.2

    が、新規にインストールした Mery に Markdown プレビュープラグインを入れただけの状態でも同じ現象が起きます。

    1. チルダやバッククォートで囲むタイプのコードブロックで内側に div(と code)が入ります。

    ~~~
    コード
    ~~~

    <pre><code><code><div>コード
    </div></code></code></pre>

    2. 直接 HTML タグを記述した場合に、その前後(の空行?)に空の div 要素が挿入されます。
    細かく確認できていませんが、こちらは要素によって少し挙動が違うようです。以前のブロックレベル/インラインの分類でいうと、下記はブロックレベル要素の場合で、インライン要素の場合は、上側の例は普通に変換されて、下側のようなタグのみの行があるとその前後の空行に div が挿入されるようです。

    <p>テキスト</p>
    
    <p>
    テキスト
    </p>

    <div  ></div>
    <p>テキスト2</p>
    <div  ></div>
    <p>
    テキスト5
    </p>

    スタイルシートをカスタムしていて変なところにスタイルが適用されたために気づきましたが、どちらも普通にプレビューする分には問題ありません。
    全角空白を保持できるようにしていただいたことの副作用だったりしたら大変申し訳ないのですが、markdown-it の demo では起きない事象なのと、1. の方は HTML の文法的に微妙なので、一応お知らせさせていただきました。

    markdown-it のプラグイン追加が楽しすぎて、いろいろ(一部無理やり)追加して遊んでおります。
    今年も Mery に大変お世話になる予定です。どうぞよろしくお願いいたします。

     |  noon  |  返信
  71. すみません。
    pre タグをちゃんとできてなかったみたいで、ひどい見た目になってしまいました……。
    変な数字も残してしまったし、読みづらくて申し訳ありません。

     |  noon  |  返信
  72. あけましておめでとうございます。

    > Markdown プレビューのお話はスレッド内で完結した方がよろしいような気がするので、こちらで失礼いたします。

    はい!まだ正式リリースしていないもので、こちらにご報告いただけて助かります。

    > pre タグをちゃんとできてなかったみたいで、ひどい見た目になってしまいました……。

    いえいえ。<pre>タグの中に<pre>タグがあったので崩れてしまったようですね。とりあえず<>を全角に変更しておきました。

    > 1. チルダやバッククォートで囲むタイプのコードブロックで内側に div(と code)が入ります。

    確認しました。div タグは必要なさそうですね、修正しておきます。

    > 2. 直接 HTML タグを記述した場合に、その前後(の空行?)に空の div 要素が挿入されます。

    確認しましたところ、この div タグはエディター側とプレビュー側でスクロール位置を同期するための目印として出力しているもので、動作に必要なタグでした。

    [HTML 形式で保存] のときは目印の div タグの出力を抑制する、といった対応で良ければできそうです。

    プレビューと保存した HTML とで div タグの有無が変わってしまうので、スタイルシートをカスタムするときに若干、影響があるかもしれませんが。

    > markdown-it のプラグイン追加が楽しすぎて、いろいろ(一部無理やり)追加して遊んでおります。

    markdown-it のプラグイン、自分で作れたりもするみたいなので結構遊べそうですよね。

    でも、あまり検証できていないもので、Mery でこんな面白いプラグインが動いたよ!といった情報があれば教えていただけると嬉しいです。

    こちらこそ、今年もよろしくお願いいたします。

     |  Kuro  |  返信
  73. pre タグを修正いただいてありがとうございます。お手数かけてすみません、助かりました!

    > 確認しましたところ、この div タグはエディター側とプレビュー側でスクロール位置を同期するための目印として出力しているもので、動作に必要なタグでした。
    >
    > [HTML 形式で保存] のときは目印の div タグの出力を抑制する、といった対応で良ければできそうです。

    納得です。それは大切なタグですね!

    今回、すべての要素にボーダーを指定したテスト用スタイルシートを適当に突っ込んだために、何もないところに線がある?となってしまってお知らせしましたが、通常使う分にはいずれも全く問題ないのでこのままでも構わないと思います。謎の線の正体を探るためにソースを見たくて「HTML 形式で保存」しましたけど、私の場合は普段は HTML を保存することもほとんどありませんし……。

    markdown-it のプラグインは、多彩すぎて自分では使う機会のない機能だったりするんですが、拡張できるのが面白くて色々入れたり消したりしてしまいます。いろいろ提供してくださる作者様様です。

    単体では配布されていないプラグインでも、コードが公開されていればプラグイン用のコード?を追加すると大抵動く気がします(改変にあたると思うのでおすすめはできません)。
    ※Markdownプレビューの方で見出し要素に、中身をそのまま id にしてくださってるようなので、そこに抵触するプラグイン(目次を生成したり任意の id 付加したり)は相性悪そうでした。

    そのままで動くもの
    ・markdown-it-attrs (見出し要素への id 付加は×)
    ・markdown-it-div
    ・markdown-it-multimd-table-ext
    ・markdown-it-sidenote

    多分コード追加で動いたもの
    ・markdown-it-bracketed-spans
    ・markdown-it-collapsible
    ・markdown-it-image-caption
    ・markdown-it-ruby
    ・markdown-it-small

    動作可能なプラグインは他にももっとあったと思いますが、今わかるのはこのくらいです。
    個人的には特に MultiMarkDown のテーブル拡張書式が、複雑な表が組めるようになって楽しいです。

     |  noon  |  返信
  74. > 私の場合は普段は HTML を保存することもほとんどありませんし……。

    なるほど、そうでしたか。いずれにしても HTML で保存のときはなるべくクリーンなものを出力したほうが良さそうなので対応しておきますね。

    あと、見落としていましたがコードブロックのほうは余計な code タグも出力されていたのですね。これも修正しておきます。

    > 動作可能なプラグインは他にももっとあったと思いますが、今わかるのはこのくらいです。

    おおー、結構ありますね。情報ありがとうございます!

    > 個人的には特に MultiMarkDown のテーブル拡張書式が、複雑な表が組めるようになって楽しいです。

    面白そうなので私も markdown-it-multimd-table-ext を導入してみました。これ、めっちゃ便利ですね。

    町内会のお知らせとかでちょっと手の込んだ表を作るときは Excel を使ってましたが、これがあれば Mery + Markdown からの PDF 出力で完結しそう~。

    しかし、プラグインを追加するときの use() の部分が自動判別だと動作しなくて小一時間ほど悩みました。

    Mery では "markdownit" + "何らかの単語" で構成されてる変数を調べて、use() の部分を自動判別しているのですが、markdown-it-multimd-table-ext の場合、

    use(markdownit)

    …なのですね。"何らかの単語" が付いてないパターンもあるとなると、他に自動判別させるための目印みたいなものはないのかなぁ…。

    あと、markdown-it-ruby が便利そうだなぁと思ったのですが、なるほど、dist フォルダーがないものは自力でなんとかしないといけないわけですね。このあたりは知識がないもので私には難しそうですが… ^^;

     |  Kuro  |  返信
  75. Markdown プレビュー プラグイン、更新してみました。

    コードブロックの不要な code、div タグの除去。脚注 (markdown-it-footnote) を標準搭載など。

    ---
    Markdown プレビュー プラグイン Ver 1.0.4 (64 ビット版) [1,795,386 バイト 2023/01/11]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.4.zip
    ウイルスチェック: https://www.virustotal.com/#/file/54b1f64be34015aebaf2d02397d609477574125d6184d0922f350f8db527acd5

    現在、ベータ版につき動作検証にご協力いただけるかたは無料でお試しいただけますが、再配布は禁止とさせていただきます。

    ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    ---

    さて、Markdown 機能。需要がなさそうだったのでお蔵入りにしてましたが、まだ使ってくれているユーザーさんがいらっしゃったとは…

    なんだか嬉しくなってきたので、以前にツイッターでつぶやいてた、これ ↓
    https://twitter.com/haijinboys/status/1462774261899091973?s=20&t=Vm7UViADbC7TrIwIvFmeWQ

    遅めのお年玉ということで公開してみます!

    ---
    Markdown バー プラグイン Ver 1.0.1 (64 ビット版) [1,052,808 バイト 2023/01/11]
    https://www.haijin-boys.com/download/MarkdownBar-x64-1.0.1.zip
    ウイルスチェック: https://www.virustotal.com/#/file/6b10ba7697274ba831f8ff7e54e7887880e19f665e16128b48541160dd69636b

    テキストエディター Mery のツールバーに Markdown バーを追加して、ボタンひとつで Markdown の記法を入力したり、リストの編集や目次の作成ができるプラグインです。

    ## 特徴

    - ボタンひとつで Markdown を簡単入力
    - キーボード ショートカットで Markdown を入力
    - 目次の作成、目次の更新
    - キーボード操作でのリスト編集を補助
    - テーブル構文の整形
    - 貼り付けによるリンクの作成

    Markdown にかかわるマクロを導入されている場合、プラグインと競合するかもしれないので、マクロを無効にするかプラグインの設定を変更してみてください。

    動作環境は Mery Ver 2.8.3 以降なのでご注意ください。(できれば最新版の Mery が良いです)

    詳細な機能や使い方は同梱の README.txt をご参照ください。

    現在、ベータ版につき動作検証にご協力いただけるかたは無料でお試しいただけますが、再配布は禁止とさせていただきます。

    ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    ---

    2 つのプラグインを組み合わせると、Mery がちょっとした Markdown エディターになるかもしれません。ぜひ、遊んでみてくださいね。

     |  Kuro  |  返信
  76. > しかし、プラグインを追加するときの use() の部分が自動判別だと動作しなくて小一時間ほど悩みました。

    use() には自動で markdownitMultimdTable と入ったような?と思ったら、MultiMarkdown のテーブル拡張のプラグインは、本家?(無印)と派生版?(-ext)と少なくとも 2つあるんですね。今まで気づいてませんでした。びっくり。

    > dist フォルダーがないものは自力でなんとかしないといけないわけですね。このあたりは知識がないもので私には難しそうですが… ^^;

    私はプログラムは一つも分かりませんけど、公式のプラグインにある冒頭部分のコードを、使いたいプラグインにくっつけてみたら Markdown プレビューで動きました。棚ぼたです。
    …こんなやり方でも、一応参考になるかもなので晒しておきます。

    1. 使いたいプラグインのコード(おそらく index.js とか)を用意します。適当にリネーム。

    2. コードをもらう公式プラグインも用意します。なんとなくコピペ元とコピペ先のプラグインが扱う要素のレベル(インライン/ブロック)を合わせた方がいいのかな?とは思います。

    2. 公式プラグインの 'use strict'; より前の部分のコードを、動かしたいプラグインの先頭(use strict より前)にコピペします。

    3. 貼り付けた部分の真ん中あたりの markdownit○○ をプラグイン名に変更します。(たぶんここの名前が Mery で使うときに use() の中に入れる部分なります)

    4. 公式プラグインのコードの末尾 2行(括弧が複数連続しているところ)を、動かしたいプラグインの末尾にコピペして出来上がり。

    と、上記のヒドイ手順を公開してよいものか葛藤しているあいだに、更新&お年玉…!
    ありがとうございます。Markdown プレビュー こよなく愛用するものとして、心ときめく贈り物です。
    使うの楽しみです、ダウンロードするだけでわくわくてします。

     |  noon  |  返信
  77. Markdown プレビュー プラグインのCtrl+Vだけでリンク化する機能、Notionライクな感じで最高でした…!! (感涙)

     |  yuko  |  返信
  78. >> noon さん

    > …こんなやり方でも、一応参考になるかもなので晒しておきます。

    情報ありがとうございます。

    すごい…。いただいた手順どおり、markdown-it-ruby で試してみたら簡単に動きました!これは夢が広がりそうです。

    > 使うの楽しみです、ダウンロードするだけでわくわくてします。

    Markdown バー プラグインのほうは、Markdown をすらすら書けるかたにはあまり役に立たないかもしれませんが、楽しんでいただけると嬉しいです。

    >> yuko さん

    早速お試しいただきありがとうございます。

    > Markdown プレビュー プラグインのCtrl+Vだけでリンク化する機能、Notionライクな感じで最高でした…!! (感涙)

    これは Markdown バー プラグインのほうの機能ですね。

    表に出てこない機能は Markdown プレビューと Markdown バーのどっち側の機能なのか分かりづらいのはありそう…

    開発してたのが 1 年前ぐらいなもので、↑ の機能、まったく思い出せませんでした (w

    なるほど、URL をコピーして「範囲選択」してから Ctrl + V でしたか。「範囲選択」せずに Ctrl + V しててハマりました…😅

     |  Kuro  |  返信
  79. > これは Markdown バー プラグインのほうの機能ですね。

    あ、コピペミスをしていました (汗)
    Markdown バーとあるので、ツールバーとしての機能だけかと思いきや、思わぬ高機能ぶりに驚きました。(ショートカットキーなどの凝った専用オプション画面まで!)

    ところで私、仕事でJoplinというMarkdownノートアプリを使っています。これがあまり編集機能部分が高機能ではないのですが、それを補うかたちで外部のテキストエディタに編集を譲る機能がありまして、Meryをその外部テキストエディタに使っています。
    Markdownでノートを取るとなると参考リンクを残すことが多いので、大活躍しそうです。

    > 開発してたのが 1 年前ぐらいなもので、↑ の機能、まったく思い出せませんでした (w

    Twitterで開発経過を眺めていた記憶があるのですが、そうですか、もうあれから1年も経っていましたか… (体感半年前)

     |  yuko  |  返信
  80. どうもお世話になってます
    Markdown プレビュー プラグイン
    以前公開された時.mdのビューアになるかと導入
    わざわざブラウザを立ち上げなくていいので重宝してます
    今回のせっかくなのでmarkdown-itプラグインを試しました
    markdown-it-deflist.min.js
    markdown-it-emoji.min.js
    markdown-it-footnote.min.js
    markdown-it-mark.min.js
    markdown-it-multimd-table.min.js
    markdown-it-sub.min.js

    いくつか質問お願いします
    markdown-it-multimd-table.min.jsのみ[use()]が自動入力されず空白でした
    markdownitMultimdTableと入力でいいのでしょうか?

    以下の手順で試しました
    distフォルダ
    markdown-it-multimd-table.min.jsをクリック
    Rawをクリック
    右クリックメニュー 名前を付けてページを保存
    MeryPortable\Plugins¥markdown-itプラグイン¥に保存
    Markdown プレビュー プラグイン設定
    [use()]にmarkdownitMultimdTableと入力
    これでサンプル一番下チェスのみサイトの様に表示されないのは正しい?

    markdown-it-mark.min.js
    プロ生ちゃんエディションの黒背景だと
    Markdown プレビューの方ハイライトが見えない
    Markdown プレビューの方の色設定は出来ますか?
    よろしくお願いします

     |  kiyohiro  |  返信
  81. >> yuko さん

    > (ショートカットキーなどの凝った専用オプション画面まで!)

    オプション画面作るのめっちゃ疲れました (w

    ショートカットキーは Mery 本体側よりプラグイン側の方が優先されるのでご注意くださいね。

    > ところで私、仕事でJoplinというMarkdownノートアプリを使っています。

    Joplin は Markdown 機能を開発するときに参考にしたので、ちょっと影響を受けてる部分もありますね。

    外部のエディターで編集できる機能、これは知りませんでした。

    すごいですね、この機能。Mery で編集して上書き保存したら即座に Joplin に反映される!

    >> kiyohiro さん

    Markdown プレビュー プラグインをお試しいただきありがとうございます。

    > markdown-it-multimd-table.min.jsのみ[use()]が自動入力されず空白でした
    > markdownitMultimdTableと入力でいいのでしょうか?

    私も詳しくは分かりませんが、markdown-it-multimd-table はいくつか派生版もあるようで、use で指定する文字列が異なる場合もあるみたいです。

    私が試したものだと markdownitMultimdTable で動作するものもありましたし、動作しないものもありました。

    use に以下を設定するとチェス盤も表示されるようにならないでしょうか?

    markdownitMultimdTable, { multiline: false, rowspan: false, headerless: true }

    > markdown-it-mark.min.js

    mark につきましてはプラグインを導入しなくても、はじめから Markdown プレビュー プラグインに組み込まれています。

    Markdown プレビュー プラグインの [オプション] で [Markdown] カテゴリの [ハイライト == を有効にする] をオンにすると有効になります。

    > Markdown プレビューの方ハイライトが見えない
    > Markdown プレビューの方の色設定は出来ますか?

    Markdown プレビュー プラグインの配色は github-markdown-css を採用しており、ハイライトの色はその仕様によるものですが、スタイルシートで色を変更することもできます。

    (1) user.css みたいな名前で適当なファイルを作成します。

    (2) その中に以下を記述します。

    .markdown-body mark {
      background-color: rgba(187,128,9,0.8);
    }

    ↑ は rgba 形式で適当に濃くしてますが、background-color: #ff0000; みたいな指定もできます。

    (3) Markdown プレビュー プラグインの [オプション] で [プレビュー] カテゴリの [追加のスタイルシート] で user.css を設定します。

    お試しくださいませ。

     |  Kuro  |  返信
  82. 回答ありがとうございます
    > 私も詳しくは分かりませんが、markdown-it-multimd-table はいくつか派生版もあるようで、use で指定する文字列が異なる場合もあるみたいです。

    ここので試しました
    https://github.com/redbug312/markdown-it-multimd-table#readme
    > use に以下を設定するとチェス盤も表示されるようにならないでしょうか?
    > markdownitMultimdTable, { multiline: false, rowspan: false, headerless: true }
    ダメでした
    旧バージョンのver3などはuseの自動入力されるみたいです
    まあ、実際それはど重要ではなく他のテーブル構文サンプルは表示出来るのでよしとします

    ハイライトは
    > .markdown-body mark {
    >
    > background-color: rgba(187,128,9,0.8);
    >
    > }
    で表示出来ました

     |  kiyohiro  |  返信
  83. > ここので試しました
    > https://github.com/redbug312/markdown-it-multimd-table#readme

    こちらでも上記のもので試してみましたが、use に markdownItMultimdTable を指定しても動作しないようですね。

    > まあ、実際それはど重要ではなく他のテーブル構文サンプルは表示出来るのでよしとします

    他のテーブル構文サンプルはプラグインを導入しなくても割とそれなりに表示されるみたいなので、プラグイン自体、動作していない可能性もありそうです。

    私のほうでは以下の use 設定でうまく動作しました。

    use(

    markdownit, { multiline: true, rowspan: true, headerless: true }

    )

    オプションはすべて true にしてますが、お好みで設定してください。ちなみに、チェス盤が描画できるオプションは "headerless: true" の部分です。

    ところで、markdown-it のプラグインが正常に動作してるかどうか判断が難しいと思うので、Markdown プレビュー プラグインのちょっとした隠し機能をご紹介します。

    Mery を終了 (タスクトレイに常駐している場合はトレイアイコンも終了) した状態で、メモ帳などを使って MarkdownPreview.ini (AppData\Roaming\Mery\Plugins\MarkdownPreview\MarkdownPreview.ini) の [MarkdownPreview] セクションに Debug=1 を追記します。

    [MarkdownPreview]
    CustomBarPos=2
    AutoDisplay=0
    ModeList=Markdown
    OpenStartup=0
    Debug=1

    ↑ こんな感じ。

    これで Mery を起動して、Markdown プレビュー プラグインにフォーカスがある状態で F12 キーを押すと「デベロッパー ツール」が起動します。

    DevTools の [コンソール] タブを開いて、エラーメッセージが出ていたらプラグインは正しく動作していない状態です。

    また、[要素] タブから Markdown でレンダリングされた結果の HTML も確認できるので、スタイルシートのカスタマイズなどにも役立つと思います。

    ちょっと難しめの機能ですが雑談ということで、ご興味のある方はお試しくださいませ。

     |  Kuro  |  返信
  84. 回答ありがとうございます
    > use(
    > markdownit, { multiline: true, rowspan: true, headerless: true }
    > )
    でチェスの表示できました

    ちなみに読み返してきずきましたがKuroさんは
    markdown-it-multimd-table
    https://github.com/redbug312/markdown-it-multimd-table
    ではなく
    markdown-it-multimd-table-ext
    https://github.com/jppellet/markdown-it-multimd-table-ext
    だったんですね

    もう一つ質問お願いします
    どう違うのか両方入れて確認してみました
    markdown-it-multimd-table
    use(markdownit, { multiline: true, rowspan: true, headerless: true })
    markdown-it-multimd-table-ext
    use(markdownitMultimdTable)
    だとチェスの表示出来ない
    順番変更で
    markdown-it-multimd-table-ext
    use(markdownitMultimdTable)
    markdown-it-multimd-table
    use(markdownit, { multiline: true, rowspan: true, headerless: true })
    だとチェスの表示出来る
    これプラグインの順番、下から優先ですか?

    markdown-it-multimd-table-ext

    use(markdownitMultimdTable, { multiline: false, rowspan: false, headerless: true })
    で表示出来ました
    違いがよくわからなかったので
    Kuroさんに合わせて
    markdown-it-multimd-table-ext
    の方を使うことにします

    > ところで、markdown-it のプラグインが正常に動作してるかどうか判断が難しいと思うので、Markdown プレビュー プラグインのちょっとした隠し機能をご紹介します。
    これも時間がある時試してみます

     |  kiyohiro  |  返信
  85. Markdown バー プラグイン使わせていただきました。
    ショートカットキーいいですね! もう手放せなくなりそうです。

    あと、リスト編集とテーブルの整形がとびきり素晴らしいと思いました。
    リストインデントの増減が楽々できて感嘆しますし、ぐちゃぐちゃな文字の羅列が一瞬でピシッとしたテーブルになるの痛快です。
    無駄にテーブル作って、整形して、遊んでしまいました。

    十分素晴らしい機能なのですが、もし可能ならば
    - テーブル構文内にカーソルがある場合 → 当該テーブル
    - 選択範囲がある場合 → 選択範囲内のテーブル
    - 上記以外 → 現状(ファイル内の全テーブル)
    みたいに整形するテーブルを指定できると尚一層ありがたいです。

    デベロッパーツールも試してみました。
    ちょっと高度で私の手には負えない気がしますが、とりあえず、エラーメッセージが何も出てなくてホッとしました。
    いつか、スタイルシートを本格的にカスタムしようとした場合にはすごくお世話になりそうです。

     |  noon  |  返信
  86. >> kiyohiro さん

    うまく動作したようで良かったです。

    > これプラグインの順番、下から優先ですか?

    オプション画面で設定できるプラグインの順番は「優先度」ではなく「プラグインを読み込む順番」です。

    上から順番に読み込まれているので、結果的に下にあるプラグインで上書きされて優先されてるように見えるだけだと思います。

    同じような機能のプラグインを複数いれた場合は競合してしまう可能性もあるのでご注意くださいね。

    > 違いがよくわからなかったので Kuroさんに合わせて markdown-it-multimd-table-ext の方を使うことにします

    私も違いはよくわかってなくて、たまたま使ったのが markdown-it-multimd-table-ext だったというだけです。

    本家がどれなのかもわからないですし… ^^;

    >> noon さん

    早速、お試しいただきありがとうございます!

    > ショートカットキーいいですね!

    ショートカットキーは Mery 本体側よりプラグイン側の方が優先されるのでご注意くださいね。

    > あと、リスト編集とテーブルの整形がとびきり素晴らしいと思いました。

    楽しんでいただけて良かったです。リスト編集は私もお気に入りの機能です。

    テーブルの整形はあまり使う機会がなかったのですが、教えていただいた MultiMarkDown を導入してから使う機会が増えそうな気はしています。

    > - テーブル構文内にカーソルがある場合 → 当該テーブル
    > - 選択範囲がある場合 → 選択範囲内のテーブル
    > - 上記以外 → 現状(ファイル内の全テーブル)

    できるかどうかわかりませんが、そうですね。部分的に整形できる機能、検討してみたいと思います。

    > デベロッパーツールも試してみました。

    Mery が吐き出す HTML のソースコードが丸見えになるので恥ずかしい限りですが、動作検証にご協力いただけるかた向けのデバッグモードということで、ここだけの秘密です (w

     |  Kuro  |  返信
  87. > オプション画面で設定できるプラグインの順番は「優先度」ではなく「プラグインを読み込む順番」です。
    > 上から順番に読み込まれているので、結果的に下にあるプラグインで上書きされて優先されてるように見えるだけだと思います。

    なるほどそうでしたか
    画像ビューアやファイラーで使う
    画像プラグインのSusie Plug-inは
    競合すると上から優先で順番入れ替えで調整してたので
    下のプラグインが反応し?になってました

    > 私も違いはよくわかってなくて、たまたま使ったのが markdown-it-multimd-table-ext だったというだけです。
    > 本家がどれなのかもわからないですし… ^^;
    履歴をみても同時期に始まりサイトの説明やサンプルもほぼ同じですね
    更新日時はmarkdown-it-multimd-tableの方が新しいみたいですが
    違いがわからないならnoonさんやKuroさんが使ってる
    markdown-it-multimd-table-extの方が無難かなと

    もう少しだけ欲しいプラグインもあり
    なんとなく使い方も分かってきたので後は自力でやってみます
    色々ありがとうございました

     |  kiyohiro  |  返信
  88. > できるかどうかわかりませんが、そうですね。部分的に整形できる機能、検討してみたいと思います。

    ありがとうございます!
    でも、デフォルトのテーブルを使う分には、ファイル内まるごと整形で必要十分だと思います。
    Kuro さんがどんどん叶えてくださるので、調子にのってしまって…。すみません。

    ただ MultiMarkdown のセル結合(Colspan)の記法を使っていると、整形することで結合が解除されてしまうので、あわよくば…という自分勝手な要望です。

    別タブなどで整形してから貼り付ければ事足りますし、優先順位はうーんと低くて構いません。

    もう一つ、お知らせです。
    下記のような感じの見出しの付け方をした場合、2つめと 3つめの見出しの ID(#heading-1) が重複します。

    ## heading

    ## heading

    ## heading 1

    スペースの置き換え記号と、同名見出しの場合の連番の区切り記号が、どちらもハイフンなため同じ ID となるようです。
    素人考えながら、見出し文字列内のアンダースコアは削除されて ID とされているので、連番の区切り記号がアンダースコアになれば被ることはないのかなと思います。

    自動で連番が付くことに感心すると同時に、自分で数字を付けたらどうなるだろう?などと意地の悪い実験をしてしまいました🙇

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

    > ただ MultiMarkdown のセル結合(Colspan)の記法を使っていると、整形することで結合が解除されてしまうので、あわよくば…という自分勝手な要望です。

    そうなんですよね。整形機能の MultiMarkdown 対応はさすがに無理なのでご要望が来たらどうしようかと思っていたところですが、部分的な整形機能であれば、なんとか…😅

    Visual Studio や VS Code では [ドキュメントのフォーマット] という機能とは別に [選択範囲のフォーマット] という機能が用意されてるみたいなので、それを採用しようかなと考えています。

    [テーブルの整形] で全体の整形。[選択範囲の整形] で選択範囲の中にあるテーブルを整形。[選択範囲の整形] で選択範囲がないときはカーソル位置のテーブルを整形、って感じです。

    マルチカーソルへの対応はちょっと無理っぽ…😭

    > スペースの置き換え記号と、同名見出しの場合の連番の区切り記号が、どちらもハイフンなため同じ ID となるようです。

    確認しました。

    > 素人考えながら、見出し文字列内のアンダースコアは削除されて ID とされているので、連番の区切り記号がアンダースコアになれば被ることはないのかなと思います。

    調査してみましたところ URL にはアンダースコアではなくハイフンの使用が推奨されているようです。(id って URL のジャンプ先に使われるので)

    【参考リンク】シンプルな URL 構造を維持する
    https://support.google.com/webmasters/answer/76329?hl=ja&topic=2370420&ctx=topic

    検証のため他のソフトで実験してみましたところ…

    ・VS Code
    → id 重複 (Mery と同じ挙動)

    <h2 data-line="0" class="code-line" dir="auto" id="heading">
    heading
    </h2>
    <h2 data-line="2" class="code-line" dir="auto" id="heading-1">
    heading
    </h2>
    <h2 data-line="4" class="code-line" dir="auto" id="heading-1">
    heading 1
    </h2>

    ・Typora
    → id 重複 (番号のふりかたは Mery と違う)

    <h2 id='heading-1'><span>heading</span></h2>
    <h2 id='heading-2'><span>heading</span></h2>
    <h2 id='heading-1'><span>heading 1</span></h2>

    ・Joplin
    → 重複を回避してくれる (なんか順番が変だけど)

    <h2 id="heading">heading</h2>
    <h2 id="heading-2">heading</h2>
    <h2 id="heading-1">heading 1</h2>

    ・iA Writer
    → 重複を回避してくれる

    <h2 id="heading">heading</h2>
    <h2 id="heading-1">heading</h2>
    <h2 id="heading-1-1">heading 1</h2>

    ・Inkdrop
    → そもそも id を付けてくれない

    <h2 data-line="3" data-line-end="3">heading</h2>
    <h2 data-line="5" data-line-end="5">heading</h2>
    <h2 data-line="7" data-line-end="7">heading 1</h2>

    ということで、連番のふりかたとしては iA Writer 方式が美しいような気がするので研究してみたいと思います。

    > 自動で連番が付くことに感心すると同時に、自分で数字を付けたらどうなるだろう?などと意地の悪い実験をしてしまいました🙇

    これはビルゲイツ先生 (VS Code) も気づいてないっぽいので報告してあげると良いかも?いや、面倒なのでやめとこ…😪

     |  Kuro  |  返信
  90. こんばんはー。みなさん、Mery をご愛用いただきありがとうございます!

    雑談スレッドということで、以前にツイッターのスクショに写り込んでいた [検索 バー] プラグインを投稿してみます。
    https://twitter.com/haijinboys/status/1318903025482690561?s=20

    ---
    検索 バー プラグイン Ver 1.0.6 (64 ビット版) [888,923 バイト 2023/08/02]
    https://www.haijin-boys.com/download/FindBar-x64-1.0.6.zip
    ウイルスチェック: https://www.virustotal.com/#/file/5389a3eb2b38fe87230d1d0922ffbb1880e236854a395940a4ba0431db698a0d
    -
    検索 バー プラグイン Ver 1.0.6 (32 ビット版) [602,745 バイト 2023/08/02]
    https://www.haijin-boys.com/download/FindBar-1.0.6.zip
    ウイルスチェック: https://www.virustotal.com/#/file/96fe34a52c3791f6186434829f8360692de04040b3afe544c77d0f9ffad136c6

    【概要】
    テキストエディター Mery のウィンドウに検索 バーを表示して、文字列を素早く検索できるプラグインです。

    【制限】
    Mery Ver 2.8.3 以上が必要です。(あいまい検索に対応させたので Mery Ver 3.5.0 以降が推奨です)

    イベントの特典コンテンツか課金コンテンツを想定して開発しているので README.txt にそういった旨が記載されていますが、現在、ベータ版につき動作検証にご協力いただけるかたは無料で機能や期間などの制限なくお試しいただけます。

    不具合のご報告は大歓迎です。ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきますが、ご了承くださいませ。あと、再配布は禁止とさせていただきます。

    詳細な機能や使い方は同梱の README.txt をご参照ください。
    ---

    5 月病まっただなかな季節です。プログラマーのかたも、小説家のかたもメンタルにお気をつけて、Mery をご活用いただけると幸いです。って、真っ先にメンタルやられて体調崩してます、口内炎痛すぎー😭

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

    早速ですが仕様の確認をさせていただきます。
    Windows 7 32bit Mery (x86) 3.5.2 に限った動作でしたら無視してください(もう新しいのにしろ!という指摘はごもっともでございます)。

    本体の検索との連動はどうなっているのでしょうか?(オプション、検索履歴)

    ちょっと条件がはっきりしないのですが、例えば、プラグインの [インクリメンタル サーチ] [大文字と小文字を区別する] [単語のみを検索する] [あいまい検索] の順にオンにして、本体の検索ダイアログを表示すると [大文字と小文字を区別する] [単語のみ検索する] [あいまい検索] がオンになっています。
    その後、プラグインの上記4つのオプションをオフにしても本体のオプションはオフになりません。
    プラグインの [大文字と小文字を区別する] [単語のみを検索する] [あいまい検索] のみをオンにした場合や、その3つの後に [インクリメンタル サーチ] をオンにした場合は、本体のオプションはオンになりません。

    どうでも良いことですが、プラグインのほうは [単語のみ『を』検索する] になっています。

    検索文字列の履歴は連動していないようですが、プラグインの検索文字列の履歴を消去する手段はあるのでしょうか?

    [あいまい検索] と [正規表現を使用する] は同時に有効にすることができないのは仕様だったと思いますが、[大文字小文字を区別する] と [正規表現を使用する] を同時に有効にすることができないのも仕様でしょうか?
    また、本体では [正規表現を使用する] を有効にすると、[単語のみ検索する] が無効(グレー表示)になりますが、プラグインでは同時に有効にすることができます。

     |  774  |  返信
  92. 失礼しました。
    質問はサポート外とされていました。
    質問部分は無視してください。

    上記の、本体のオプションが連動してオンになる件について、バーに検索文字列が入力されているのも条件として必要みたいです。

     |  774  |  返信
  93. 早速お試しいただきありがとうございます。

    検索バーの仕様ですね。

    まず、検索バー側のオプションが本体側に反映されるのは、「検索が実行されたとき」になります。

    なので、通常、[大文字と小文字を区別する]、[単語のみを検索する]、[正規表現を使用する]、[あいまい検索] のオン/オフをプラグイン側で切り替えただけでは、本体側には反映されません。

    プラグイン側で [インクリメンタル サーチ] がオンになっている場合、検索バーの文字列が変更されたとき、または、[大文字と小文字を区別する]、[単語のみを検索する]、[正規表現を使用する]、[あいまい検索] のオプションが変更されたときに、自動的に検索が実行されるので、このときに本体側にオプションが反映されます。

    また、[インクリメンタル サーチ] のオプションはプラグイン側と本体側で連動せず、それぞれ別で保持できるようにしています。

    検索バーは [インクリメンタル サーチ] をオン、本体側の検索ダイアログは [インクリメンタル サーチ] をオフ、といった使い方を想定しての仕様です。

    > どうでも良いことですが、プラグインのほうは [単語のみ『を』検索する] になっています。

    ご報告ありがとうございます。これはミスですね、助かりました。

    > 検索文字列の履歴は連動していないようですが、プラグインの検索文字列の履歴を消去する手段はあるのでしょうか?

    プラグインの仕組み上、検索文字列の履歴を本体側から取得するすべがないので、連動できないのは仕様上の制限事項ということになります。

    プラグインの検索文字列の履歴は、コンボボックスの [▼] ボタンで履歴を表示させた状態で、Alt + Delete キーで消去できます。

    > [大文字小文字を区別する] と [正規表現を使用する] を同時に有効にすることができないのも仕様でしょうか?また、本体では [正規表現を使用する] を有効にすると、[単語のみ検索する] が無効(グレー表示)になりますが、プラグインでは同時に有効にすることができます。

    これはプログラムミスでした。本来は [単語のみ検索する] と排他にしなければならないところを、誤って [大文字小文字を区別する] と排他にしてしまっていました。

    > 上記の、本体のオプションが連動してオンになる件について、バーに検索文字列が入力されているのも条件として必要みたいです。

    そうですね。[インクリメンタル サーチ] で検索が自動的に実行される (つまり、本体側にオプションが反映される) のは、検索文字列が入力されている場合に限ります。

    > 質問はサポート外とされていました。
    > 質問部分は無視してください。

    お気遣いありがとうございます。とりあえず雑談の範囲内ということで回答させていただきました。

     |  Kuro  |  返信
  94. [大文字小文字を区別する] と [正規表現を使用する] が排他になってたのはなかなか痛いので、Ver 1.0.1 で修正しておきました。

    ↓の投稿を更新しておいたのでお試しくださいませ。
    https://www.haijin-boys.com/discussions/6398#discussion-7136

    それから、検索履歴の消し方と、検索オプションの本体側との連動の仕様については README に追記しておきました。

    あと、言い忘れていましたが…

    > Windows 7 32bit Mery (x86) 3.5.2 に限った動作でしたら無視してください(もう新しいのにしろ!という指摘はごもっともでございます)。

    大丈夫です。Mery の開発環境も Windows 7 なんです。

    でも、x86 だったのですね。↑のダウンロードリンクに 32 ビット版も追加しておきました。しかし、前回、32 ビット版は URL から推測されたのでしょうか… ^^;

     |  Kuro  |  返信
  95. どうもお世話になってます
    以前からちょこちょこ見かけた
    検索 バー プラグインついにお目見えですか
    これでFindBarPluginはお役御免で入れ替えて使ってみましたが
    黒背景だと検索ボックス内の文字が若干見にくいですね
    https://imgur.com/1hmU9ty
    (スクショ画像は実際より見やすいです
    他のメニュー文字より少し小さい?せいか白が薄く見えてしまう)
    検索ボックス内の色の変更はできないですよね
    出来れば、色変更やマーク文字の検索ボックス自動入力(参考gPad)などが欲しいです
    今後はBOOTH販売ですか
    BOOTHも見てきて懸念してた支払いもコンビニ決済が出来るみたいで安心しました

     |  kiyohiro  |  返信
  96. 早々のご回答、ご対応、ありがとうございます。

    検索オプションの反映タイミング、検索履歴について、了解しました。
    丁寧にありがとうございました。

    本体側のオプション設定はプラグイン側に反映されなさそうですが、混乱することはないのかな?とちょっと思い、完全に独立しているのもありなのかなとも思いました。
    個人的には、本体側とプラグイン側を併用するようなことは稀だと思うので、どちらでも特に問題ありませんが。

    > 検索履歴の消し方と、検索オプションの本体側との連動の仕様については README に追記しておきました。
    ありがとうございます。

    > 前回、32 ビット版は URL から推測されたのでしょうか… ^^;
    ははははっ。。。ダメもとでなんとなく試してみたらいけました。

    機能としては問題なさそうな些細なことですが、ちょっと気になったことを。
    [↓](次を検索)ボタンの右にある [▼](検索オプション)ボタンにマウスカーソルを持っていくと、ツールチップに「次を検索」と表示されます。
    また、[↓] ボタンをクリックしたときに一緒に [▼] ボタンの表示がクリックしたときのものになります。

    また、README の内容についてですが、「大文字小文字を区別する」(「大文字小文字」の間に『と』がない)になっています。

    あと、気になった動作があったのでご報告。
    特に報告もなさそうですし、自分だけの問題なのかも。
    うまく動作していたときもあったような気がしますが、たまたま正常に見えるような検索を行っただけだったのか、勘違いだったのか。

    検索オプション:[インクリメンタル サーチ] のみ有効
    テキスト:
    1
    2
    3あ
    4い
    5
    6
    7あ
    8い
    9
    10

    手順:
    1.カーソルが1行目の状態で、検索バーに「あ」を入力
    →3行目の「あ」に移動
    2.検索バーの「あ」を消去
    →カーソルが1行目に戻ってしまう
    3.カーソルが5行目の状態で、検索バーに「あ」を入力
    →3行目の「あ」に移動してしまう(7行目の「あ」に移動することを期待)
    4.カーソルが5行目の状態で、検索バーに「う」(テキスト内に存在しない文字)を入力
    →カーソルが1行目に戻ってしまう

    Mery を再起動後、例えばカーソルが5行目の状態で最初の検索を行うと、5行目が検索の開始位置になり、検索文字列を消去したときに移動する位置になるようです。

    体調を崩されているようですが、無理せずお大事に。

     |  774  |  返信
  97. Kuroさん

    おおーっ、Kuroさんの口内の健康を犠牲にした検索バープラグインですが、いい感じです🥰

    試しに Ctrl+F を検索バープラグインにバインドしたところ、想定通り検索バーのコンボボックスにフォーカスが移動。その後 Esc を押すとエディタ側に戻るという動きが想像の通りにできました。
    あるいは Ctrl+E を割り当てて、ブラウザやエクスプローラの検索ショートカットのように使ってみるのもいいかもしれませんね!

    …ところで、「検索後、エディタにフォーカスを戻す」というオプションが実装されていますが、同様にオプションとして「Escを押したら検索バーを閉じてエディタにフォーカスを戻す」というのを実装するのは難しいでしょうか?
    思いつきですが、そうするとブラウザやVSCodeの検索バー動作っぽくなりそうだなーと思いました。

     |  yuko  |  返信
  98. お試しいただきありがとうございます。

    > 出来れば、色変更やマーク文字の検索ボックス自動入力(参考gPad)などが欲しいです

    検索ボックスの色は Windows 標準コントロールのデザインなのでご了承ください。

    見た目が Windows 標準ではなくなってしまうので、隠しオプションで良ければ検討してみますね。

    マーカー文字の自動入力につきましては、残念ながら Mery のプラグインからマーカー機能にアクセスするための仕組みが用意されていないので、現在の Mery では技術的に対応できなさそうです。

    一応、Mery Ver 3.4.0 以降をお使いでしたら、[マーカー バー] から項目を [検索 バー] へドラッグアンドドロップで入力することはできます。

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

    > 本体側のオプション設定はプラグイン側に反映されなさそうですが、混乱することはないのかな?とちょっと思い、完全に独立しているのもありなのかなとも思いました。

    現時点では、本体側に、検索オプションをプラグイン側から取得・設定する仕組みが用意されていないので、これは仕方のないところですね。

    また、プラグイン側で検索を実行すると、本体側は強制的に検索オプションが更新されてしまうので、完全に独立というのもできません。(マクロだったら本体側の検索オプションを維持できる機能があるんですけどね)

    > ははははっ。。。ダメもとでなんとなく試してみたらいけました。

    なるほど、納得です ^^;

    > [↓](次を検索)ボタンの右にある [▼](検索オプション)ボタンにマウスカーソルを持っていくと、ツールチップに「次を検索」と表示されます。

    そうですね。Windows のツールバーでは、ボタンと、そのボタンにかかわるメニューを 1 つのボタンで表示する仕組みが用意されているのでそれを利用してみました。

    [↓] と [▼] が並んでると、まぎらわしいでしょうか?

    別途、メニュー用に [オプション] ボタンを用意するか、そもそもメニューを廃止するといった対応で良ければできそうです。

    > また、README の内容についてですが、「大文字小文字を区別する」(「大文字小文字」の間に『と』がない)になっています。

    ありがとうございます、ついでに、[インクリメンタル サーチ] のところもインクリメンタルとサーチの間に、半角スペースが抜けてますね。修正しておきます。

    > うまく動作していたときもあったような気がしますが、たまたま正常に見えるような検索を行っただけだったのか、勘違いだったのか。

    ご報告ありがとうございます。これは、勘違いではないですね。気付いてなかったので助かりました。

    > 1.カーソルが1行目の状態で、検索バーに「あ」を入力
    > →3行目の「あ」に移動

    これは正しいです。

    > 2.検索バーの「あ」を消去
    > →カーソルが1行目に戻ってしまう

    これも正しいです。

    > 3.カーソルが5行目の状態で、検索バーに「あ」を入力
    > →3行目の「あ」に移動してしまう(7行目の「あ」に移動することを期待)

    これは誤りです。

    > 4.カーソルが5行目の状態で、検索バーに「う」(テキスト内に存在しない文字)を入力
    > →カーソルが1行目に戻ってしまう

    これも誤りです。

    本来は、検索ボックスにフォーカスが移ったタイミングで検索開始位置を記憶し、そこを起点にインクリメンタル サーチするのが正しい動作です。

    なので、3 のときは、ご指摘いただいたとおり、7 行目の「あ」に移動するのが正しいです。

    調べてみましたところ、検索ボックスにフォーカスが移ったときのイベントが、なぜか最初の 1 回しか発生しないようで、検索開始位置の記憶も 1 度っきり。それはそうなるわな…と言った感じでした。これは開発環境上の不具合っぽいので、ちょっとやっかいですね。

    > 体調を崩されているようですが、無理せずお大事に。

    ありがとうございます。体調といっても口内炎ですから、体は元気です。おかげさまでようやく回復してきました。

     |  Kuro  |  返信
  100. お試しいただきありがとうございます!喉に口内炎が出てしまい、声は出せないし、笑うと痛いし、ポン酢は破壊力ハンパないし…。と、とんだ目に遭いました😭

    > 試しに Ctrl+F を検索バープラグインにバインドしたところ、想定通り検索バーのコンボボックスにフォーカスが移動。その後 Esc を押すとエディタ側に戻るという動きが想像の通りにできました。

    ひとまず、普通に動作しているようで安心しました。

    > …ところで、「検索後、エディタにフォーカスを戻す」というオプションが実装されていますが、同様にオプションとして「Escを押したら検索バーを閉じてエディタにフォーカスを戻す」というのを実装するのは難しいでしょうか?

    できると思います。

    やるとしたら…

    ① [Esc キーで閉じる] が発動するのは検索ボックスにフォーカスがあるときのみ、で良いでしょうか?

    → この動作で良ければ実装できると思います。

    ② それとも、エディター側にフォーカスがあるときも Esc キーで閉じられたほうが良いでしょうか?

    → こちらのほうが良さげに見えますが、実は問題がありまして…

    この場合、本体側のキー割り当てをフックするので、検索バーが表示されているあいだは、Esc キーで [検索バーを閉じる] が優先されます。

    つまり、Esc キーにマクロを割り当てている場合や、アウトラインペインから抜け出すための Esc キーに干渉してしまうことが懸念されます。

    > 思いつきですが、そうするとブラウザやVSCodeの検索バー動作っぽくなりそうだなーと思いました。

    検索バーは、もともと、検索ダイアログを開いたり閉じたりするのが面倒だから、検索ボックスを常に表示しておきたい。

    …というご要望からのものですから、開いたり閉じたりするのなら検索バーいらなくね?と思ったりもしますが😅

    あ、でも、開いたり閉じたりできると、他のツールバーの上に重ねて配置しても邪魔にならないので便利かもしれないですね。

     |  Kuro  |  返信
  101. 回答ありがとうございます
    色変更やマーク文字の検索ボックス自動入力の件
    キャレットカラーの件
    了解しました
    自動入力じゃなくても
    > **ショートカット キーを割り当てる** `Ctrl` + `E` キーに割り当てると
    だけでも結構便利なので助かります
    あと別件ですが
    検索は検索バーで便利になりましたが
    置換もよく使うので検索のウインドウを出したまま
    使いたいのでが画面が狭いので本体と重なってます
    本体と重なると検索の方が前面になるので出したままだと
    本体が隠れ本体の作業が出来ないので
    前面の解除出来ないでしょうか
    よろしくお願いします

     |  kiyohiro  |  返信
  102. Kuroさん

    喉に口内炎!それはかなり痛そうです…😮 疲れているときほど酸っぱいもの食べたくなるというのに、なんというジレンマ。

    > ひとまず、普通に動作しているようで安心しました。

    ショートカットやEsc動作について、READMEちゃんと読む前に使ってしまったゆえ余計に感動しましたが、普通に説明に書かれていましたねwでも、README読まずとも直感的に使える良い仕様になっていると言えそうです。

    > ① [Esc キーで閉じる] が発動するのは検索ボックスにフォーカスがあるときのみ、で良いでしょうか?
    >
    > → この動作で良ければ実装できると思います。

    おっしゃる通りエディタ側のショートカットキーとの衝突がありそうですから、その仕様が良いと思います!
    使いたいときだけさっと出して、さっと消える、軽量検索窓って風情にもなりそうでよさそうです。

    あと願わくば、通常の検索窓と同じように、Escでエディタ側にフォーカス復帰後の検索結果 (ハイライト状態) はそのままの方が嬉しいですね。ブラウザだとEscで検索バーと検索結果が同時に消えてしまいますが、エディタの場合はEsc後にそのままF3で次を検索できたりする方が使い勝手がよいかと思っています。

     |  yuko  |  返信
  103. ご回答、ありがとうございます。

    オプション設定の本体側とプラグイン側の関係について了解しました。
    自分にとっては不都合があるわけではありませんから、現状でプログラミングしやすい(というかプログラミング可能な)仕様で十分です。

    > > [↓](次を検索)ボタンの右にある [▼](検索オプション)ボタンにマウスカーソルを持っていくと、ツールチップに「次を検索」と表示されます。
    > そうですね。Windows のツールバーでは、ボタンと、そのボタンにかかわるメニューを 1 つのボタンで表示する仕組みが用意されているのでそれを利用してみました。
    ちょっと違和感がありますが、動作に問題はないので了解しました。
    https://light.dotup.org/uploda/light.dotup.org52009.png

    関係ないですが、Kuro さんは画像を imgur にアップロードされていますし、この掲示板には画像アップロードの機能はないということですよね?

    > [↓] と [▼] が並んでると、まぎらわしいでしょうか?
    それは全く問題ありません。

    > メニューを廃止するといった対応で良ければできそうです。
    [検索後、エディターにフォーカスを戻す] が使えなくなるので廃止は困りそうですから、現状のままでお願いします。
    そういえば、前回の報告のときの検索オプションについて、[検索後、エディターにフォーカスを戻す] も有効にしていました。

    > > 2.検索バーの「あ」を消去
    > > →カーソルが1行目に戻ってしまう
    > これも正しいです。
    これは正しいのですか?
    検索ダイアログでの動作とは異なるということでしょうか?
    カーソルは移動しないほうがありがたいです。

    検索 バーの文字入力欄のフォントは、検索ダイアログの [検索する文字列] 欄のものとは異なるフォントなのでしょうか?
    なんか微妙に違う気がしますが、サイズが異なっているだけなのかな?

     |  774  |  返信
  104. > プラグイン側で [インクリメンタル サーチ] がオンになっている場合、検索バーの文字列が変更されたとき、または、[大文字と小文字を区別する]、[単語のみを検索する]、[正規表現を使用する]、[あいまい検索] のオプションが変更されたときに、自動的に検索が実行されるので、このときに本体側にオプションが反映されます。

    細かいことを言うと、「検索ダイアログが表示されていないとき」も条件の1つですね?

     |  774  |  返信
  105. ご返信ありがとうございます。

    > > **ショートカット キーを割り当てる** `Ctrl` + `E` キーに割り当てると
    > だけでも結構便利なので助かります

    ちょっとした小技といった感じですが、README を読んでいただけるのは嬉しいです。

    > 本体が隠れ本体の作業が出来ないので前面の解除出来ないでしょうか

    これは、あえて前面に来るようにプログラムしています。

    何も制御しない場合 (常に前面を解除してしまった場合)、Windows は、現在、フォーカスのあるウィンドウを前面にします。

    たとえば、検索ダイアログで [次を検索] ボタンを押すと、エディターウィンドウの検索した文字列にフォーカスが移りますから、その都度、検索ダイアログは背面に隠れることになってしまい、これはこれで都合が悪いと思います。

    > 置換もよく使うので検索のウインドウを出したまま

    そういうことでしたら、開発にしばらく時間はかかると思いますが、検索バーに置換の機能を付けることならできるかもしれません。

    置換ダイアログの機能をすべて、というわけではなく、簡易置換みたいな感じになると思いますが。

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

    > 喉に口内炎!それはかなり痛そうです…😮

    喉痛っ、風邪かな?と思ったら、口内炎でした😣 ビタミン B2 と B6 でやっと治りましたよー

    > README 読まずとも直感的に使える良い仕様になっていると言えそうです。

    それは良かったです。README 書くのが一番苦手な作業なのでw

    > おっしゃる通りエディタ側のショートカットキーとの衝突がありそうですから、その仕様が良いと思います!

    VSCode の動作を見てみると、エディター領域で Esc キーを押しても検索バーが閉じられるみたいですね。

    でも、VSCode だと Esc キーは [選択範囲の解除] に割り当てられてますが、検索バーが表示されてたら [検索バーを閉じる] が優先されますね。

    これはこれで合ってると思うのですが、検索バーを表示してしばらく作業して、忘れたころに Esc キーを押したら、あれ?Esc キー効かないぞ?ってなるんですよねぇ。むずー!

    > あと願わくば、通常の検索窓と同じように、Escでエディタ側にフォーカス復帰後の検索結果 (ハイライト状態) はそのままの方が嬉しいですね。

    わかりました、たぶん実装できると思うのでこれは採用させていただきますね!

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

    > ちょっと違和感がありますが、動作に問題はないので了解しました。

    そうでしたか、わかりました。とりあえず現状維持とさせていただきますね。

    > 関係ないですが、Kuro さんは画像を imgur にアップロードされていますし、この掲示板には画像アップロードの機能はないということですよね?

    はい。画像のアップロード機能はありません。アップローダーをお使いいただくか、不具合報告にかぎりますがメールやツイッターでも受け付けています。(スクショやログなど、公開しにくいデータもあると思うので)

    > > 2.検索バーの「あ」を消去
    > > →カーソルが1行目に戻ってしまう

    > これは正しいのですか?
    > 検索ダイアログでの動作とは異なるということでしょうか?
    > カーソルは移動しないほうがありがたいです。

    はい。検索ダイアログとは仕様を変えています。

    たとえば、以下のケースだと検索バーの仕様のほうが便利だと思います。(でも前回、1 回目しか検索開始位置が記憶されないバグが見つかってるので、ちょっと伝わりづらいかもしれませんが、とりあえず同じような例文で…)

    まず、[折り返しあり] はオフにします。

    そして、以下のテキストで検索バーを使って検索します。

    【検索バーの場合】
    ----
    1
    2
    3あい
    4い
    5
    6
    7あう
    8い
    9
    10
    ----

    手順:
    1. カーソルが 1 行目の状態で、検索バーに「あう」を入力
    → カーソルは 7 行目の「あう」に移動
    2. 検索バーの「う」を消去
    → カーソルは 3 行目の「あ」に移動
    3. 検索バーの「あ」を消去
    → カーソルは 1 行目に移動
    4. 検索バーに「あい」を入力
    → カーソルは 3 行目の「あい」に移動

    こんな感じで、検索開始位置を 1 行目 (検索バーにフォーカスが入ったときのカーソル位置) で固定しているので、前に戻る検索が可能になります。

    これはサクラエディタさんのインクリメンタル サーチや、Sublime Text の検索バーで採用されている方式です。プログラミング用途だとこちらの方が便利なシーンも多いかと思います。

    【検索ダイアログの場合】
    ----
    1
    2
    3あい
    4い
    5
    6
    7あう
    8い
    9
    10
    ----

    手順:
    1. カーソルが 1 行目の状態で、検索バーに「あう」を入力
    → カーソルは 7 行目の「あう」に移動
    2. 検索バーの「う」を消去
    → カーソルは 7 行目の「あ」で待機
    3. 検索バーの「あ」を消去
    → カーソルは 7 行目の「あ」で待機
    4. 検索バーに「あい」を入力
    → 「あい」は見つかりませんでした

    検索開始位置が、前回検索した位置から始まるので前に戻る検索はできません。

    これは秀丸エディタさんや EmEditor さんで採用されている方式です。簡単に言うと、検索文字列が変更されたときに自動的に [次を検索] ボタンを押す機能、ということでこちらもインクリメンタル サーチと呼ばれる機能です。(厳密には、リアルタイム検索かも?)

    ということで、検索バーは、ちょっと高度なインクリメンタル サーチといったところですね。

    > 検索 バーの文字入力欄のフォントは、検索ダイアログの [検索する文字列] 欄のものとは異なるフォントなのでしょうか?
    > なんか微妙に違う気がしますが、サイズが異なっているだけなのかな?

    フォントはダイアログと同じものを使用しています。フォントのサイズはツールバーの高さによって自動的に計算するようにしているので、そのせいではないでしょうか。

    一応、隠しオプションでフォントと、フォントのサイズを変更できる機能は用意しようと思っています。(フォントを大きくしてもツールバーが太くなるわけではなく、検索ボックスが見切れてしまうだけですが…)

    > 細かいことを言うと、「検索ダイアログが表示されていないとき」も条件の1つですね?

    検索ダイアログが表示されているときも、内部的にはプラグインで本体側のオプションは更新されています。

    でも、検索ダイアログで [次を検索] や [閉じる] を実行すると、検索ダイアログに設定されている内容でオプションが上書きされるので、気付かないとは思います。

    たとえば、検索ダイアログを表示したまま、検索バーで検索を実行して、マクロで…

    document.selection.FindRepeat(meFindNext);

    を実行すると、検索バーで検索したオプションでそのまま検索を継続できます。

     |  Kuro  |  返信
  108. 回答ありがとうございます
    > そういうことでしたら、開発にしばらく時間はかかると思いますが、検索バーに置換の機能を付けることならできるかもしれません。
    > 置換ダイアログの機能をすべて、というわけではなく、簡易置換みたいな感じになると思いますが。

    よろしくお願いします
    本体の置き換え具合を見ながら何度か連続で使いたいけど
    重なって一部見えないので開いて閉じてを繰り返して使ってます
    本体を縮めればいいのですが今の大きさが文字数の表示的に丁度良く
    変えたくないので助かります

     |  kiyohiro  |  返信
  109. Kuroさん

    > 喉痛っ、風邪かな?と思ったら、口内炎でした😣 ビタミン B2 と B6 でやっと治りましたよー

    チョコラBBさんは偉大ですよねー。以前、私も「口内炎痛すぎて死ぬぅぅ」って際に薬剤師さんに良い市販薬が無いか相談したんですが、「チョコラBBか同類のビタミン剤を所定の服用量の倍、飲むといいですよ」というパワー系のアドバイスを頂いたのを思い出しました。(でもって本当にめちゃくちゃ効いた)

    口内炎の回復のために通常よりビタミンBが必要な状態だし、薬というよりビタミン剤だから一時的にそれくらい摂取量を増やすのは問題ないよ、ということだそうで。

    > VSCode の動作を見てみると、エディター領域で Esc キーを押しても検索バーが閉じられるみたいですね。
    > でも、VSCode だと Esc キーは [選択範囲の解除] に割り当てられてますが、検索バーが表示されてたら [検索バーを閉じる] が優先されますね。

    ですね。VSCodeだとショートカットキーのWhen式で、そういう動き周りの調整もできた気がします。

    > これはこれで合ってると思うのですが、検索バーを表示してしばらく作業して、忘れたころに Esc キーを押したら、あれ?Esc キー効かないぞ?ってなるんですよねぇ。むずー!

    そうそう、あれ慣れるまで若干気を遣うんですよね…。
    そもそもVSCodeは「検索バーを非表示 = 検索結果 (ハイライト) をリセット」になっているので、Meryを始めとした検索窓が独立したテキストエディタとそのあたりの検索結果のライフサイクルがちょっと違いますよね。何となくブラウザ寄りというか。

    > わかりました、たぶん実装できると思うのでこれは採用させていただきますね!

    やったー、ありがとうございます🙇‍♂️

     |  yuko  |  返信
  110. ご回答、ありがとうございます。

    了解しました。
    検索ダイアログとは仕様が異なるのですね。

    カーソルは移動しないほうがありがたいとコメントしましたが、検索バーにフォーカスが入ったときのカーソル位置が記憶されるのなら、新しい仕様でも問題なさそうな気がします。
    (エディター部にフォーカスがあるときに)検索バーの文字列を消去したらどこかに移動してしまうのはイヤだなと思ったのですが、この場合にはカーソル位置は移動しなさそうなので。

    > フォントはダイアログと同じものを使用しています。フォントのサイズはツールバーの高さによって自動的に計算するようにしているので、そのせいではないでしょうか。
    了解しました。

    > 検索ダイアログが表示されているときも、内部的にはプラグインで本体側のオプションは更新されています。
    > でも、検索ダイアログで [次を検索] や [閉じる] を実行すると、検索ダイアログに設定されている内容でオプションが上書きされるので、気付かないとは思います。
    なるほど。そういうことですか。了解しました。

    何度も申し訳ありませんが、最後にひとつ(たぶん)。
    ツールバーなどの検索ボタンは直前に実行した検索が引き継がれるということで良いですよね?
    検索バーの [次を検索] / [前を検索] ボタン
     …検索バーの検索文字列、検索オプションで検索
    検索ダイアログの [次を検索] / [前を検索] ボタン
     …検索ダイアログの検索文字列、検索オプションで検索
    メニュー・ツールバーの [次を検索] / [前を検索] ボタン、マクロでのオプション指定なしの検索
     …直前に実行した検索(検索バー/検索ダイアログ)の検索文字列、検索オプションで検索

     |  774  |  返信
  111. > チョコラBBさんは偉大ですよねー。

    まさにそれですw でも、オーバードーズは初耳!確かに、ビタミン B2 って摂りすぎても排出されるからオッケーって聞きますね。今度、口内炎になったら界王拳 2 倍、試してみます😁

    > そもそもVSCodeは「検索バーを非表示 = 検索結果 (ハイライト) をリセット」になっているので、Meryを始めとした検索窓が独立したテキストエディタとそのあたりの検索結果のライフサイクルがちょっと違いますよね。何となくブラウザ寄りというか。

    ブラウザで慣れちゃってるものだから違和感を感じたことはなかったのですが、確かに、VSCode も Brackets も Sublime Text もそんな挙動になってますね。Electron の仕様なのかしら。

    > やったー、ありがとうございます🙇‍♂️

    試しに作ってみた感じだとイケそうです。

    現在、パソコン環境を構築中 (ついに Windows 11!) につき、開発環境が整うまでもうちょっと時間がかかりそうですが、今しばらくお待ちくださいませ。

     |  Kuro  |  返信
  112. > カーソルは移動しないほうがありがたいとコメントしましたが、検索バーにフォーカスが入ったときのカーソル位置が記憶されるのなら、新しい仕様でも問題なさそうな気がします。

    現状、バグ付きなので実際の動作が想像しづらいと思いますが、修正まで今しばらくお待ちくださいませ。

    > (エディター部にフォーカスがあるときに)検索バーの文字列を消去したらどこかに移動してしまうのはイヤだなと思ったのですが、この場合にはカーソル位置は移動しなさそうなので。

    検索バーの文字列を消去すると、カーソル位置は、検索する直前の状態に戻るだけなので、実際に使ってみるとそれほど違和感はないかと思います。

    > 何度も申し訳ありませんが、最後にひとつ(たぶん)。
    > ツールバーなどの検索ボタンは直前に実行した検索が引き継がれるということで良いですよね?

    はい。

    > 検索バーの [次を検索] / [前を検索] ボタン
    >  …検索バーの検索文字列、検索オプションで検索

    はい、正しいです。

    > 検索ダイアログの [次を検索] / [前を検索] ボタン
    >  …検索ダイアログの検索文字列、検索オプションで検索

    はい、正しいです。

    > メニュー・ツールバーの [次を検索] / [前を検索] ボタン、マクロでのオプション指定> なしの検索
    >  …直前に実行した検索(検索バー/検索ダイアログ)の検索文字列、検索オプションで> 検索

    はい、正しいです。

    検索バーからでも検索ダイアログからでも、最後に検索した条件で F3 キー (ツールバーなどの検索ボタン) が動作します。

     |  Kuro  |  返信
  113. ご回答、ありがとうございます。
    了解しました。

     |  774  |  返信
  114. > 現在、パソコン環境を構築中 (ついに Windows 11!)

    おおーっ、いよいよ!
    開発環境がWindows 8, 8.1, 10 を一挙に飛び越し11になるとは、凄まじい飛躍ですね…🙄

     |  yuko  |  返信
  115. > 開発環境がWindows 8, 8.1, 10 を一挙に飛び越し11になるとは、凄まじい飛躍ですね…🙄

    そういうわけではなく、Mery の開発ツール、Delphi XE2 は Windows 7 までしか対応していないので、本番環境は 7 のままです。

    普段使ってる PC は Windows 10 で、Delphi XE2 は対応していないのですが、一応、動くみたいなので、それで開発してるんです。(こちらが開発環境)

    ちなみに、Delphi のライセンスはユーザーライセンスを買っているので複数の PC にインストールも OK です。

    実験的な機能やバグ修正などは開発環境 (Windows 10) で行い、デモ版みたいなのを作ってから、ソースコードを本番環境 (Windows 7) で清書してビルド。その後、XP から 11 までの OS で検証、という手順で作っています。

    今回、普段使ってる PC が Windows 11 になったので、11 向けの機能を作ったり検証したりしやすくなった感じです😁 (といっても、第 4 世代の i5 なので 22H2 でサポート外になってしまいましたが…😭)

    と、雑談ついでに検索バーを更新しておきました。

    https://www.haijin-boys.com/discussions/6398#discussion-7136

    [次を検索] ボタンのドロップダウンメニューから [Esc キーで閉じる] が使えるようになってます。

    >> 774 さん

    検索バープラグインを、インクリメンタル サーチの挙動を修正した Ver 1.0.2 に更新しておきました。

    検索ボックスにフォーカスが入ったときの位置を起点として、インクリメンタル サーチするようになっているので、お試しくださいませ。

     |  Kuro  |  返信
  116. どうもお世話になってます
    検索 バー プラグイン Ver 1.0.2 FindBar-x64-1.0.2.zip
    > - 検索ボックスの色と幅、フォントの色と高さを隠しオプションで実装
    使い方見つけられなかったので教えてもらえないでしょうか
    > **検索文字列の履歴を消去する**
    一番上の検索文字列で`Alt` + `Delete`すると全ての検索文字列が
    消去されるのですが正しい動作でしょうか?
    よろしくお願いします

     |  kiyohiro  |  返信
  117. ご対応、ありがとうございます。

    検索バーのインクリメンタル サーチについて、説明していただいた新しい仕様も含めて違和感のない動作になっているのを確認しました。

    フォーカスを一旦エディターに移して再度検索ボックスに移して検索文字列を消去したときに、エディターのカーソル位置はそのまま変らず、当初の想定どおりの動作になりました。
    検索ボックスにフォーカスが入ったままの状態で検索文字列を消去したときの動作については、前に例示していただいたケースを考えると、新しい仕様のほうが便利な気もしてきました。

    1度検索文字列を入力して、続けてテキスト内に存在しない文字列を入力したときにも、検索ボックスにフォーカスが入ったときの位置に戻るのは、たぶんそのほうが便利なのでしょうね。
    さらに続けて文字列を入力する場合は検索ボックスにフォーカスが入ったときの位置が起点のままのほうが便利そうですが、そこで検索をやめる場合は戻って欲しくないような、戻っても問題ないような、どうなんだろうと思いました(実際に使うときの状態がピンとこないのでなんとも言えませんが)。

     |  774  |  返信
  118. お試しいただきありがとうございます。

    > 使い方見つけられなかったので教えてもらえないでしょうか

    隠しオプションなのでマニュアルには記載していませんが、FindBar.ini で以下のオプションが指定できるようになってます。

    [FindBar]
    ;検索ボックスの色 (HTML カラーで指定)
    BoxColor=#FF0000
    ;検索ボックスの幅
    BoxWidth=240
    ;フォント名
    FontName=HackGen
    ;フォントの色 (HTML カラーで指定)
    FontColor=#0000FF
    ;フォントの高さ (ツール バーの高さは固定なので、大きくしすぎると検索ボックスがはみ出します)
    FontHeight=15

    > > **検索文字列の履歴を消去する**
    > 一番上の検索文字列で`Alt` + `Delete`すると全ての検索文字列が
    > 消去されるのですが正しい動作でしょうか?

    はい、正しい動作です。また、Mery の検索ダイアログも同様の操作で履歴の消去ができるようになっています。

    マニュアルの説明は「**検索文字列の履歴をすべて消去する**」にしたほうがわかりやすいかもしれないですね。

     |  Kuro  |  返信
  119. ご確認いただきありがとうございます。

    うまく動作しているようでひとまず安心しました。

    > 1度検索文字列を入力して、続けてテキスト内に存在しない文字列を入力したときにも、検索ボックスにフォーカスが入ったときの位置に戻るのは、たぶんそのほうが便利なのでしょうね。

    便利だからというわけではなく、特に何も考えていなかっただけです ^^;

    他のエディターの動作を確認してみましたところ、サクラエディタさんも Sublime Text も VSCode も、「検索文字列がヒットしたあと、続けてテキスト内に存在しない文字を入力」した場合は、最後のカーソル位置が維持されるようです。

    また、検索ボックスの内容をすべて削除した場合のみ、サクラエディタさんと Sublime Text はカーソル位置が起点に戻りました。

    VSCode は検索ボックスの内容をすべて削除しても最後のカーソル位置が維持されるようですが。

    > そこで検索をやめる場合は戻って欲しくないような、戻っても問題ないような、どうなんだろうと思いました

    確かに、そこで検索をやめるときはカーソル位置が維持されたほうが良いような気もします。サクラエディタさんと Sublime Text 方式、アリですね。

     |  Kuro  |  返信
  120. > 実験的な機能やバグ修正などは開発環境 (Windows 10) で行い、デモ版みたいなのを作ってから、ソースコードを本番環境 (Windows 7) で清書してビルド。その後、XP から 11 までの OS で検証、という手順で作っています。

    かなり手の込んだ開発フローで驚きました…😳思えばXPでも使えるようにしていたんですものね。もはや親切心を超えて執念のようなものさえ感じます(褒め言葉)

    [Esc キーで閉じる] の実装ありがとうございました。さっと非表示にできるので、とてもいい感じに使えています。

    ところでアップデートしていただいたばかりで気づいてしまって申し訳ないのですが…検索バーの検索履歴表示中のEscキー動作について、期待値と異なる部分がありました。

    ・期待の動作: 展開している検索履歴のリストを非表示にし、検索バーの入力ボックスにフォーカスが移る
    ・実際の動作: Escキーのフック(エディタ部にフォーカスが移る)が優先される

    これは、[Esc キーで閉じる] のOn/Offを問わず、フック動作のほうが優先されてエディタ部にフォーカスが移ってしまうようです。

     |  yuko  |  返信
  121. > 思えばXPでも使えるようにしていたんですものね。もはや親切心を超えて執念のようなものさえ感じます(褒め言葉)

    なはは…、XP が現役で稼働してる職場もあるようですからね。でも、実は最近 XP 環境の HDD が壊れてしまって、XP で検証できてないんです…😅

    > [Esc キーで閉じる] の実装ありがとうございました。さっと非表示にできるので、とてもいい感じに使えています。

    ご確認いただきありがとうございます。とりあえず動作しているようで安心しました。

    > これは、[Esc キーで閉じる] のOn/Offを問わず、フック動作のほうが優先されてエディタ部にフォーカスが移ってしまうようです。

    おうふ、これは見落としていました。次のバージョンでは修正しておきますね。

     |  Kuro  |  返信
  122. 他のエディターでのご確認、ありがとうございます。

    よくよく考えてみたら、検索文字列を変更するたびに起点から検索しなおすということなら、テキスト内に存在しない文字列を入力した場合は起点に戻るのが自然なのかなと思いましたが、他のエディターの動作はそうではないのですね。
    問題提起しておきながらですが、たぶんそんなにたいしたことではなさそうですし、わざわざ手を入れる必要もないかなと思いました。

    他のアプリケーションで文字列をコピー、Mery の検索ボックスへの貼り付けを繰り返したら起点が移動していました。
    しかし、Mery をアクティブにしたときにフォーカスは検索ボックスからエディタに移っていて、そこから検索ボックスにフォーカスを持っていっていたので、当然の動作でした。
    ちなみに、Mery を非アクティブにしたときに検索バーのフォーカスを維持して欲しいという要望ではありません。どっちもどっちですが現状のほうが使い勝手が良さそうなので。

    これもどうでもいいことですが名称を他と合わせているようなので。
    メニューのツール > 外部ツールの「エクスプローラ」について、「エクスプローラー」とどちらが一般的なのかな?

     |  774  |  返信
  123. ご返信ありがとうございます。

    > 問題提起しておきながらですが、たぶんそんなにたいしたことではなさそうですし、わざわざ手を入れる必要もないかなと思いました。

    わかりました。簡単に実装できそうならやってみて、大変そうだったらそっとしておく感じで検討してみます。

    > ちなみに、Mery を非アクティブにしたときに検索バーのフォーカスを維持して欲しいという要望ではありません。どっちもどっちですが現状のほうが使い勝手が良さそうなので。

    なるほど、そう言われてみると気になり始めました…。

    ご要望ではないとのことですが、たとえば、検索ボックスに入力中に、そこにブラウザーなどからコピペしてこようとすると、フォーカスがエディターウィンドウに移動してしまうので、ちょっと不便な気がします。

    ただ、本体側とのフォーカスの奪い合いになるので実装できるかは微妙なところですが、できるだけがんばってみますね。

    > メニューのツール > 外部ツールの「エクスプローラ」について、「エクスプローラー」とどちらが一般的なのかな?

    Microsoft 的には「エクスプローラー」が正しいです。

    Mery の項目名も Ver 2.8.8 あたりで Microsoft に準拠したので新規インストールでは [エクスプローラー] になっていますが、それより前からのユーザーさんの場合は INI ファイルから読み込まれるので更新はされません。

    外部ツールを使っていなければ、一応、[リセット] で初期値 (新規インストール時の設定) に戻すことはできます。

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

    了解しました。
    くどいですが個人的にはどちらの動作でも構いません。

    > Mery の項目名も Ver 2.8.8 あたりで Microsoft に準拠したので新規インストールでは [エクスプローラー] になっていますが、それより前からのユーザーさんの場合は INI ファイルから読み込まれるので更新はされません。
    そういうことでしたか。失礼しました。

    > 外部ツールを使っていなければ、一応、[リセット] で初期値 (新規インストール時の設定) に戻すことはできます。
    了解しました。

     |  774  |  返信
  125. 回答ありがとうございます
    すいませんもう一つ質問お願いします

    BoxColor=#555555
    FontColor=#FFFFFF

    で見やすくなりました
    横幅を少し短くしようとBoxWidth=200も変更しましたが
    何故か縮めて(200)も長く(300)しても縦の幅が大きくなり枠の下が欠けるのですが
    縦は変更出来ないでしょうか?

     |  kiyohiro  |  返信
  126. > 何故か縮めて(200)も長く(300)しても縦の幅が大きくなり枠の下が欠けるのですが縦は変更出来ないでしょうか?

    変更したいのは縦でしょうか?横でしょうか?

    縦は FontHeight、横は BoxWidth で指定します。縦を大きくした場合は枠の下がかけることもあるのでご注意ください。

    BoxWidth=200
    FontHeight=20

    私のほうでも試してみましたが、たとえば、上記の指定だと、横幅が 200、フォントの高さが 20 で正しく動作しているようです。

    誤って FontHeight の数値を変更されていないか、確認してみてください。

     |  Kuro  |  返信
  127. 回答ありがとうございます
    検索バーをメニューのヘルプの横に置くのに今のウインドウサイズでは
    少し表示が入り切らないので横の幅をアイコン1つ分位縮めようと
    BoxWidth=200(FontHeight=は無し)にすると横幅は小さくなりましたが
    縦の幅も大きくなり枠の下が欠けるので質問でしたが
    FontHeight=で調整出来たのですね
    フォントの高さになってたのでフォント用の設定で枠の高さと結びつかなかったです
    色々試してFontHeight=14で枠が収まりました
    画像 https://imgur.com/CM0sWq3

     |  kiyohiro  |  返信
  128. ご確認いただきありがとうございます。

    > BoxWidth=200(FontHeight=は無し)にすると横幅は小さくなりましたが縦の幅も大きくなり枠の下が欠けるので質問でしたが

    この場合、検索ボックスの幅だけ変更されるはずですが…。

    と思い調べてみましたところ、検索ボックスの幅の初期値 (何も指定しない場合) は 200 だったので、BoxWidth=200 を指定しても何も変わらなかったですね。そのせいで、効果が感じられなかったのかもです。

    【参考画像】
    https://imgur.com/a/UApFraf

    > フォントの高さになってたのでフォント用の設定で枠の高さと結びつかなかったです

    検索ボックス (Windows の標準コンボボックス) の高さはフォントの高さに連動する仕様になっているので、BoxHeight みたいな感じにはいかず、ちょっとわかりづらいかもしれませんがご容赦ください。

    > 色々試してFontHeight=14で枠が収まりました

    BoxWidth で高さが変わってしまうのは謎ですが…、とりあえず解決、でいいのかしら。

    あ、でも、いただいたスクショの感じですと、前回の案件で「検索バーに置換ボックスも付ける」というのは、スペース的に厳しそうですね。

    検索ボックスの右側に並べて、同じサイズで置換ボックスも付けようと思っていたもので…。

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

    原因がわかりました
    すいませんこちらがミスってました
    最初サンプルそのまま
    貼り付けそこから色々試してましたが
    これが原因でした
    サンプルがデフォルトの数値ではなかったのですね
    ツールバーの固定も一旦外して色々試してましたし
    BoxWidth=240で伸びてるとは思わず
    検索バーの後ろが少し隠れるので縮める
    ボックスの下が欠けてるのでどうしょう
    になってました
    色の変更
    BoxColor=#555555
    FontColor=#FFFFFF
    だけで行けました

    > 検索ボックスの右側に並べて、同じサイズで置換ボックスも付けようと思っていたもので…。
    たまたま丁度ヘルプの後ろに検索バーが収まるのでここにしましたが
    検索バーの位置は別に3段にしても問題ないです

     |  kiyohiro  |  返信
  130. > 外部ツールを使っていなければ、一応、[リセット] で初期値 (新規インストール時の設定) に戻すことはできます。
    リセットしたときのデフォルトのブラウザは Internet Explorer なのですね。

     |  774  |  返信
  131. ご返信ありがとうございます。うまく動作したようで良かったです。

    > たまたま丁度ヘルプの後ろに検索バーが収まるのでここにしましたが検索バーの位置は別に3段にしても問題ないです

    そうでしたか、わかりました。

    とはいえ、置換機能をつけるとなると開発やアイコンの制作などかなり時間がかかるので、まず、現状の仕様で検索バーの正式版を完成させてから、その後、検討するというかたちになると思いますがご了承ください。

     |  Kuro  |  返信
  132. > リセットしたときのデフォルトのブラウザは Internet Explorer なのですね。

    Windows 7 の場合はそうなりますね。Windows 10 以降ですと Microsoft Edge になります。

     |  Kuro  |  返信
  133. > Windows 7 の場合はそうなりますね。Windows 10 以降ですと Microsoft Edge になります。
    そういう切り分けをされていたのですね。
    またまた失礼しました。

     |  774  |  返信
  134. > そういう切り分けをされていたのですね。
    > またまた失礼しました。

    いえいえ。詳細な切り分けとしては、

    C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe

    が存在するかどうかで判断しているので、Windows 7 でも Edge が上記のパスにインストールされていれば、外部ツールの初期値として Edge が出てくると思います。

    すでに Windows 7 の Edge はサポート切れなので試していませんが。

    …はっ!そういわれてみると、32 ビット版の Windows だと "Program Files" は "(x86)" が付かないんでしたね、すっかり忘れていました。

    取り急ぎ、Windows 10 の 32 ビット環境を構築して確認してみましたところ、やっぱり Edge のパスは、

    C:\Program Files\Microsoft\Edge\Application\msedge.exe

    でした。

    となると、"Program Files (x86)" の msedge.exe の存在をチェックして、なければ、"Program Files" の msedge.exe の存在をチェック、みたいな仕組みが必要になりそうです。次のバージョンでは組み込んでみますね。(Windows 7 だとどうなるかわかりませんが ^^;)

    ついでに検索バーを Ver 1.0.3 に更新しておきました。
    https://www.haijin-boys.com/discussions/6398#discussion-7136

     |  Kuro  |  返信
  135. ご対応、ありがとうございます。

    Windows 7 は既に Microsoft のサポートが切れているのにお手数をおかけしました。
    Mery のサポートを切られれても仕方ない環境なので、そこまで考慮していただくと申し訳ない気持ちになってしまいます。

    テキスト内に存在しない文字列を検索ボックスに入力したときの動作と、ウィンドウが非アクティブになり再度アクティブになったときの動作も対応していただけたのですね。
    ありがとうございます。
    他の方から、以前の動作のほうがよかったとコメントされないかちょっと心配ですが。

     |  774  |  返信
  136. 検索バー Ver 1.0.3 で、[折り返しあり] が無効のときに検索バーの [次を検索] / [前を検索] をクリックしていき、テキストの末尾/先頭に到達するとなぜか 13 行目に移動します。

     |  774  |  返信
  137. おっ、バージョンアップでドロップダウンのEscキー対応、ありがとうございます。

    Ctrl-Fの代替に検索バーを使ってみる試行をやっているところですが、Escでさっと非表示にする運用もできるようになりましたし、完全代替もなかなか良いのでは、と思えてきました。

    でもそれを踏まえると、全画面表示とZenモードのときはちょっと扱いが難しいですね。動作はするものの、見えないところで検索バーにフォーカスして入力状態になってしまうようです。

    検索バーがツールバーの一種であることを考えると、検索バーだけは全画面 or Zenモードでも出すという動きにするのは難しいですよね…。
    例えば全画面 or Zenモードのときは、検索バーへのショートカットキー動作でも通常の検索窓を開くようにするとか、そういった次善策があると嬉しいですが…🤔

     |  yuko  |  返信
  138. ご返信ありがとうございます。

    > Mery のサポートを切られれても仕方ない環境なので、そこまで考慮していただくと申し訳ない気持ちになってしまいます。

    お気になさらず。積極的にフルサポートとまではいきませんが、情報をいただけると対応できそうなところはサポートしていきたいと思っています。

    > 他の方から、以前の動作のほうがよかったとコメントされないかちょっと心配ですが。

    それは大丈夫だと思います。私も気づいていなかった部分なので ^^;

    > 検索バー Ver 1.0.3 で、[折り返しあり] が無効のときに検索バーの [次を検索] / [前を検索] をクリックしていき、テキストの末尾/先頭に到達するとなぜか 13 行目に移動します。

    ご報告ありがとうございます。

    これは言い逃れできないシンプルなバグですね、すみません。if 文を 1 つ書き忘れていました…。

    Ver 1.0.4 に更新しておいたので、お時間のあるときにでもお試しくださいませ。
    https://www.haijin-boys.com/discussions/6398#discussion-7136

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

    ちょうど検索バー プラグインを更新中だったもので。もし、Ver 1.0.3 をダウンロードされていたら、Ver 1.0.4 を公開したのでそちらをお試しください。

    > Ctrl-Fの代替に検索バーを使ってみる試行をやっているところですが、Escでさっと非表示にする運用もできるようになりましたし、完全代替もなかなか良いのでは、と思えてきました。

    どうでしょうね。それを目指してなかったものですから、さすがにガチで検索ダイアログの代替とまではいかない気もしますし…。

    > 動作はするものの、見えないところで検索バーにフォーカスして入力状態になってしまうようです。

    ほんとですね、これは試したことがありませんでしたが、確かに😅

    でも、きちんと動いてるんですね。見えないところで適当にキー入力してみたら検索できちゃって、笑ってしまいました。これは心眼でイケるんじゃね?と😂

    > 検索バーがツールバーの一種であることを考えると、検索バーだけは全画面 or Zenモードでも出すという動きにするのは難しいですよね…。

    技術的にはできそうな気もしますが、おっしゃるとおり、そう簡単には実装できなさそうではありますね。

    > 例えば全画面 or Zenモードのときは、検索バーへのショートカットキー動作でも通常の検索窓を開くようにするとか、そういった次善策があると嬉しいですが…🤔

    わお、さすがです!それなら使う側からしても違和感なさそうですし、実装も割と簡単にできそうです。

     |  Kuro  |  返信
  140. ご対応、ありがとうございます。
    確認しました。

    使っていての感想ですが、検索バーで、ブラウザーなどから文字列をコピペしての検索を繰り返す場合には、Mery がアクティブになったときに検索ボックスの文字列が選択状態になっていると便利かなと思います。
    選択状態になっていないほうが便利なケースもあるかもしれませんが。

    仕様を合わせる必要はないと思いますし、今のままでも良いかなと思いましたが、気付いたことを一応ご報告。
    検索ボックスにフォーカスがあるときにウィンドウを最小化して戻したとき、フォーカスがエディターウィンドウに移動します。

    あと、検索ボックスにフォーカスがあるときに非アクティブにして、タイトルバーなどのクリック、タスクバーのアイコンのクリック、[Alt] + [Tab] などで Mery をアクティブにしたときには起点が移動しませんが、検索ボックスをクリックしてアクティブにしたときには起点が移動します。

     |  774  |  返信
  141. ご確認いただきありがとうございます。

    > Mery がアクティブになったときに検索ボックスの文字列が選択状態になっていると便利かなと思います。

    これは私も開発段階で気になったので、他のエディターの動作を参考にさせていただいた部分です。

    VSCode と Sublime Text は選択状態にならない (最後のカーソル位置を復元)。Visual Studio 2022 だと検索文字列がすべて選択された状態になります。

    プログラム的には何もしなければ勝手に選択状態になるので簡単なのですが、VSCode 方式に合わせようとカーソル位置の保存と復元を作りこんでしまいました… ( ;∀;)

    > 選択状態になっていないほうが便利なケースもあるかもしれませんが。

    そうなんですよね。検索文字列の入力中に、途中からブラウザからコピペするときなんかは最後のカーソル位置が復元されたほうが便利ですし。

    でも、個人的にはどちらでも良いと思うので、他のかたからご意見がなければ、774 さんのご意見を採用させていただきたいと思います。

    > 検索ボックスにフォーカスがあるときにウィンドウを最小化して戻したとき、フォーカスがエディターウィンドウに移動します。

    ほんとですね。エディターウィンドウはあらゆるシーンでフォーカスを奪っていくので、なかなか大変そうではありますが、できるだけフォーカスを維持できるようがんばってみます。

    > 検索ボックスをクリックしてアクティブにしたときには起点が移動します。

    確かに…、そのパターンもありましたか。何か、根本的に実装方法を間違えているような気さえしてきました。

    いただいた情報を参考に、もう一度、プログラムを整理して、考え直してみたいと思います。

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

    現状の動作を把握されていたほうが良いかなと思い報告しただけですので、頭の片隅に留めておいてくだされば、わざわざ実装を見直す必要もなく現状のままで良いと思います。
    他の方から指摘されたときに検討すれば良いのではないでしょうか。

    アクティブになったときの検索ボックスの文字列については、他のエディターでは選択状態にならないものもあるのですね。
    先行している他のエディターで選択状態にならないのであれば、それなりの理由があるのでしょう。
    Mery の検索ダイアログでは選択状態になるので、なるのが一般的なのかなと思っていました。
    どちらの動作でも良いようなものは、(実装が困難でなければ)他と合わせておくほうが無難な気がします。

    最小化して戻したときのフォーカスについては、Mery の検索ダイアログでもフォーカスはエディターウィンドウに移動するので、現状のままで良いと思います。

    非アクティブ時の検索ボックスのクリックについては、新たに検索バーにフォーカスが入ったと考えると、そのときのエディターウィンドウでのカーソル位置が起点になっても良いと思います。
    前回検索時の起点から検索したい場合はタイトルバーなどをクリック、前回検索したときのカーソル位置の続きから検索したい場合は検索ボックスをクリックと使い分けができそうですし。

     |  774  |  返信
  143. ご返信ありがとうございます。

    > 他の方から指摘されたときに検討すれば良いのではないでしょうか。

    お気遣いいただきありがとうございます。…しかしながら、気になり始めるとどうにも止まらなくて ^^;

    > 先行している他のエディターで選択状態にならないのであれば、それなりの理由があるのでしょう。

    Visual Studio 2022 に加えて、EmEditor さんもすべて選択状態なスタイルでしたから、今のところ半々ですね。

    > Mery の検索ダイアログでは選択状態になるので、なるのが一般的なのかなと思っていました。

    そうですね。どうやら、Windows の標準コンボボックスだと何も制御しなければ、選択状態になるのが一般的な動作のようです。

    VSCode や Chrome、Sublime Text などは Windows の標準コントロールを使っていないので仕様が異なるのだと思います。あえてこれらに合わせる理由は特にないですね。

    > 最小化して戻したときのフォーカスについては、Mery の検索ダイアログでもフォーカスはエディターウィンドウに移動するので、現状のままで良いと思います。

    これは、その後、調査していたのですが仕様的にフォーカス維持はやはり難しく、現状のままになりそうです。

    > 非アクティブ時の検索ボックスのクリックについては、新たに検索バーにフォーカスが入ったと考えると、そのときのエディターウィンドウでのカーソル位置が起点になっても良いと思います。

    これはどうにかして対応したいところではあります。やはり、そのパターンだけ仕様が異なるのはちょっと…。(まだ、うまい方法が見つかりませんが…。ダメだったら諦めますね)

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

    最小化については、検索ダイアログと同じ動作なので、現状のままのほうが良いと思います。

    新たに… ^^;
    検索バープラグイン:Ver 1.0.4(Ver 1.0.0 でも同様)
    検索オプション:[インクリメンタル サーチ] のみ有効
    手順:
    1.Mery 起動後、[Enter] キー押下
    2.2行目で、[大文字と小文字を区別する] を有効にする
    2.[Enter] キー押下
    3.1行目あるいは3行目で、[大文字と小文字を区別する] を無効にする
    → カーソルが2行目に移動する

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

    > 新たに… ^^;

    うは。確かに、現象再現しました。インクリメンタル サーチ、難しいですねぇ。

    前回の分も含めて開発が全然間に合っていない状況ですが、いただいた情報をもとに調査してみますね。

     |  Kuro  |  返信
  146. お久しぶりです、ハンドラーワン

    検索バーですか、ついに、ですね。以前からチラホラ話題は見かけていました。正直Ctrl+Shift+↑or↓ が定着しすぎて、私はそんなに……と思っていましたが、メインメニューの横に配置できるなら格好良さそう!今度試してみますね(←まだ導入してない。すみません)
    入力エリアとしてだけではなく表示エリアとしても使えたら面白そうだと妄想したこともありましたが、一般的な操作感とはズレますし、マクロとプラグインでやり取りとなるとちょっと……ってところだと思いますので、まぁ無しですね

    おつかれさまですの意味を込めて、とある液体を送らせて頂きました(明日まで?ポイント還元セールだそうです)
    ゴックンして頂いてもいいですし、お風呂場などでブッシャー、ダバダバー、ヒャッホゥして頂いても良いと思います。ぜひお試しください

     |  シリル  |  返信
  147. ご無沙汰しております、トゥットゥルー

    そうなんです、検索バー。私も自分では使わない機能なもので、なかなか開発意欲がわかず、ずいぶん時間がかかっております。

    > 今度試してみますね(←まだ導入してない。すみません)

    いえいえ、お気遣いなくー。雑談しながらまったり開発しているので、気が向いたときにでも適当に遊んでみてやってくださいませ。

    > 入力エリアとしてだけではなく表示エリアとして

    表示エリアというのは Ctrl + Shift + ↑ or ↓ やマクロで検索したときに、その検索文字列を検索バーのボックスに表示する感じでしょうか。

    > マクロとプラグインでやり取りとなるとちょっと……ってところだと思いますので、まぁ無しですね

    連動できれば面白そうですが、仕様を考えるのが大変そうではありますね ( ..)φメモメモ

    > ゴックンして頂いてもいいですし、お風呂場などでブッシャー、ダバダバー、ヒャッホゥして頂いても良いと思います。ぜひお試しください

    支援物資ありがとうございます!こ、これは私のガソリンではありませんか。ワーイ、いただきます!グビグビ…。うんまっ!

    プッハー。うぉぉ、やる気が出てきました。明日こそは Ver 3.5.4 開発がんばります!ありがとうございます!!

     |  Kuro  |  返信
  148. お疲れさまです。

    > インクリメンタル サーチ、難しいですねぇ。
    そうみたいですね。
    そのような状態のときに心苦しいですが、ちょっとしたことですが新たなご報告。

    検索バープラグイン:Ver 1.0.4

    検索オプション:[インクリメンタル サーチ] のみ有効
    手順:
    1.エディターウィンドウで表示される行数を 20 行くらいにする
    2.検索バープラグインの README.txt を開く
    3.検索ボックスに「使い方」を貼り付け
    → カーソルが 40 行目の「使い方」に移動
    4.検索ボックスの「使い方」の後ろに「あ」を入力、確定
    → 「## 使い方」の行がエディターウィンドウの最下段に移動
    5.検索ボックスの「あ」を削除
    → 「## 使い方」の行がエディターウィンドウの中央(上記 3.実行後の位置)に移動(戻る)

    検索オプション:[インクリメンタル サーチ] のみ有効
    手順:
    1.検索バープラグインの README.txt を開く
    2.検索ボックスに「つかいかたを」を入力、変換(「使い方を」)、確定
    → カーソルが 40 行目の「使い方」に移動
    検索ダイアログでも同様なので仕方ないのかな。

    検索オプションのアイコンについて、自分としては常に表示されていたほうが便利だとは思いますが、(実装可能なら)隠せるようになっていても良いかなと思いました。
    でも随時変更できるとなると、検索バーの右側に別のツールバーがあるとややこしくなるのかな。

    意欲がわかない開発において申し訳ありませんが、のんびりでいいのでよろしくお願いします。

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

    「使い方を」の文字列はヒットしないはずなのに、カーソルが移動するということでしたら、これは仕様ですね。

    [インクリメンタル サーチ] は検索ボックスの文字列が変更されたタイミングで検索を実行する機能です。

    英字入力だと、打ち込んだ文字はすぐに検索ボックスに入力されますから、そのタイミングで即座に検索が実行されます。

    日本語入力の場合、IME の仕様次第ではありますが、「つかいかたを」を変換して「使い方を」にし Enter キーを押すと「使」「い」「方」「を」が一文字ずつ、順次、検索ボックスに入力されるかたちになります。

    検索ボックスとしては、文字列が入力されたタイミングで検索を実行していますから、「使」「い」「方」まで入力されたときに文書中にヒットする箇所がみつかるのでカーソルは移動し、その後に入力された「を」は無視される。という動作になるのでこれは正しいです。

    他のエディターの動作も確認してみましたが、サクラエディタさん、EmEditor さんともに同様の仕様でした。

    ちなみに、秀丸エディタさんはさすが、といったところでしょうか。日本語の入力にも丁寧に対応されているようで、IME の順次入力も 1 度の変更として動作するような仕組みを用意されている模様です。(どうやってるのかは、わかりませんが…)

    > 検索オプションのアイコンについて、自分としては常に表示されていたほうが便利だとは思いますが、(実装可能なら)隠せるようになっていても良いかなと思いました。

    これは、以前に提案させていただきましたが、右端のほうに別のアイコンとして用意するかたちであればできると思います。

    > 意欲がわかない開発において申し訳ありませんが、のんびりでいいのでよろしくお願いします。

    そうなんですよね。自分が使わない機能というものは本当に開発つらくて。家に帰っても仕事しているような感じ…。有料プラグインとして開発ならがんばれるかな、と思ってたのですが、それでもやりたくなーい ^^:

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

    2つ目の手順での文字列変換しての動作について了解しました。
    1つ目の手順でのスクロールについても仕様ということなのですね。

    > 以前に提案させていただきましたが、右端のほうに別のアイコンとして用意するかたちであればできると思います。
    言葉足らずのところがありましたが、以前の提案は検索オプションのメニューを表示するためのアイコン( [↓] ボタンの右にある [▼] ボタン)についてだったと思いますが、今回コメントした「検索オプションのアイコン」とは、その右にある検索オプションのそれぞれ( [大文字と小文字を区別する]、[単語のみ検索する] など)のアイコンについてのことでした。

    一番最初に https://www.haijin-boys.com/discussions/6398#discussion-7136 で貼られた Twitter の画像の形のものもスッキリしていて良いなと思ったもので。
    自分としては、スッキリするよりもオプションの状態がパッと分かる現在のほうが好みですが。

    > それでもやりたくなーい ^^:
    今のままでも十分すぎるくらいですのでこのまま放っておかれても問題ありませんが、いつかそのうち気が向いたときにでも進めていただければ幸いです。

     |  774  |  返信
  151. > 1つ目の手順でのスクロールについても仕様ということなのですね。

    1 つ目のほうは、いただいた手順どおり動作していたもので、2 つ目の手順を説明するために、正常な動作の例として挙げてくださったのかと思ってました。別件だったのですね、すみません。

    おかしな挙動は見受けられませんが、1 つ目の手順を整理してみますと…

    > 手順:
    > 1.エディターウィンドウで表示される行数を 20 行くらいにする
    しました。

    > 2.検索バープラグインの README.txt を開く
    開きました。

    > 3.検索ボックスに「使い方」を貼り付け
    > → カーソルが 40 行目の「使い方」に移動
    貼り付けました。「使い方」の文字列がヒットして、カーソルが 40 行目に移動しました。

    > 4.検索ボックスの「使い方」の後ろに「あ」を入力、確定
    > → 「## 使い方」の行がエディターウィンドウの最下段に移動
    続けて「あ」を入力するとヒットする箇所はなくなり、カーソルは最後にヒットした位置 (40 行目) に移動しました。

    これは、カーソル位置が起点に戻るので、前回、改善として「検索文字列がヒットしたあと、続けてテキスト内に存在しない文字を入力」した場合、最後のカーソル位置を復元するようにした効果ですね。

    > 5.検索ボックスの「あ」を削除
    > → 「## 使い方」の行がエディターウィンドウの中央(上記 3.実行後の位置)に移動(戻る)
    「あ」を削除すると、再び「使い方」の文字列がヒットしました。

    ということで、もしかして、手順 4 で最後のカーソル位置が復元されますが、そのときにスクロール位置も復元したほうが良いんじゃね?というご意見だったりしますか?(的外れだったらすみません…)

    > 今回コメントした「検索オプションのアイコン」とは、その右にある検索オプションのそれぞれ( [大文字と小文字を区別する]、[単語のみ検索する] など)のアイコンについてのことでした。

    なるほど、そちらでしたか。ツイッターに投稿したときは、まだアイコンを作っていなかったものですから。

    アイコンの制作はとても時間がかかったので、ないほうが良いというご意見は悲しくなってしまいますが、実は、まだ、グレーのアイコン (ボタンが使用不可のときのアイコン) までは用意していないので、廃止するなら今ですね。

    本来は、たとえば [正規表現] がオフのとき、[>] アイコンは使用不可でグレーにするとか、排他のオプションはボタンをグレーにしなきゃいけないのですが、現時点で 9 つのアイコン × 4 段階のサイズ × ライトモードとダークモードの 2 種類で、72 個もグレーのアイコンを作らなければならず、ぐふぅ…となっている状態です。

    > 今のままでも十分すぎるくらいですのでこのまま放っておかれても問題ありませんが、いつかそのうち気が向いたときにでも進めていただければ幸いです。

    ありがとうございます。最近は本体側の開発をしているもので、検索バーまでは手が回っていませんが、あまり時間を置きすぎると忘れてしまうので、週末あたりにまとまった時間を確保してガーッとやってみます!

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

    > ということで、もしかして、手順 4 で最後のカーソル位置が復元されますが、そのときにスクロール位置も復元したほうが良いんじゃね?というご意見だったりしますか?(的外れだったらすみません…)
    「良いんじゃね?」とまでは言いませんが、言いたかったのはそういうことです。
    https://light.dotup.org/uploda/light.dotup.org54496.png
    スクロールするのが仕様ですか?という確認でしたが、おかしな挙動に見受けられないということですので、仕様として了解しました。

    ウィンドウ内にカーソル(起点にする位置)とヒットする文字列がある場合はスクロールしないのでちょっと違和感を感じましたが、問題があるわけではないので細かいことを気にしすぎでした。
    https://light.dotup.org/uploda/light.dotup.org54497.png

    最初の例の
    > > 5.検索ボックスの「あ」を削除
    > > → 「## 使い方」の行がエディターウィンドウの中央(上記 3.実行後の位置)に移動(戻る)
    については、起点から検索し直されるので正しい動作でした。失礼しました。

    > アイコンの制作はとても時間がかかったので、ないほうが良いというご意見は悲しくなってしまいますが、実は、まだ、グレーのアイコン (ボタンが使用不可のときのアイコン) までは用意していないので、廃止するなら今ですね。
    いえいえ、ないほうが良いということではありません。
    自分としては各オプションのアイコンもあったほうが良いですが、表示しないという選択肢もあって良いのかなと思っただけです。
    この意見は取り下げます。申し訳ありませんでした。

    使用不可のアイコンがグレーになるほうが親切だとは思いますが、現状のままでも支障はないように思います。
    排他のオプションはアイコンがグレーになるより、現状の動作の、片方を有効にしたら他方が無効になるほうが便利そうに思いますが、そうではないのかな。

    > 最近は本体側の開発をしているもので、検索バーまでは手が回っていませんが、あまり時間を置きすぎると忘れてしまうので、週末あたりにまとまった時間を確保してガーッとやってみます!
    お手数をおかけしますが、よろしくお願いします。

    コメントしたことを忘れてしまいそうなので自分用のメモ
    https://www.haijin-boys.com/discussions/6398#discussion-7210
    ・アクティブになったときの検索ボックスの文字列の選択状態
     →他のエディターでは半々なので保留(現状のまま?)
    ・最小化して戻したときのフォーカス
     →実装が難しいので現状のまま
    ・非アクティブ時に検索ボックスをクリックしたときの起点
     →対応したいが難しそう(現状のまま?)
    https://www.haijin-boys.com/discussions/6398#discussion-7224
    ・検索ボックスがカラのときに検索オプションを変更した場合のカーソル位置

    対応したほうが良いかなと思われるのは、最後の1つだけだと認識しています。
    (それもレアケースかもしれませんが)

     |  774  |  返信
  153. お久しぶりです、返信が遅くなってしまいすみません。

    その後、ガーッと開発していたのですが、直後に本体側のサポートで忙しくなってしまい、雑談スレに書き込む余裕がなくなってしまいました。

    ようやく Ver 3.5.8 がリリースでき、ひと段落つきそうなので、検索バー プラグインの新バージョン (Ver 1.0.5) をリリースしておきますね。

    https://www.haijin-boys.com/discussions/6398#discussion-7136

    > スクロールするのが仕様ですか?という確認でしたが、おかしな挙動に見受けられないということですので、仕様として了解しました。

    これは、スクロール位置を保持するようにしておきました。

    > 自分としては各オプションのアイコンもあったほうが良いですが、表示しないという選択肢もあって良いのかなと思っただけです。

    アイコンのオン/オフを選択する仕組みは、今のところは必要ないかなと思っていますが、機能が増えて邪魔になってきたら考えても良いかもしれないですね。

    > 使用不可のアイコンがグレーになるほうが親切だとは思いますが、現状のままでも支障はないように思います。

    そう言っていただけるとありがたいです。本当に作るのが大変で、今回のバージョンでも実装できていません。

    > ・アクティブになったときの検索ボックスの文字列の選択状態
    >  →他のエディターでは半々なので保留(現状のまま?)

    選択状態にするよう、仕様変更しました。

    > ・最小化して戻したときのフォーカス
    >  →実装が難しいので現状のまま

    やはり技術的に難しく、現状のままです。

    > ・非アクティブ時に検索ボックスをクリックしたときの起点
    >  →対応したいが難しそう(現状のまま?)

    たぶん、修正できている気がします。(自信はありませんが…)

    > ・検索ボックスがカラのときに検索オプションを変更した場合のカーソル位置

    修正しておきました。

    以下、変更ログを貼っておきますね。

    ----
    - [インクリメンタル サーチ] で検索文字列をドロップダウンから選択したときに検索を実行するようにした
    - [インクリメンタル サーチ] でスクロールバーとステータスバーの描画が見えていたのを抑制した
    - 検索文字列がヒットしたあと続けてヒットしない文字を入力したときにスクロール位置も復元するようにした
    - ウィンドウがアクティブになったときに検索ボックスの文字列を選択状態にするようにした
    - ウィンドウが非アクティブで検索ボックスをクリックしたときに、検索開始位置を保持するようにした
    - 検索ボックスのフォーカスを保持する仕様を作り直した
    - タブの切り替え時: フォーカスを維持しない
    - 最小化から復帰時: フォーカスを維持しない
    - 非アクティブからタイトルバーをクリック: フォーカスを維持
    - 非アクティブからエディター部分をクリック: フォーカスを維持しない
    - 非アクティブからその他の部分をクリック: フォーカスを維持
    - 検索ボックスが空の状態で検索オプションを変更したときに検索を実行しないようにした
    ----

     |  Kuro  |  返信
  154. お忙しい中、対応していただき、ありがとうございます。

    > > スクロールするのが仕様ですか?という確認でしたが、おかしな挙動に見受けられないということですので、仕様として了解しました。
    > これは、スクロール位置を保持するようにしておきました。
    スクロールしないのを確認しました。

    > アイコンのオン/オフを選択する仕組みは、今のところは必要ないかなと思っていますが、機能が増えて邪魔になってきたら考えても良いかもしれないですね。
    了解しました。

    > > 使用不可のアイコンがグレーになるほうが親切だとは思いますが、現状のままでも支障はないように思います。
    > そう言っていただけるとありがたいです。本当に作るのが大変で、今回のバージョンでも実装できていません。
    個人的には、検索オプションはほとんど変更しないので当てにならない意見になりますが、現状のままのほうが使いやすいように思います。

    > > ・アクティブになったときの検索ボックスの文字列の選択状態
    > 選択状態にするよう、仕様変更しました。
    選択状態になるのを確認しました。

    > > ・最小化して戻したときのフォーカス
    > やはり技術的に難しく、現状のままです。
    了解しました。

    > > ・非アクティブ時に検索ボックスをクリックしたときの起点
    > たぶん、修正できている気がします。(自信はありませんが…)
    私が試したケースでは想定どおりの起点になっていることを確認しました。
    他のケースがあるのかないのかが定かでありませんが。

    > > ・検索ボックスがカラのときに検索オプションを変更した場合のカーソル位置
    > 修正しておきました。
    検索オプションを変更してもカーソル位置が移動しないことを確認しました。

    普通に使う分には前のバージョンでも十分でしたが、稀なケースにも対応していただき、ありがとうございました。

    以下、検索バーについての個人的メモ
    ・検索開始位置
    [インクリメンタル サーチ] が有効な場合、検索バーからフォーカスを外さない限り、検索開始位置は、検索バーにフォーカスを当てたときのカーソル位置のまま固定される
    これは、検索を行っているときに検索文字列を変更する場合に影響する
    検索バーからフォーカスを外していない状態で検索文字列を変更すると、今のカーソル位置の続きからではなくて、固定された検索開始位置から検索が行われる
    https://www.haijin-boys.com/discussions/6398#discussion-7155

    ・キーボードでの日本語入力
    [インクリメンタル サーチ] が有効な場合にキーボードで日本語入力を行う場合、日本語入力が確定した文字列が検索ボックスに一気に入力されて、その文字列で検索が行われるのではなくて、確定した文字列が一文字ずつ順に入力されて、その都度、順に検索が行われる

    例:キーボードで「あいう」と入力してそれを確定した場合、「あいう」と検索ボックスに一気に入力されて、「あいう」で検索が行われるのではなく、「あ」「い」「う」と一文字ずつ順に入力されて、「あ」「あい」「あいう」と順に検索が行われる
    https://www.haijin-boys.com/discussions/6398#discussion-7230

    ・検索オプションの連動
     → README.txt

    ・検索文字列の履歴
     → README.txt

     |  774  |  返信
  155. ご無沙汰しております。新バージョン、お試しいただきありがとうございます。

    > お忙しい中、対応していただき、ありがとうございます。

    いえいえー。こちらこそ、「週末あたりに…」と言いつつ、ずいぶん時間がかかってしまいました。(雑談スレなので、本体のサポートそっちのけというわけにもいかず ^^;)

    > 個人的には、検索オプションはほとんど変更しないので当てにならない意見になりますが、現状のままのほうが使いやすいように思います。

    私もできればアイコン制作はやりたくない作業なので、ご意見を参考にさせていただきたいと思います。

    > 以下、検索バーについての個人的メモ
    > ・検索開始位置

    参考になります。確かに、本体側のインクリメンタル サーチとは仕様が違うので、これは README.txt に記載しておいたほうが良さそうですね。

    > ・キーボードでの日本語入力

    これは、できれば 1 文字ずつ入力として認識じゃなくて、1 度の入力として認識できるようにしたいところですが、技術的につまづいている状態なので保留とさせていただければと思います。

    いやぁ、暑いですね!みなさん、熱中症にはくれぐれもお気を付けくださいませ。

     |  Kuro  |  返信
  156. ご返信、ありがとうございます。
    暑いですねー。こんな状態がまだ1週間続くのかと思うと滅入ります。

    > ずいぶん時間がかかってしまいました。(雑談スレなので、本体のサポートそっちのけというわけにもいかず ^^;)
    優先度が低くなるのは当然だと思いますし、まったく問題ありません。

    検索オプションについては、ユーザーが有効にしたものを勝手に自動で無効にするのはいかがなものか?、同時に使用できないオプションについては、片方を無効にしてから他方を有効にしてね。という感じなのでしょうね。
    検索ダイアログと仕様を合わせるということもあると思いますが。

    > > ・検索開始位置
    > 参考になります。確かに、本体側のインクリメンタル サーチとは仕様が違うので、これは README.txt に記載しておいたほうが良さそうですね。
    うまく表現できていないので、README.txt に記載するのであれば、文章は参考にしないでください。^^;

    > > ・キーボードでの日本語入力
    > これは、できれば 1 文字ずつ入力として認識じゃなくて、1 度の入力として認識できるようにしたいところですが、技術的につまづいている状態なので保留とさせていただければと思います。
    Delphi のプログラミングについてはわかりませんが、日本語(全角)入力でも Mery 側では1文字ずつしか受け取れないということですと難しそうですね。
    秀丸エディタさんはさすがですが、[インクリメンタル サーチ] が有効な場合にキーボードで日本語入力を行うケースに限られますし、検索文字列を削除すればカーソルが検索開始位置に戻るので、わざわざ複雑な仕組みを入れる必要はないように思います。

    最新バージョンはまだ余り試せていませんが、今後も活用していきたいと思います。

     |  774  |  返信
  157. > ようやく Ver 3.5.8 がリリースでき、ひと段落つきそうなので、検索バー プラグインの新バージョン (Ver 1.0.5) をリリースしておきますね。

    どうもお世話になってます
    v1.0.5で検索ボックスにフォーカスで以下のようなメッセージが出たり出なかったり出ない場合が多いです

    全ての文章にxxxが見つかりませんでした
    文末まで検索しました
    文頭まで検索しました

    一旦エディター部分にフォーカスで出たり出なかったり
    一旦エディター部分にフォーカス再び検索ボックスにフォーカスで出る場合も
    v1.0.4では問題ないです

     |  kiyohiro  |  返信
  158. 一応画像
    https://imgur.com/BNs6Eek
    メッセージは無し

     |  kiyohiro  |  返信
  159. ステータス バーの表示はおかしいですね。

    私は [折り返しあり] は無効にしているのでメッセージは違いますが、文書に存在しない検索文字列を入力しても「現在位置より下に XXX は見つかりません」が表示されません。
    (「折り返し」と言う表現は行右端での折り返しを連想してしまい、イマイチなじめません。)

    メニューの検索 → 前を検索や表示 → アウトプットでアウトプット バーを表示させると表示されます。
    メニューの検索 → 次を検索だと、表示されるときもありますが表示されないときもあります。

     |  774  |  返信
  160. ご返信ありがとうございます。

    > 暑いですねー。こんな状態がまだ1週間続くのかと思うと滅入ります。

    ほんと、夏バテまっしぐら…。パソコンがポンコツなので熱風が出て部屋がサウナみたいになってます。

    > 検索ダイアログと仕様を合わせるということもあると思いますが。

    そうなんですよね。仕様としてはそのほうが分かりやすそうかなと思います。

    でも、検索ダイアログと違って、ツールバーのボタンの場合、アイコンに Fluent Icons を採用していることもあって、無効状態のアイコンを作ったとしても視認しづらそうという懸念もありますね。

    > うまく表現できていないので、README.txt に記載するのであれば、文章は参考にしないでください。^^;

    わかりました ^^; 文章を考えるのが苦手なもので、ちょっとだけ参考にさせていただきつつ、あとは ChatGPT 先生におまかせしてみます。

    > 検索文字列を削除すればカーソルが検索開始位置に戻るので、わざわざ複雑な仕組みを入れる必要はないように思います。

    そうですね。優先度は低めに設定させていただきつつ、実装できそうなヒントでも見つかれば対応してみたいと思います。

     |  Kuro  |  返信
  161. >> kiyohiro さん、774 さん

    ご報告ありがとうございます。現象、確認しました。

    これは Ver 1.0.5 での "[インクリメンタル サーチ] でスクロールバーとステータスバーの描画が見えていたのを抑制した" による不具合のようです。

    どうやら抑制しすぎちゃったようで…、修正しておきますね。

    > (「折り返し」と言う表現は行右端での折り返しを連想してしまい、イマイチなじめません。)

    私も同感ですが、Windows 10 のメモ帳にあわせています。Microsoft の翻訳ってセンスがないんですよねー。英語だと Wrap around なので分かるんですけどね。

     |  Kuro  |  返信
  162. >> kiyohiro さん、774 さん

    こんばんはー、暑ぅぅぅい!検索バー プラグインのステータス バーの件、修正しておきました。

    https://www.haijin-boys.com/discussions/6398#discussion-7136

     |  Kuro  |  返信
  163. 修正ありがとうございます
    メッセージが出るのを確認しました

     |  kiyohiro  |  返信
  164. ご確認ありがとうございます。うまく動作しているようで安心しました。

    私も検索バー プラグインを使っていて不具合を見つけたので報告しておきます。

    ちょっと特殊な条件下ですが…

    ・Windows 11、10、7
    ・Mery 3.4.0 ~ 3.5.8
    ・検索バー プラグイン、または、Markdown バー プラグインを導入
    ・[タブを複数行にする] オン

    この状態で、

    1. Mery を起動
    2. タブをたくさん開いて複数行にする (1 行だと発生しない)
    3. 新たにエクスプローラーを開く (Mery を非アクティブにする、でも OK かも?)
    4. 再び Mery のウィンドウをアクティブにする
    5. そのまま Windows をシャットダウン

    これで「無効なポインタ操作」(ぬるぽ) が Mery.log に出力されます。

    検索バー に限らず、ツール バー系のプラグインだと発生するようで、Mery 本体の修正が必要となりそうです。

    次のバージョンで対応しておきますので、Mery.log にぬるぽが出力されていてもスルーしてくださいませ。

     |  Kuro  |  返信
  165. ご対応、ありがとうございます。
    ステータス バーにメッセージが表示されるのを確認しました。

    > > (「折り返し」と言う表現は行右端での折り返しを連想してしまい、イマイチなじめません。)
    > 私も同感ですが、Windows 10 のメモ帳にあわせています。Microsoft の翻訳ってセンスがないんですよねー。英語だと Wrap around なので分かるんですけどね。
    そうなのですね。了解しました。

    > - ウィンドウがアクティブになったときに検索ボックスの文字列を選択状態にするようにした
    1つ前の変更ですが、これにより個人的にはすごく使いやすくなりました。

    README.txt の
    > **インクリメンタル サーチの仕様**
    > - [検索] ダイアログ ボックスの [インクリメンタル サーチ] は、検索文字列を入力すると自動的に [検索] を実行するだけの単純なものですが、検索 バーの [インクリメンタル サーチ] は、文書内の現在の位置を起点として、上から下へと進んでいく、より高度なものとなっています。
    で、「文書内の現在の位置を起点」だと、検索途中の場合に「現在の位置」がそのときの位置にも受け取れ、[検索] ダイアログ ボックスとの違いが分かりづらいような気がします。
    例が挙げてあるから大丈夫かな?

    例えば、「文書内の最初の位置」としてしまうと、常に文書の先頭から検索するようにも受け取れますし、「検索 バーにフォーカスを当てたときのカーソル位置(検索 バーからフォーカスが外れるとその位置はリセットされる)」とかだとくどすぎる気がしますし、難しいですね。

     |  774  |  返信
  166. ご確認ありがとうございます。うまく動作しているようで安心しました。

    > 1つ前の変更ですが、これにより個人的にはすごく使いやすくなりました。

    これは、作った機能を廃止しただけですが、そう言っていただけると何かが報われます。

    > で、「文書内の現在の位置を起点」だと、検索途中の場合に「現在の位置」がそのときの位置にも受け取れ、[検索] ダイアログ ボックスとの違いが分かりづらいような気がします。

    確かに、その部分だけを切り取るとそういう意味にも受け取れますね。

    直前の、"[検索] ダイアログ ボックスの [インクリメンタル サーチ] は、検索文字列を入力すると自動的に [検索] を実行するだけの単純なものですが、" という内容とあわせると大丈夫ではないでしょうか。

    > 「検索 バーにフォーカスを当てたときのカーソル位置(検索 バーからフォーカスが外れるとその位置はリセットされる)」とかだとくどすぎる気がしますし、難しいですね。

    そうなんですよね。はじめはそういった内容で仕様を詳細に記載していたのですが、おっしゃるとおり、くどすぎたのでやめました ^^;

    そこで、翻訳には定評?のある Microsoft 製品のマニュアルからインクリメンタル サーチの説明を参考にさせていただいたというわけです。

    Microsoft SSMS のマニュアルより引用:
    ----
    インクリメンタル検索は、ドキュメント内の現在の位置を起点として、上から下へ、左から右へと進んでいきます。
    ----
    【出典】アクティブ ドキュメントのインクリメンタル検索
    https://learn.microsoft.com/ja-jp/sql/ssms/scripting/search-an-active-document-incrementally?view=sql-server-ver16

    Microsoft Visual Studio 2005 のマニュアルより引用:
    ----
    インクリメンタル検索は、ドキュメント内の現在の位置から下方向に向かって左から右に実行されます。
    ----
    【出典】Visual Studio 2005 の提供終了済みドキュメント
    https://www.microsoft.com/ja-jp/download/details.aspx?id=55984

    Microsoft 製品では「現在の位置」という表現が使われており、もちろん、上記の 2 製品とも、インクリメンタル サーチの仕様は Mery の検索バーと同様、現在の位置* を起点とするタイプのものです。

    * ここでいう「現在の位置」というのは、検索バーにフォーカスが入る直前の文書内のカーソル位置のことです。

    …って、「現在の位置」を説明しようとすると、やっぱりくどくなってしまいますね。

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

    > そこで、翻訳には定評?のある Microsoft 製品のマニュアルからインクリメンタル サーチの説明を参考にさせていただいたというわけです。

    Microsoft さんがそのような表現をしているのなら、合わせておくのが無難ですね。

     |  774  |  返信
  168. Kuroさん、こんにちは。
    Markdownプレビュープラグインを使っていて気になることがあったので投稿しました。

    Markdownプレビュープラグインを使っていますが、Markdownプレビュー画面に表示されているURL形式のハイパーリンクをクリックすると、一瞬ウェブブラウザ画面が前面に現れたあと、すぐにMeryの画面が前面に現れる現象が発生するのですが仕様なのでしょうか?
    https://imgur.com/gallery/uH8ixJS
    https://imgur.com/gallery/Rfqatd9

    この現象は、Meryが起動していない状態で対象ファイルを開き、ハイパーリンクをクリックすると発生するようです。
    なお、一度現象が発生した後は、Meryを閉じない限り現象は発生しないようです。

    下記のブラウザで試してみましたが、どのブラウザでも同じ現象が発生しました。
    ・Chrome
    ・Edge
    ・Firefox
    ・Opera

    【使用環境】
    Mery: 3.6.3 (x64) インストーラー版
    Onigmo: 6.2.0
    Tidy: 5.8.0
    Hunspell: 1.7.1
    Markdown プレビュー: 1.0.4 (MarkdownPreview.dll)
    OS: Windows 11 (Version 23H2, OS Build 22631.2715, 64-bit Edition)
    マクロ: なし

    あと、MarkdownプレビュープラグインとMarkdownバープラグインの32ビット版のリンク先がないのですが、意図的に記載していないのでしょうか?
    (各64ビット版のURLを修正したら32ビット版をダウンロードすることはできましたが)。

     |  MSY-07  |  返信
  169. こんにちは。ご報告ありがとうございます。

    いただいた条件で検証してみたのですが、私の環境だと現象を再現できませんでした。

    【参考画像】
    https://imgur.com/a/z6N73cD

    操作が間違っていたら教えていただけますでしょうか。参考画像は Chrome を使用していますが、Edge でも同様でした。

    ちなみに、Mery の処理としては Windows API の ShellExecute を SW_SHOW オプションで呼び出しているだけで、前面に再表示するなどの処理は行っていません。

    それから、ハイパーリンクですが、Markdown プレビューではなく、エディター部分でリンクをダブルクリックした場合も同様の現象が発生しますか?

    【検証環境】
    Mery: 3.6.3 (x64)
    Onigmo: 6.2.0
    Tidy: 5.8.0
    Hunspell: 1.7.1
    Markdown プレビュー: 1.0.4 (MarkdownPreview.dll)
    アウトライン: 3.2.1 (Outline.dll)
    OS: Windows 11 (Version 23H2, OS Build 22631.2715, 64-bit Edition)

    しかし、どのブラウザーでも発生するとなると、ブラウザー側の問題ではなさそうですね。マクロやその他のプラグインも外した状態ですし。

    WebView2 のバージョンの違いという可能性については、エディター部分のリンクをダブルクリックしたときに現象が発生するかどうかで、切り分けられると思います。

    他に考えられることとしては…

    ・Mery の設定
    ・Markdown プレビューの設定
    ・マルチ ディスプレイの利用
    ・4K ディスプレイなどの高 DPI
    ・OS のバージョン
    ・常駐アプリとの干渉
    ・ウイルスチェックソフトの影響

    このあたりでしょうか。

    > あと、MarkdownプレビュープラグインとMarkdownバープラグインの32ビット版のリンク先がないのですが、意図的に記載していないのでしょうか?

    はい、そのとおりです。

    これらのベータ版は一般のかたではなく、このトピックに参加しているユーザーさんを対象としています。需要が少ないと予想される 32 ビット版は公開していません。

    野良アプリの性質上、SHA256 を調べたり VirusTotal にアップロードしたり、公開には手間がかかりますので。

    もちろん、64 ビット版と 32 ビット版で動作が異なることがあるので、32 ビット版の動作検証にご協力いただける場合はお知らせください。

    > (各64ビット版のURLを修正したら32ビット版をダウンロードすることはできましたが)。

    いやん、サーバーにアタックしないでください!(>_<)

    また、32 ビット OS をご利用の方でベータテストにご協力いただける方がいらっしゃる場合も、お知らせいただければ対応します。

     |  Kuro  |  返信
  170. 追伸ですが、参考画像のリンクをクリックすると、なぜか年齢認証が表示されるようです。

    内容はただのスクリーンショット gif 動画で安全ですので、ご心配いりません。

    また、バージョン情報のコピーにはおそらく [情報のコピー] をご利用いただいているかと思いますが、ポータブル版では "Portable" と表示されるようになっていますので、"インストーラー版" の記載は省略いただいても問題ありません。

     |  Kuro  |  返信
  171. サンデーうぇぶりで『よふかしのうた』を一気読みしていたら返信が遅れました😁

    > 操作が間違っていたら教えていただけますでしょうか。参考画像は Chrome を使用していますが、Edge でも同様でした。

    スクリーンショットを見る限り、特に操作は間違っていませんでした。

    > それから、ハイパーリンクですが、Markdown プレビューではなく、エディター部分でリンクをダブルクリックした場合も同様の現象が発生しますか?

    エディター部分でハイパーリンクをダブルクリックした場合は現象は発生しません。
    この現象はMarkdownプレビューのハイパーリンクをクリックした場合のみ発生します。

    > 他に考えられることとしては…
    >
    > ・Mery の設定
    > ・Markdown プレビューの設定

    一度Meryをアンインストール後、LocalフォルダとRoamingフォルダ内にあるMeryフォルダを削除して、再度Meryをインストールした後、Markdownプレビュープラグインを入れて初期設定の状態でテストしましたが、やはり同じ現象が発生しました。

    > ・マルチ ディスプレイの利用

    普段はノートPCに液晶テレビを接続してマルチディスプレイ化していますが、ノートPCのディズプレイのみでテストしても同じ現象が発生しました。

    > ・4K ディスプレイなどの高 DPI

    4Kディスプレイは使用してないですね(4K解像度は3840×2160ですが、使用しているノートPCのディスプレイと液晶テレビが両方とも1366×768なので)。

    > ・OS のバージョン

    Windows 11だけでなく、10を使用していたときも同じ現象が発生していました。

    > ・常駐アプリとの干渉

    常駐アプリは下記URLのものを使用しています。
    https://imgur.com/gallery/TGUrvLY
    https://imgur.com/gallery/iwejGNy
    https://imgur.com/gallery/EMfgmqU
    https://imgur.com/gallery/SGbczwG

    > ・ウイルスチェックソフトの影響

    ウイルスチェックソフトはWindows 11にデフォルトでインストールされているWindows セキュリティを使用しています。

    > これらのベータ版は一般のかたではなく、このトピックに参加しているユーザーさんを対象としています。需要が少ないと予想される 32 ビット版は公開していません。
    >
    > 野良アプリの性質上、SHA256 を調べたり VirusTotal にアップロードしたり、公開には手間がかかりますので。

    検索バープラグインでは後で32ビット版が追加されていましたので、もしかしたら忘れているのかと思いまして。

    > また、バージョン情報のコピーにはおそらく [情報のコピー] をご利用いただいているかと思いますが、ポータブル版では "Portable" と表示されるようになっていますので、"インストーラー版" の記載は省略いただいても問題ありません。

    てっきりポータブル版でも同じ表示だと思っていたので追記していましたが、余計な気遣いでしたね。

     |  MSY-07  |  返信
  172. 追記です。

    > ・常駐アプリとの干渉

    スタートアップ時に起動するアプリを全てOFFにして再起動したあと、常駐アプリがない状態でテストしましたが、同じ現象が発生しました。

    > ・ウイルスチェックソフトの影響

    記載し忘れていましたが、ウイルスチェックソフトはWindows11にデフォルトでインストールされているMicrosoft Defenderを使用しています。
    Microsoft Defenderの影響かもしれないと思ったので、Avast Free Antivirusに切り替えてテストしましたが、同じ現象が発生しました。

     |  MSY-07  |  返信
  173. さらに追記です。

    Markdownプレビューのハイパーリンクについてですが、下記のリンクをクリックした場合だけでなく、URL形式のリンクをクリックした場合でも同じ現象が発生します。

    [リンクのテキスト](リンクのアドレス)

    https://imgur.com/gallery/CFHeKrU

     |  MSY-07  |  返信
  174. こんにちは。体調を崩して寝込んでおり、返信が遅くなってしまいました。

    『よふかしのうた』、調べてみたら面白そうー。これは眠れなくなりそうですね😱

    考えられる原因について、いくつか確認していただき、ありがとうございます。

    この状況では、解決策が見当たらず、少し手詰まりのようです。

    私のほうでは、別の PC (Windows 10) で検証してみましたが、そちらでも問題は再現しませんでした。

    > Markdownプレビューのハイパーリンクについてですが、下記のリンクをクリックした場合だけでなく、URL形式のリンクをクリックした場合でも同じ現象が発生します。

    この場合も内部的には Markdown 形式のリンクと同じ処理が呼ばれているので、現象に大きな差はないはずです。

    > エディター部分でハイパーリンクをダブルクリックした場合は現象は発生しません。

    なんと…。エディター部分も、処理としては同じ (Windows API の ShellExecute を呼んでいるだけ) なので、こうなってくると、Markdown プレビューで使用している WebView2 のバージョンの違いによる仕様に関係している可能性が考えられますね。

    Windows の [設定] > [アプリ] > [インストールされているアプリ] から、[webview2] と入力して表示される [Microsoft Edge WebView2 Runtime] のバージョン番号を確認していただけますでしょうか。

     |  Kuro  |  返信
  175. > こんにちは。体調を崩して寝込んでおり、返信が遅くなってしまいました。

    あらら、そうでしたか。
    温かいものでも食べてゆっくり休んでください。

    > 『よふかしのうた』、調べてみたら面白そうー。これは眠れなくなりそうですね😱

    今ならサンデーうぇぶりで『よふかしのうた』が4巻まで無料で読めますよ😊
    自分はというと、『よふかしのうた』を読んで眠れなくなったので、何をしようかと考えていてたら、11月30日にNintendo Switch Online + 追加パックで『ゴールデンアイ 007』が配信されることが発表されたので、これは眠れない夜が来るなとわくわくしています😁

    > Windows の [設定] > [アプリ] > [インストールされているアプリ] から、[webview2] と入力して表示される [Microsoft Edge WebView2 Runtime] のバージョン番号を確認していただけますでしょうか。

    確認したところ、Microsoft Edge WebView2 Runtimeのバージョン番号は119.0.2151.72でした。
    https://imgur.com/gallery/9uJWAKW

     |  MSY-07  |  返信
  176. お気遣いいただき、ありがとうございます。ようやく回復しました。今日もお休みをいただいておりますが。

    『ゴールデンアイ 007』、いい感じですね。最近は Half-Life の無料配布もあったりして、レトロ FPS が再び注目を浴びているのかもしれませんね😊

    WebView2 のバージョン確認、お手数をおかけしました。私の環境と同じだということで、原因の絞り込みが難しいですね。

    他に思いついたこととして、私のほうでは以下の点を検証してみました。

    ・解像度 1366 x 768 のノート PC での検証
    → 現象は再現しませんでした

    ・Bandicam で撮影中だけ発生?
    → Bandicam をインストールして検証してみましたが問題ありませんでした

    ・Google 日本語入力の干渉?
    → Google 日本語入力をインストールして検証してみましたが問題ありませんでした

    ここからは、可能性は低いですが最後の試みです。

    気になる点として、スクリーンショットではリンクをクリックしたときにマウス ポインターの待機アイコンが「砂時計」になっているようですが、これはご自身で設定されたものでしょうか?

    通常、Windows 10/11 では砂時計ではなく、「青いくるくる」が表示されるはずです。

    ご自身で設定した覚えがない場合は、何かマウスジェスチャなど、マウス操作を補助するツールがインストールされている可能性はありませんでしょうか。

    それから、お使いのマウスは普通のものでしょうか?

    タッチパネルやペンタブレット、トラックボールなどを使っている場合、それらに関連するソフト (ドライバー) がマウス操作に影響を与えている可能性も考えられます。

    このあたりでお気づきの点がありましたら、教えていただけますと近い環境で検証できるかもしれません。

    …しかしながら、ここまで試してもダメなら、諦めるしかないかもしれません🙇‍♂️

     |  Kuro  |  返信
  177. > 『ゴールデンアイ 007』、いい感じですね。最近は Half-Life の無料配布もあったりして、レトロ FPS が再び注目を浴びているのかもしれませんね😊

    Half-Lifeも面白そうなのでダウンロードしました。
    あとで遊ぼうかなと思っています。

    > 気になる点として、スクリーンショットではリンクをクリックしたときにマウス ポインターの待機アイコンが「砂時計」になっているようですが、これはご自身で設定されたものでしょうか?
    >
    > 通常、Windows 10/11 では砂時計ではなく、「青いくるくる」が表示されるはずです。

    これは砂時計のほうが私の好みなので自分で変更しました。
    デフォルトのマウスアイコンに戻してテストしましたが、同じ現象が発生しました。

    > ご自身で設定した覚えがない場合は、何かマウスジェスチャなど、マウス操作を補助するツールがインストールされている可能性はありませんでしょうか。

    確認しましたが、マウス操作を補助するツールはインストールされていませんでした。

    > それから、お使いのマウスは普通のものでしょうか?

    マウスは有線の2ボタン型・ホイールマウスです。
    https://www.amazon.co.jp/%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%BD%E3%83%95%E3%83%88-USB%E6%8E%A5%E7%B6%9A-Optical-%E3%82%BB%E3%82%B5%E3%83%9F%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF-P58-00069/dp/B00AJX05LM

    > タッチパネルやペンタブレット、トラックボールなどを使っている場合、それらに関連するソフト (ドライバー) がマウス操作に影響を与えている可能性も考えられます。

    タッチパネルやペンタブレット、トラックボールなどは使用していません。
    ノートPCに付属しているタッチパッド用のドライバーをインストールしているので、アンインストールしてテストしましたが、同じ現象が発生しました。
    ドライバー: Synaptics Pointing Device Driver (64bit, Ver 19.3.22.42)

    > …しかしながら、ここまで試してもダメなら、諦めるしかないかもしれません🙇‍♂️

    今回に関してはおま環のような気がするので、原因を特定するのが難しそうですね。
    これ以上調査をしても埒が明かないので、これで調査を終了にしましょうか。
    ここまでお付き合いくださいましてありがとうございました。

     |  MSY-07  |  返信
  178. お手数をおかけしました。そして、色々とご確認いただき、ありがとうございました。

    > 今回に関してはおま環のような気がするので、原因を特定するのが難しそうですね。

    そうですね、何かしら環境に左右される要因があると思うのですが、検証できる範囲で考えられることはほぼやり尽くした感じです。

    > これ以上調査をしても埒が明かないので、これで調査を終了にしましょうか。
    > ここまでお付き合いくださいましてありがとうございました。

    こちらこそ、動作検証へのご協力ありがとうございました。

    最後に 1 つだけ。

    WebView2 の処理は Mery 本体とは別のプロセスで動作しているので、PC のスペックの違いによって WebView2 の処理のタイミングが異なる可能性があるかもしれません。(最初の 1 回だけ現象が発生するというのは納得がいかない点ですが)

    そこで、リンクをクリックしたときのリンクを開く処理 (ShellExecute) を少し遅らせて実行するように調整してみました。これで現象がどうなるかお試しいただけますでしょうか。

    Ver 1.0.5 のアップデート内容が含まれていますが、新機能は完成しているのでそのままお使いいただいても問題ありません😁

     |  Kuro  |  返信
  179. > そうですね、何かしら環境に左右される要因があると思うのですが、検証できる範囲で考えられることはほぼやり尽くした感じです。

    もしかしたら、システム要件を満たしていないノートPCを無理やりWindows 11にアップデートしたのが原因かもしれません。
    (不具合が出ると嫌なので、Windows 11にアップデートしたあとにクリーンインストールしましたが)。
    PC 正常性チェックアプリで確認すると、セキュアブート、TPM 2.0、プロセッサの3つの要件で引っかかっています。
    https://imgur.com/gallery/EBaqS0k
    https://imgur.com/gallery/P7btWBh
    https://imgur.com/gallery/f8uNWEL

    > WebView2 の処理は Mery 本体とは別のプロセスで動作しているので、PC のスペックの違いによって WebView2 の処理のタイミングが異なる可能性があるかもしれません。(最初の 1 回だけ現象が発生するというのは納得がいかない点ですが)
    >
    > そこで、リンクをクリックしたときのリンクを開く処理 (ShellExecute) を少し遅らせて実行するように調整してみました。これで現象がどうなるかお試しいただけますでしょうか。

    MarkdownプレビュープラグインをVer 1.0.5に差し替えてテストしましたが、同じ現象が発生しました。

    > Ver 1.0.5 のアップデート内容が含まれていますが、新機能は完成しているのでそのままお使いいただいても問題ありません😁

    分かち書きができるようになったことでプレビュー画面が見やすくなりました。

     |  MSY-07  |  返信
  180. ご確認いただき、ありがとうございました。

    > もしかしたら、システム要件を満たしていないノートPCを無理やりWindows 11にアップデートしたのが原因かもしれません。

    それは問題ないと思います。

    私の環境も同じで、システム要件を満たしていない PC を無理やり Windows 11 にアップデートした後、クリーン インストールしたものです。

    > MarkdownプレビュープラグインをVer 1.0.5に差し替えてテストしましたが、同じ現象が発生しました。

    そうなんですね…😭 お手数をおかけしました。

    Ver 1.0.5 のテスト版では、Windows API の ShellExecute を他の処理から切り離して、単独で呼び出すようにしてみましたが、これで解決しないとなると、Mery 側で調整できる余地がなさそうです。(OS 的な問題?)

    色々とご協力いただき、ありがとうございました。

    残念な結果となってしまいましたが、また、何かお気づきの点などがありましたらご連絡いただけると助かります。

    不具合がまだ残っている状態での利用は、少し気になるかもしれませんが、MeryWiki の開発室に情報を残しておきましたので、今回はここで一旦終了し、また新しい情報があればお知らせいたしますね。

    > 分かち書きができるようになったことでプレビュー画面が見やすくなりました。

    それは良かったです。別のトピックで話題にあがっていた、BudouX という分かち書き機能ですね。

    日本語の文章としては、結構大胆な分割をしてくれるので、見やすくなる反面、何だか微妙な感じもしますよね。

    好みが分かれそうですが、とりあえず BudouX の方は、うまく動いているようで一安心です😁

     |  Kuro  |  返信
  181. MarkdownPreviewフォルダ内に入っているCHANGELOG.txtについてですが、Ver 1.0.5の日付に余分な0が入っていますね。
    【修正前】## 1.0.5 (2023-011-25)
    【修正後】## 1.0.5 (2023-11-25)

    > 残念な結果となってしまいましたが、また、何かお気づきの点などがありましたらご連絡いただけると助かります。
    >
    > 不具合がまだ残っている状態での利用は、少し気になるかもしれませんが、MeryWiki の開発室に情報を残しておきましたので、今回はここで一旦終了し、また新しい情報があればお知らせいたしますね。

    ここまでご対応いただきありがとうございました。
    何か新しい情報が見つかったら報告しますね。

     |  MSY-07  |  返信
  182. どうもお世話になってます
    Markdown プレビュー プラグインについて
    Markdownは正直良くわかってなくて取り敢えず.mdのビューワーとして使ってます
    質問なんですが
    D:\Test\Downloads\Mery(test)\Mery.exe\
    は文字列最後の\(U+005C)が表示されない
    上記文字列中の\も無し
    \
    は表示なし
    \\\\\\\\\\
    は\が5つ表示
    これってMarkdownの仕様何でしょうか?
    最近は仕事でもらうtxtがmdの時があり値段表示に\が使われてて
    表示が抜けるので気になってます
    https://imgur.com/IjznyIt

    Mery: 3.6.3 (x64, Portable)
    Onigmo: 6.2.0
    Tidy: 5.8.0
    Hunspell: 1.7.1
    アウトライン: 3.2.1 (Outline.dll)
    プロ生ちゃん: 1.0.12 (KureiKei.dll)
    半角/全角変換: 2.4.0 (Conversion.dll)
    HSP コンパイル実行: 2.4.2 (HSPRun.dll)
    Webプレビュー: 2.4.0 (WebPreview.dll)
    MeryCsvList: 1.08 (MeryCsvList.dll)
    MeryClipInfo: 1.05 (MeryClipInfo.dll)
    MeryCsvText: 1.00 (MeryCsvText.dll)
    MeryClipHistory: 1.01 (MeryClipHistory.dll)
    MeryCrLf: 1.00 (MeryCrLf.dll)
    お気に入り2: (2.3.3-FH) (Favorites2.dll)
    Zen モード時計: 1.1.0 (ZenClock.dll)
    Markdown プレビュー: 1.0.5 (MarkdownPreview.dll)
    Tablacus Dark: 21.12.28 (tablacusdark64.dll)
    Markdown バー: 1.0.1 (MarkdownBar.dll)
    検索 バー: 1.0.6 (FindBar.dll)
    OS: Windows 10 (Version 22H2, OS Build 19045.3693, 64-bit Edition)

    ちなみに上記投稿のMSY-07さんの件
    こちらの環境でも再現しなかったです
    よくわかってませんが
    問題がウインドウがアクティブにならないなら
    使ってるランチャーで最近同じような投稿があったので一応
    https://www2s.biglobe.ne.jp/~geoph/bbs/wforum.cgi?mode=read&no=6213&reno=6212&oya=6212&page=0#art-6213

     |  kiyohiro  |  返信
  183. >> MSY-07 さん

    > MarkdownPreviewフォルダ内に入っているCHANGELOG.txtについてですが、Ver 1.0.5の日付に余分な0が入っていますね。

    ご報告ありがとうございます。おっと、これはお恥ずかしい…。修正しておきますね。

    > ここまでご対応いただきありがとうございました。
    > 何か新しい情報が見つかったら報告しますね。

    こちらこそ、お力添えいただき、ありがとうございました。これからもよろしくお願いします。

    >> kiyohiro さん

    Markdown プレビュー プラグインを試していただき、ありがとうございます。

    Markdown 記法では、行末のバックスラッシュ (円マーク) は「改行」を意味します。

    Markdown プレビュー プラグインでは、Markdown の補助機能として、[改行に対して <br> を作成する] オプションがデフォルトでオンになっているので、普通に改行を入力すれば、自動的に改行してくれますが、通常、Markdown 記法では、そうなりません。

    [改行に対して <br> を作成する] オプションをオフにすると、通常の Markdown 記法となります。

    aaa
    bbb
    ccc

    Markdown で上記のようなテキストを入力すると、

    aaa bbb ccc

    と表示されます。

    Markdown で改行を入力するためには、行末にスペースを 2 つ書くか、バックスラッシュ (\) を書きます。

    aaa\
    bbb\
    ccc

    そのため、行末のバックスラッシュ (\) は、実際には描画されず、改行として扱われます。

    行末のバックスラッシュ (\) を文字として表示したい場合は、バックスラッシュをさらにもう一度挿入します。

    aaa\\
    bbb\\
    ccc
     |  Kuro  |  返信
  184. すいませんこちらでもググってたらエスケープ文字を見つけました
    最初見た初心者向けのマークダウン記法サイトには乗ってなかったので
    気づきませんでした
    エスケープ文字で知ってたのは&だけで
    Meryのポップアップメニューの設定
    でマクロ&コマンドみたいなサブメニューを作るとき&が表示されず
    &&で表示出来るみたいなやつですかね
    自分ではまだマークダウンは使ってなく
    仕事先からもらう分だけですので
    仕事先に相談してみます

     |  kiyohiro  |  返信
  185. > ちなみに上記投稿のMSY-07さんの件
    > こちらの環境でも再現しなかったです
    > よくわかってませんが
    > 問題がウインドウがアクティブにならないなら
    > 使ってるランチャーで最近同じような投稿があったので一応

    kiyohiroさん、ありがとうございます。

    投稿しているURLのページに記載されている下記URLの方法を試してみました。
    レジストリエディタのForegroundLockTimeoutの値のデータを0に変更してテストしましたが、同じ現象が発生しました。
    https://lanternj.hatenablog.com/entry/2019/03/03/090309

     |  MSY-07  |  返信
  186. こんばんは。寒くなってきましたね🥶

    Markdown プレビュー プラグインの CHANGELOG.txt に誤字があった件、修正しておきました。

    それと、前回のテストで使用していた遅延実行処理を通常のものに戻したので、改めてリリースしておきます。以前のリンクは削除しました。

    おまけで、Markdown バー プラグインの最新版も添付しておきますね😊

    Markdown プレビュー プラグイン Ver 1.0.5 (64 ビット版) [2,675,041 バイト 2023/11/27]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.5.zip
    ウイルスチェック: https://www.virustotal.com/#/file/7d7eb2efc2666146c5947b7e185c2fb07b545bbceb40b87051c6207c7aaa30b0

    Markdown バー プラグイン Ver 1.0.2 (64 ビット版) [1,055,840 バイト 2023/11/27]
    https://www.haijin-boys.com/download/MarkdownBar-x64-1.0.2.zip
    ウイルスチェック: https://www.virustotal.com/#/file/25ceaf712c171680cd84573f020e92a38a96f940150ef4dd02c8c4cb7d642389

     |  Kuro  |  返信
  187. おっ、Markdownプレビューのアップデートが来ましたか😊 こっそり頂いていきますー。

     |  yuko  |  返信
  188. わーい!ありがとうございます😁 Mermaid 対応したので遊んでみてくださいませ。

     |  Kuro  |  返信
  189. Kuroさん

    なんと!ちょうどいいことに最近、業務フローをMermaidで書いたり共有したりすることが増えてきていて、Mermaid公式のLive Editorを使ってせっせと書いていたりしたところなのでした。
    Mery内で文章からちょっとした図まで完結するの、快適すぎます…!!

    HTML出力に埋め込まれるだけでなく、図の部分を右クリックするとPNG/SVGで保存できるのも大変いいですね~。

    ── 余談ですが、「HTML形式で保存」などのメニューの並びに「PNG形式で保存」というのがあったので、一瞬、Markdown文書全体をPNG保存する機能かと勘違いしました。(私だけかもですが…😅) 「図をPNG形式で保存」「図をSVG形式で保存」というように一単語添えてもいいかもしれません。

    ちなみにコレ、Mermaidの図をファイル保存ではなくてクリップボードに直接コピーする機能とかは難しいでしょうか?
    そうすると、サッとコピってTeamsのようなリッチテキスト対応のチャットだったり、パワポやExcelなんかにペタリと即座に貼り付けられたりしていいかも、と妄想しました。

     |  yuko  |  返信
  190. おぉー、それはタイムリーです!Mermaid を使ってる人は周りにいないもので、動作検証にご協力いただけて助かります😁

    > 「図をPNG形式で保存」「図をSVG形式で保存」というように一単語添えてもいいかもしれません。

    そう言われてみるとそうですね、検討してみます。

    > ちなみにコレ、Mermaidの図をファイル保存ではなくてクリップボードに直接コピーする機能とかは難しいでしょうか?

    そうですねぇ。画像のデータ自体は取得できているので、Excel なんかのクリップボード形式さえ分かれば何とかなりそうですが、そのあたりはまったく知識がないもので😅

    Teams に関しては、正直使ったことがなくて…。テレビ会議のソフトだったりするんですよね?一人でも使えたりするものなのかしら。

    ちょっとハードルは高そうですが、気が向いたら研究してみようかなと思います。

     |  Kuro  |  返信
  191. > Teams に関しては、正直使ったことがなくて…。テレビ会議のソフトだったりするんですよね?一人でも使えたりするものなのかしら。

    たしか、無料版もあったはずですね。
    でもクライアントソフトがWebView (ちょっと前まではElectron) で動いているということなので、Teams自体はWebアプリなんだと思いますね。Chromeなどからもログインして使うことができますし。

    > そうですねぇ。画像のデータ自体は取得できているので、Excel なんかのクリップボード形式さえ分かれば何とかなりそうですが、そのあたりはまったく知識がないもので😅

    例えば Win+Shift+S でクリップボードにコピーして X (旧Twitter) のポスト画面で Ctrl+V をすると画像が貼り付くように、Teamsでもチャットの入力ボックスで Ctrl+V するとクリップボード上のビットマップを貼り付けられる実装になっているようです。(実は imgur のアップロード画面でもこの手法は使えるのでちょっと便利だったりします)

    あるいは
    Mermaid Live Editor https://mermaid-js.github.io/mermaid-live-editor/
    で [COPY IMAGE TO CLIPBOARD] ボタンでコピーしたものであっても、上記と同じ動きになるようです。

    画像も扱えるクリップボード履歴アプリ CLCL (https://forest.watch.impress.co.jp/library/software/clcl/) でこれらのクリップボード要素を眺めたところ、いずれも「PNG」「BITMAP」「DIB」というクリップボード形式 (?) が設定されるようです。
    https://imgur.com/a/ukK9rdc
    ※おまけに、使っているスクショソフトの ScreenPresso でクリップボードにコピーされた際のクリップボード形式の状態も載せておきました

    上記のクリップボード形式であれば、X (ブラウザ), Teams, Excel, Word, PowerPoint, Discord で Ctrl+V で画像が貼り付くことを確認しました。

    このあたりは全く門外漢なものであまりお役に立てなさそうですが、何かのご参考になれば。

     |  yuko  |  返信
  192. 情報ありがとうございます。

    Teams の家族向け (無料版?) を見つけたので、試しにインストールしてみました。

    なるほど、ぼっちなので送信テストはできませんが、チャット欄に図を貼り付けるところまでは検証できそうですね😅

    > Mermaid Live Editor

    クリップボードへのコピー機能があったのですね。ブラウザーだからかもしれませんが。

    Edge や Chrome だと画像を右クリックして [画像をコピー] ができますが、WebView2 ではその機能は提供されておらず、自前で実装しないといけないようです。

    > いずれも「PNG」「BITMAP」「DIB」というクリップボード形式 (?) が設定されるようです。

    なるほど。Excel の図 (拡張メタファイル形式?) だと、SVG → EMF への変換が必要になりそうで、Delphi は SVG を読み込めないため難しいところですが、PNG や BITMAP なら大丈夫そうです。

    ただし、PNG や BITMAP は画像のサイズが固定なので、コピー時のサイズについてはちょっと妥協が必要かもしれません。

    Mermaid Live Editor のようにコピーや保存時のサイズを指定できる機能を実装するとなると、印刷ダイアログのような感じの設定画面が必要になってくるので、ヤダナー、コワイナーといった印象です😱

    現状、[PNG 形式で保存] は表示されている図のサイズ x 2 で出力されますが、コピーもそんな感じの自動サイズで良ければ、なんとかなるかもしれません。

     |  Kuro  |  返信
  193. > 現状、[PNG 形式で保存] は表示されている図のサイズ x 2 で出力されますが、コピーもそんな感じの自動サイズで良ければ、なんとかなるかもしれません。

    おおっ、それでも十二分だと思います。クリップボードコピーですと、ファイル保存せず(再利用の考慮せず)に使うようなインスタントな用途がほとんどでしょうし、現状のPNG保存機能と同じサイズであればまったく問題ないと思います👌

     |  yuko  |  返信
  194. Mermaid on Mery、相変わらず便利に使っています。
    https://x.com/fishing_kiyogon/status/1732192338913751125?s=20 のような、ChatGPTでサクッと書く方法なんかも知ったりして、ますます便利だなぁ~と思いながら使わせていただいています。

    ところで、Mermaidを使っていて、ちょっと気になる動作がありました。

    Mermaid記法を使うには、以下のような内容で記載します。
    
    ```
    sequenceDiagram
        依頼者->>作業管理者: 依頼メール
        作業管理者->>作業者: 作業内容をチケットに適用
        作業者->>作業者: 作業実施 & ダブルチェック
        作業者->>依頼者: 完了メール
    ```
    
    プレビューで表示するには、以下のような言語識別子をコードブロックに付与します。
    
    ```
    ```mermaid
    ```
    
    言語識別子を付与することで、プレビューでは図となって表示されます。
    
    ```mermaid
    sequenceDiagram
        依頼者->>作業管理者: 依頼メール
        作業管理者->>作業者: 作業内容をチケットに適用
        作業者->>作業者: 作業実施 & ダブルチェック
        作業者->>依頼者: 完了メール
    ```

    以上のような文面をプレビューしたときに、1つ目のコードブロックも図としてプレビューされてしまいます。(おそらくコードブロック内1行目で自動判定がされるような処理が組まれているのだとは思うのですが)

    GitHub上でのプレビューや、VSCode (のMermaidプラグイン) のプレビューでは、

    ```mermaid
    ~
    ```

    方式で言語識別子を書かないと図のプレビューは発動しません。
    キャプチャ: https://imgur.com/a/HHPE64b

    個人的には、GitHub、VSCodeと同じように言語識別子を指定したときだけ図のプレビューになる方が、Meryで下書きを書いたときと同じ表示結果を得られるようになるので、好みだったりします。

     |  yuko  |  返信
  195. Mermaid、早速、お役に立てて嬉しいです。

    > ChatGPTでサクッと書く方法

    おおっ、そんな方法が!私も Excel + ChatGPT を試してみました。これ、めちゃくちゃ便利ですね。

    > おそらくコードブロック内1行目で自動判定がされるような処理が組まれているのだとは思うのですが

    そのようですね。Mery では markdown-it-mermaid というプラグインを利用していますが、ソースを確認したところ、1 行目の内容で "gantt" や "sequenceDiagram"、または、"/^graph (?:TB|BT|RL|LR|TD);?$/" で Mermaid かどうかを自動的に判別するようになっていました。

    > 個人的には、GitHub、VSCodeと同じように言語識別子を指定したときだけ図のプレビューになる方が、Meryで下書きを書いたときと同じ表示結果を得られるようになるので、好みだったりします。

    そうですね、確かに Mery はサブのエディターとして、下書きなどによく使われるので、GitHub や VSCode に合わせたほうが良いかもしれませんね。

    markdown-it-mermaid には自動判別をオフにする機能はなさそうですが、ソースを見る限り、修正できそうなので検討してみますね。

     |  Kuro  |  返信
  196. >> Kuro さん
    スマホに変えてまだ1年程度でスマホ用のテキストエディターを探していますが、もしかしてですが、Android 用のテキストエディターを作っていたりはしないですよね? ^^;

    スマホ用のテキストエディターを検索すると大量に出てきて選び放題ではありますが、逆にありすぎてどれが良いのか悩みどころです。
    スマホアプリについては余りよくわかっていませんが Jota+ とか QuickEdit とかを割りと目にするような気がしますが、そのあたりが定番なのかな?
    今のところは、.txt ファイルを見るのと、簡単なメモをするくらいですので、どれを使っても大差なさそうな気がしますが。

     |  774  |  返信
  197. こんばんは。スマホ デビュー、おめでとうございます!

    Android 版のエディター開発には興味はあるのですが、まだ手を出せていません。ちなみに、私は今でもガラケー使いなんです。

    > スマホアプリについては余りよくわかっていませんが Jota+ とか QuickEdit とかを割りと目にするような気がしますが、そのあたりが定番なのかな?

    そうそう、Jota+ は無料版もあるので気軽に試せますよね。

    私はタブレットを持っているのですが、そっちでは QuickEdit を愛用しています。

    確か、有料だったと思いますが、シンプルで使いやすく、思った以上に機能が豊富で課金しちゃいました。

    > 今のところは、.txt ファイルを見るのと、簡単なメモをするくらいですので、どれを使っても大差なさそうな気がしますが。

    私も .txt ファイルをチラ見するくらいの使い方で、あとは、ベッドで Mery のソースコードを読んでいるくらいです。

    QuickEdit でソースコードを書いたりはしていません。だから、すごくオススメとまでは言えませんけどね ^^;

     |  Kuro  |  返信
  198. お、偶然にも私も QuickEdit 使いです。
    Jota+ もスマホ使い始めの頃は使っていたのですが、最近は QuickEdit を使っています。
    Jota+ は日本人作者なだけあり、全角スペースでの自動インデントにも対応していた覚えがあります。一方、QuickEdit の方がシンタックスハイライトは色んな言語で効いたり、UIが個人的には使いやすいと感じます。そのあたりの仕様でどちらかを選んでみてもいいかもしれませんね。

     |  yuko  |  返信
  199. >> Kuro さん、yuko さん
    参考情報、ありがとうございます。
    とりあえず QuickEdit を試してみたいと思います。

    今は、広告が表示されないという理由だけで Simple Text Editor を使っていますが、置換ができないんですよね。
    と言っても、スマホでそこまでの作業をするわけではないので、置換がなくても不便ではなかったですが。

    >> Kuro さん
    > Android 版のエディター開発には興味はあるのですが、まだ手を出せていません。
    興味はあるのですね。
    でも、Mery の対応だけでも大変そうですから、現実的には厳しいでしょうね。

     |  774  |  返信
  200. 検索バーを重宝しています。

    たいしたことではないですが、ちょっと気になったので一応ご報告しておきます。
    動作に問題があるわけではないので、以前の変更に影響するようでしたら現状のままでも構いません。

    検索バーの文字列入力欄に一度検索した(=検索履歴に存在する)文字列が入力されていると、ファイルを新たに開いたり読み直したりしたときに、文字列入力欄の文字列が選択状態になります。
    フォーカスはエディタ側にあります。

    1. 検索バーの文字列入力欄に「あい」と入力
    2. 任意のファイルを開く
    → 文字列入力欄の「あい」は非選択状態(正常な動作)
    3. 検索バーの [次を検索] をクリック
    4. 任意のファイルを開く
    → 文字列入力欄の「あい」が選択状態になる

    また、続けて、
    5. 検索バーの文字列入力欄に「い」と入力
    6. 任意のファイルを開く
    → 文字列入力欄の「い」は非選択状態(正常な動作)
    7. 検索バーの文字列入力欄に「あ」と入力
    8. 任意のファイルを開く
    → 文字列入力欄が「あい」となり選択状態になる

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

    お知らせいただいた条件で現象を再現できました。

    具体的な発生条件としては、[編集モード] が切り替わったときに検索ボックスが選択状態になるようです。

    調べてみましたところ、プラグイン側ではそのタイミングで検索ボックスのフォントを更新しているのですが、Windows 標準のコンボ ボックスはフォントやサイズを変更すると、自動的に選択状態になったり、別の項目が選択されたりする仕様 (バグ?) のようで、その影響を受けているようです。

    秀〇エディタさんや E〇Editor さんでも、検索ダイアログに「あい」と入力して検索し、その後、「あ」と入力した状態で検索ダイアログのサイズをマウスでぐいっと変更すると、自動的に「あい」が選択された状態になりました。

    なお、Mery の検索ダイアログでは、この問題は既に対策されています。

    検索バーについても、同様の方法である程度対策できそうですが、プラグインの制限上、特定の条件下では対策が効かない場面もあります。(たとえば、Per-Monitor DPI 環境でモニター間を移動した場合など)

    Windows の仕様によるものであり、完璧な対策が難しいため、できるだけ発生しないよう心がけるといった対策しかできませんが、次のバージョンではこれに対応できるよう検討してみたいと思います。

     |  Kuro  |  返信
  202. ご返信、ありがとうございます。
    Windows の仕様によるものということでしたら、個人的には現状のままでも良いかなと思います。

     |  774  |  返信
  203. Kuroさん

    あっという間に今年も春。新人教育のため、最近は張り切ってMermaidで業務フロー図なんかを書く日々です。Markdownプレビュープラグイン、火を吹くほど活躍していますw

    地味に、書き出しの1行目の図の種別を示す文字列が思い出せないことが多いので、辞書ファイルを頑張って作ってみても面白いかもしれないな〜と想像しているところです。

    そういえばと、クリップボードコピーとコードブロックで自動判別されるのを解除する件でアップデートがこっそり公開されていないかと思って来てみたのですが、まだでしたね。
    楽しみに、そして気長にお待ちしています😊

     |  yuko  |  返信
  204. 春ですね~。暖かくなってきたと思ったら、急に寒くなったりして、体調がすっかり崩れてしまいました🤒

    辞書ファイル、便利ですね。あの文字列は覚えられそうにありませんw

    スニペット プラグインで図のテンプレートを登録しておくのもいいかもしれませんね。

    とはいえ、個人的には Mermaid を使う機会はあまりないので、お役に立てていると言っていただけると嬉しいです。

    > そういえばと、クリップボードコピーとコードブロックで自動判別されるのを解除する件でアップデートがこっそり公開されていないかと思って来てみたのですが、まだでしたね。

    そうなんですよね。実装はできて、昨年末にリリースしようと思っていたのですが、忙しくてタイミングを逃してしまいました。

    markdown-it や Mermaid の新しいバージョンにも対応していたのですが、次から次へと新しいバージョンがリリースされて追いつけなくなり、心が折れてしまっています😭

     |  Kuro  |  返信
  205. そういえば、思い出しました。

    Markdown プレビュー プラグインを更新するため、highlight.js をダウンロードしようとしたら、サイトがリニューアルされていて、ダウンロード ボタンが動作しなかったので、直るまで待とうと思っていたのでした。

    でも、今見てみたら、ダウンロードできるようになっていたので、この土日にでも、のんびりと最新版への対応をやってみようかなと思います🫠

     |  Kuro  |  返信
  206. > でも、今見てみたら、ダウンロードできるようになっていたので、この土日にでも、のんびりと最新版への対応をやってみようかなと思います🫠

    おおっ!ありがとうございます!
    最近、Microsoft LoopなるOffice 365製品も仕事で使い始めたのですが、これまたMarkdownに対応しておりまして、Meryで下書きからのコピペが捗る捗る……
    楽しみです🥰

     |  yuko  |  返信
  207. こんばんは~。

    Microsoft Loop は使ったことがなかったのですが、早速試してみました。

    ほんとすごい!Mery から Markdown をコピペするだけで行けちゃうんですね。

    さすがに Mermaid には対応していないようですが、Markdown プレビュー プラグインの新機能、[図をコピー] を使えば、いい感じに貼り付けられそうです。

    チームひとりなので、寂しいですが😂

    そういうわけで、Markdown プレビュー プラグインを更新してみました。

    右クリック メニューを大幅に変更し、各種ライブラリも最新版に対応したので、バグが出るかもしれませんが、ご了承ください。

    また、MSY-07 さんからご報告いただいた、リンクをクリックすると Mery が前面に来る現象 ( https://www.haijin-boys.com/discussions/6398#discussion-7656 ) について、その後、再現はできなかったのですが、気になるところがあったので対策をしてみました。

    ---
    Markdown プレビュー プラグイン Ver 1.0.6 (64 ビット版) [2,778,370 バイト 2024/04/06]
    https://www.haijin-boys.com/download/MarkdownPreview-x64-1.0.6.zip
    ウイルスチェック: https://www.virustotal.com/#/file/b6dd8984a02406976f52bfa174cc770ecce2821d949e81fc95c9702eb675f80b

    現在、ベータ版につき動作検証にご協力いただけるかたは無料でお試しいただけますが、再配布は禁止とさせていただきます。

    ご質問、ご意見、ご要望は雑談の範囲内でということで、それ以上はサポート外とさせていただきます。
    ---

    しかし、Mermaid のリリース頻度がやばいですね。今回、Ver 10.9.0 に対応したのですが、時期的に、もう次のバージョンが来そうな予感😱

     |  Kuro  |  返信
  208. > さすがに Mermaid には対応していないようですが、Markdown プレビュー プラグインの新機能、[図をコピー] を使えば、いい感じに貼り付けられそうです。

    むむっ、たしかに。
    コードブロックは使えるので、Mermaidソースを載せつつ図はプレビューからコピーして貼り付けでもたしかにいいかも!

    > チームひとりなので、寂しいですが😂

    こればかりは、仕方ありませんねw
    Loop、チームで使っていると、複数人での同時編集箇所がちゃんとカーソルで出てきたり、編集結果の反映がおよそ1,2秒程度で反映されたりと、「なかなかやるじゃん、Microsoft」ってなっています。

    > そういうわけで、Markdown プレビュー プラグインを更新してみました。

    ありがとうございます🙌

    Mermaid図も個人的な用途ではフローチャート図ばかりなもので、バージョンアップされたからといってどこから使えばいいやらという感じではあるのですが (四象限フォーマットとかならいつかは使うときが来る…かも…?)、この機会にいろんな記法を見てみようかとサンプルをペタペタと貼り付けているところです。

    それで、比較的新しそうなフォーマットの中に Sunkey (https://mermaid.js.org/syntax/sankey.html) というのがありまして、これをプレビュープラグインで見てみると https://imgur.com/a/3EW7CUC のように、背景と同化してしまうようです。ライトテーマだと問題ないんですけどね🤔

     |  yuko  |  返信
  209. ところで、Mermaidで生成された図への [名前を付けて図を保存] [図をコピー] 機能に関して、背景色付きでコピーするオプションを用意するのって難しいでしょうか…?

    普段、Mery & Markdownプレビューはダークモードで使っているのでMermaidもやはり dark テーマで使っているわけですが、それだと矢印線などのオブジェクトが白に近いグレーだったりと背景が暗色想定な色合いなので、それをコピーして白地のWordなんかに貼り付けると背景に同化してしまうんですよね。

    もちろん、貼り付け先で背景色をあらかじめ暗く塗ったところに貼りつけたり、Mermaidのテーマを変えてからコピーするなどの回避策はいかようにでもあるので不満というほどではないのですが、「インスタントにコピー&ペーストでフローチャート図を展開!」みたいなバババッっと流れるような使い方をしようとしたときに若干のブレーキ感があるので、背景色付きで図の保存 (コピー) オプションがあると体験的に良さそうだな~と妄想しました。

     |  yuko  |  返信
  210. 早速お試しいただきありがとうございます。

    > Mermaid図も個人的な用途ではフローチャート図ばかりなもので、バージョンアップされたからといってどこから使えばいいやらという感じではあるのですが

    そうなんですよね。Ver 10.9.0 で追加された Katex はスゴイと思いましたが、実際に使うかは微妙ですし😅

    > Sankey

    私の環境では、サンプル サイト ( https://mermaid.js.org/syntax/sankey.html ) を普通に Chrome で表示しても、いただいたスクリーンショットと同じで、背景と同化してしまうようです。

    Mermaid のテーマの問題かもしれないですね。

    > ところで、Mermaidで生成された図への [名前を付けて図を保存] [図をコピー] 機能に関して、背景色付きでコピーするオプションを用意するのって難しいでしょうか…?

    今回の図のコピー機能の開発により、Mermaid の図に Mery 側からアクセスできるようになったので、技術的には可能だと思います。

    Mermaid Live Editor でコピーすると、普通に背景色が付いているようですね。

    標準で背景色付きコピーで良いのかなー。透過 PNG も加工しやすいので捨てがたいですが…。

    メニューに [背景色付きコピー] を追加するのはちょっと冗長になりそうですしね😅

    > それをコピーして白地のWordなんかに貼り付けると背景に同化してしまうんですよね。

    私もダーク テーマを使っているので、同じように感じました。

    おそらく、Mermaid の開発者も分かってるのだと思いますが、ライトでもダークでも見える neutral というテーマが用意されているので、それを使えばいいのかなーと…。

    …って、ダーク テーマと neutral を組み合わせると、Sankey はまったく見えなくなってしまいますね。だめだこりゃ😱

     |  Kuro  |  返信
  211. > 私の環境では、サンプル サイト ( https://mermaid.js.org/syntax/sankey.html ) を普通に Chrome で表示しても、いただいたスクリーンショットと同じで、背景と同化してしまうようです。
    > Mermaid のテーマの問題かもしれないですね。

    おや、これは失礼しました。

    私は最近はデフォルトブラウザがFirefoxな人なんですが、Firefoxだと色がイイ感じになるようでした。
    https://imgur.com/a/h4EgdKn
    (左: Firefox、右: Chrome)

    MarkdownプレビューもWebView2を用いているとのことで、Chromium系由来のCSSだかSVGだかの処理の違いによるものなんでしょうかね…🤔

    > 標準で背景色付きコピーで良いのかなー。透過 PNG も加工しやすいので捨てがたいですが…。

    そうなんですよねー、分かります。

    ちなみにどうやらMermaid Live Editorでは議論の末、昨年10月頃に背景色付きでコピー・保存されるようになったようです。
    https://github.com/mermaid-js/mermaid-live-editor/issues/1181

    最近のチャットアプリやノートアプリはライトテーマ・ダークテーマに両対応ってのが割と一般的になってきましたし、背景色が付いていた方が各々の環境に囚われることもなく扱いやすいよね、みたいな話かもしれませんね。

    > メニューに [背景色付きコピー] を追加するのはちょっと冗長になりそうですしね😅

    そうですね、なかなか見せ方が難しいですね。

    たしかに言われてみれば、オプション画面でON/OFFするよりは、コンテキストメニューの方が選べてインスタントに使い分けができて良さそうではあるんですよね。

    もしコンテキストメニュー追加案であれば個人的には、背景色があった方が便利な場面 9 に対し、無い方が便利な場面 1 な感覚なので、

    ・標準の保存・コピーのメニューの処理は背景色付きにする
    ・背景色無しの処理の場合は「背景色無しでコピー」のような付属情報付きな表記のメニューにする

    の見え方の方が、直感的かなぁと感じます。

    あるいは、前述のMermaid Live Editorの更新も鑑みて、背景色無しの方が利用する場面が少ないだろうと割り切ってしまい、
    =====
    [1段目] 背景色無しで図を保存・コピー
      → [2段目] 名前を付けて図を保存
      → [2段目] 図をコピー
    =====
    という感じの多段メニューとして、現在の [図をコピー] メニューの下に追加する形で1項目に押し込んでしまってもよいかもしれません。

    > おそらく、Mermaid の開発者も分かってるのだと思いますが、ライトでもダークでも見える neutral というテーマが用意されているので、それを使えばいいのかなーと…。

    https://mermaid.js.org/config/theming.html を見てみたところ、neutralというのは白黒印刷向けを意識しているようですね。なかなか芸が細かい。

    > …って、ダーク テーマと neutral を組み合わせると、Sankey はまったく見えなくなってしまいますね。だめだこりゃ😱

    なんとなく、ダーク系テーマは "dark" で、ライト系テーマなら "dark" 以外どれでも使ってね的な意識は感じますよね~

     |  yuko  |  返信
  212. Kuroさん、Markdown プレビュー プラグインの更新お疲れさまでした。

    Markdown プレビュー プラグイン Ver 1.0.6 (64 ビット版)を試したところ、リンクをクリックするとMeryが前面に来る現象が発生しなくなり、快適になりました。
    修正ありがとうございました。

     |  MSY-07  |  返信
  213. >> MSY-07 さん

    早速お試しいただき、ありがとうございます。

    修正した部分は、まさかなぁ…、といった感じの微妙なところで、正直言って自信がありませんでしたが、改善されたとのことで安心しました!

    >> yuko さん

    なるほど、これはブラウザ依存のようですね。Mermaid のことですから、その辺りは早めに修正されそうな気もしますね。

    > ちなみにどうやらMermaid Live Editorでは議論の末、昨年10月頃に背景色付きでコピー・保存されるようになったようです。

    情報ありがとうございます。背景色の取得方法とか、とても参考になりそうです。

    > 最近のチャットアプリやノートアプリはライトテーマ・ダークテーマに両対応ってのが割と一般的になってきましたし、背景色が付いていた方が各々の環境に囚われることもなく扱いやすいよね、みたいな話かもしれませんね。

    確かに、そういわれてみるとそうですね。

    特に、チャットとかスピード感のあるシーンでは、送信先の相手のテーマ (ダーク/ライト) の違いで画像が見えづらくなってしまうよりも、背景色付きで、テーマが違っていてもちゃんと見える画像のほうが良さそうですね。

    > あるいは、前述のMermaid Live Editorの更新も鑑みて、背景色無しの方が利用する場面が少ないだろうと割り切ってしまい、

    そうですね、私も割り切る方向に同意です。

    透過画像は加工しやすいというメリットはありますが、透過画像に気づかずコピペで送信してしまい、相手から「見えねー」と怒られるデメリットのほうが大きいような気がしてきました。

    > ・標準の保存・コピーのメニューの処理は背景色付きにする
    > ・背景色無しの処理の場合は「背景色無しでコピー」のような付属情報付き

    アリですね。

    > =====
    > [1段目] 背景色無しで図を保存・コピー
    >   → [2段目] 名前を付けて図を保存
    >   → [2段目] 図をコピー
    > =====
    > という感じの多段メニューとして、現在の [図をコピー] メニューの下に追加する形で1項目に押し込んでしまってもよいかもしれません。

    そうですね。ただ、なんか、もう、背景なしのコピーってメニューにいらなくね?と思い始めました😅

    標準で、保存・コピーのメニューは背景色付きにして、背景なしに関するメニューは用意せず、[名前を付けて保存] を選択したときに、保存ダイアログの [ファイルの種類] の中に、

    ---
    PNG ファイル (*.png)
    PNG ファイル, 背景なし (*.png) ← これを追加
    SVG ファイル (*.svg)
    すべてのファイル (*.*)
    ---

    という感じで、背景なしで保存できる選択肢を用意するぐらいで良いんじゃないかなと思いましたが、いかがでしょうか。

     |  Kuro  |  返信
  214. > ---
    > PNG ファイル (*.png)
    > PNG ファイル, 背景なし (*.png) ← これを追加
    > SVG ファイル (*.svg)
    > すべてのファイル (*.*)
    > ---
    >
    > という感じで、背景なしで保存できる選択肢を用意するぐらいで良いんじゃないかなと思いましたが、いかがでしょうか。

    おお、いいですねそれ。賛成です。

     |  yuko  |  返信
  215. > おお、いいですねそれ。賛成です。

    ありがとうございます。では、その方向で開発を進めてみます👍

    それから、メリーと遊ぼうスレッドが 200 件を超えたので、Markdown プラグインに関する話題とその配布については新しいスレッドを立てました。

    【雑談】Markdown プラグインで遊ぼう
    https://www.haijin-boys.com/discussions/7873

    次のバージョンはそちらに投稿しますので、よろしくお願いします。

    また、メリーと遊ぼうスレッドは引き続き、雑談をお楽しみくださいませ。

     |  Kuro  |  返信
  216. 大変遅ればせながら、マイカテーマ、試してみました😊
    https://imgur.com/a/p9ZYfpu

    ふむふむ、ウィンドウ背後を透過した色が出るのかなと思ったら、どうやら壁紙の色味の透過?のようですね。
    デスクトップの色味と合わせたカラーテーマを選ぶと、なかなか雰囲気ある見た目になっていい感じですね~。

     |  yuko  |  返信
  217. こんばんはー。

    まいったなぁ、マイカ!個人的には好きなのに、完全に滑っちゃいましたね…😅

    Windows の新機能についていくと、いつもこうなんですよ。懲りてたはずなのに、ついつい実装しちゃうんですよね、テヘペロ。

    > 大変遅ればせながら、マイカテーマ、試してみました😊
    > https://imgur.com/a/p9ZYfpu

    テンションあがります!

    > 壁紙の色味の透過?のようですね。

    そうみたいですね。透過はグラボのパワーを使うので、ノート PC のバッテリーの無駄使いと不評だったみたいで、新技術らしく、透過のように見えるけど実際は透過じゃないんですって。

    MS の話によると、グラボにもバッテリーにも負荷はないそうです。

    …でも、Google によると、負荷がかかるから、Chrome で実装しようと思ったけどやめたって言ってますね😆

    > デスクトップの色味と合わせたカラーテーマを選ぶと、なかなか雰囲気ある見た目になっていい感じですね~。

    ですです。エディター部分以外の無駄な部分がデスクトップの壁紙の色になると、結構、集中できる感じがします。

    ウィンドウがアクティブになったときに、ふわっと集中できる感じ。

    でも、Windows 12 になると廃止されるかもしれませんねw

     |  Kuro  |  返信
  218. 雑談ネタを見つけたので、もはや埋没していたこちらのスレに投稿!

    最近、AI検索の Perplexity を気に入ってよく使っているのですが、どうやらGoogle検索のように https://www.perplexity.ai/?q=%s という形式のGETリクエストで検索することもできるようだということを知り、ちょっと遊んでみました。

    Meryマクロ:

    #title = "Perplexity で検索"
    
    var wshell = new ActiveXObject("WScript.Shell");
    var perplexity_url = "https://www.perplexity.ai/?q="
    var sel = document.selection;
    
    main();
    
    function main() {
        if (sel.IsEmpty) {
            alert("テキストを選択してください");
            return;
        }
    
        var url = perplexity_url + encodeURIComponent(sel.Text);
        wshell.Run(url);
    }
    

    このマクロを、 [ポップアップ メニューの設定] から設定して…

    キャプチャ:
    https://imgur.com/a/oGpnKy2

    単純な仕組みながら、意外と便利かも…!?

     |  yuko  |  返信
  219. おお、これはめちゃくちゃ便利ですね!🫢

    普段は ChatGPT を使っているのですが、先日サービスがダウンして、かなり焦りました…。Perplexity にちょっと浮気しようかなと思ってます。

    右クリック メニューからサクッと AI 検索できるの、すごくいいですね。

    ただ、毎回新しいブラウザが開くのは仕方ないですが、なんとかして同じブラウザーで開いて、Mery で選択したテキストをそのまま Perplexity の入力欄に送れないかなぁと思ったりして…。

    …さすがに「課金して Perplexity API を使いなさい」って怒られそうですけどね🤣

     |  Kuro  |  返信
  220. > …さすがに「課金して Perplexity API を使いなさい」って怒られそうですけどね🤣

    APIも(有料ながら)提供されている以上、そちらを使ってMery内で入出力を完結させるのは、やはりロマンですね…!

    もしくは、Google Geminiなら、個人で使う分には十分なレートリミットで無料でAPIが使えるみたいなのでMery内だけでの連携も垣間見えました。Googleさんなので慣れた頃に梯子外しがありそうなものの、しばらくは使えそう…🤔

     |  yuko  |  返信
  221. > もしくは、Google Geminiなら、個人で使う分には十分なレートリミットで無料でAPIが使えるみたいなのでMery内だけでの連携も垣間見えました。Googleさんなので慣れた頃に梯子外しがありそうなものの、しばらくは使えそう…🤔

    期間限定と言いつつ1年近く無料なGeminiさん、APIがサクッと使える感じだったのでマクロを作ってみました。

    これでMeryがAIエディタに…!

    https://imgur.com/a/WUyo3Qb

    ソースコード:

    ※プロンプトは恐らく学習に使われるので、取り扱う情報にはご注意ください。

    #title = "Gemini に相談"
    BeginUndoGroup();
    
    var GOOGLE_API_KEY = "<取得したGemini APIキーを記載>"
    
    var ConsoleClass = function() {
        this.log = function(str) {
            outputBar.Writeln(str)
        }
    }
    var console = new ConsoleClass();
    
    var sel = document.selection;
    
    main();
    
    function main() {
        if (sel.IsEmpty) {
           alert("プロンプトとなる文字列を選択してから実行してください。");
           return;
        }
    
        var promptText = sel.Text;
        sel.CharRight();  // 選択範囲を解除
        // カーソル位置移動
        sel.EndOfLine(false, mePosLogical);
        sel.NewLine();
        var activeY = sel.GetActivePointY(mePosLogical);
    
        var ret = callGeminiAPI(promptText);
    
        sel.Text = "\n---\n\n" + ret + "\n\n---\n";
        sel.SetActivePoint(
            mePosLogical,
            1,
            activeY,
            false
        )
    }
    
    function callGeminiAPI(promptText) {
        try {
            var http = new ActiveXObject("Msxml2.ServerXMLHTTP");
            var url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=' + GOOGLE_API_KEY;
            
            http.open('POST', url, true);
            http.setRequestHeader('Content-Type', 'application/json');
            http.send('{ "contents":[{"parts":[{"text": "' + promptText + '"}]}]}');
            
            // 応答待機
            var timeout = 60;
            var retrySec = 0;
            var startX = sel.GetActivePointX(mePosLogical);
            while (http.readyState != 4) {
                if (retrySec > 60) {
                    break;
                }
                http.waitForResponse(1);
                retrySec += 1;
                sel.Text = ".";
            }
            // 進捗表示文字を削除
            sel.SetActivePoint(
                mePosLogical,
                startX,
                sel.GetActivePointY(mePosLogical),
                true
            );
            sel.Delete();
    
            var ret = "";
    
            // 応答ステータスチェック
            if (http.readyState == 4 && http.status == 200) {
                // JSONをパースして必要なテキストを抽出
                var response = JSON.parse(http.responseText);
                if (response.candidates && response.candidates.length > 0) {
                  response.candidates.forEach(function(candidate) {
                    if (candidate.content && candidate.content.parts) {
                      candidate.content.parts.forEach(function(part) {
                        if (part.text) {
                          ret += part.text;
                        }
                      });
                    }
                  });
                }
            } else {
                // 要求キャンセル
                http.abort();
                // タイムアウト
                return "タイムアウト";
            }
    
            // 整形しつつ返す
            return ret
                    .trim()
                    .replace(/。 +/g, "。");
        } catch (e) {
            return "エラーが発生しました: " + e.message;
        }
    }
    
    

    今のところ会話の文脈までは考慮しないのですが、 Gemini API を使用してテキストを生成する > インタラクティブなチャットを作成する を見るに、文脈もリクエストに含めることで手軽に実現できるみたいですね。

     |  yuko  |  返信
  222. 試行錯誤の末、会話を成立させることに成功…!🥳

    https://imgur.com/a/ngDsNxa

    折角なのでMery Wikiにも掲載しておきました。

    Google Gemini に相談 - MeryWiki

     |  yuko  |  返信
  223. つい先ほど、Gemini API キーを取得しまして、yuko さんがひとつ前に投稿されていた「Gemini に相談マクロ」を使って、Mery Ver 3.7.7 リリースのポストの誤字チェックに活用させていただいたところでした😊

    …が、MeryWiki のほうの新しいバージョンは本当にすごいですね!

    文字を入力するだけで、範囲選択などをせずにそのままシームレスに会話が始まるのが素晴らしいです。しかも、会話履歴がちゃんと反映されるなんて驚きです!

    これは一度体験したら、もうブラウザー版には戻れない気がします…😅

    > Googleさんなので慣れた頃に梯子外しがありそうなものの、しばらくは使えそう…🤔

    たしかに、その点は気になりますね。でも、無料期間中にこの神マクロで AI を存分に体験させていただきたいと思います!

     |  Kuro  |  返信
  224. Kuroさん

    早速活用できたということで、何よりです😊 しかし、ちょろっとAPIを叩くだけでこんな高性能AIが使えるとは、、、すごい時代です。

    ところで、Gemini APIを実行中に「...」というようにドットで動作状態を示す動きにしてみたのですが、この待っている間、どうやらMeryの操作ができてしまうようなのですよね😥
    入力処理のところを挟むように「Redraw = true;」と「Redraw = false;」を書いて試してみたものの、すると、ずっと描画が止まっているような状態になってしまい、どうにもうまくいかず… 何か上手い方法はないものでしょうか?
    どうしても5秒前後、APIのレスポンスを画面が動かず待っていると、フリーズしたような気がしてしまってソワソワとしてしまうので、動いている感が見せられるといいのですが…

     |  yuko  |  返信
  225. >> yuko さん

    > 早速活用できたということで、何よりです😊 しかし、ちょろっとAPIを叩くだけでこんな高性能AIが使えるとは、、、すごい時代です。

    ほんと、そうですね。ちなみに、プラグインならなんとかなるかなぁ…ぐらいに思っていたのですが、まさかマクロで実現できるとは思っていなかったので、驚きました🫢

    > ところで、Gemini APIを実行中に「…」というようにドットで動作状態を示す動きにしてみたのですが、この待っている間、どうやらMeryの操作ができてしまうようなのですよね😥

    確かに、そのような動作になっていますね。

    実は、Mery のマクロは基本的に同期処理しか対応していないんです。

    なので、マクロ内で非同期処理を行うのは想定外でした。Mery 自体はマクロが終わるまでフリーズするはずなのですが、なぜか操作ができてしまいますね。

    安全に実行するには、http.open('POST', url, false);のように、マクロ内で同期処理にするのが良いですが、レスポンスが返ってくるまでフリーズするので、それも困りものですね。

    その場合、エディター部分に「…」のような出力もできませんし。

    一応、v8 マクロ (#language = "v8") は非同期処理になっているので、マクロ実行中にキー入力を防ぎつつ、「…」のような出力が可能ですが…。

    というわけで、v8 マクロで試してみましたが、v8 マクロでは ActiveXObject が使えないので、fetchメソッドを使う必要があり、その場合、asyncawait を使って実装することになります。

    そして、そのためには、終了を待つ仕組みが必要になります。

    終了待ちの仕組みがないと、fetchメソッドが一瞬で終わってしまい、レスポンスが返ってくる前にマクロが終了してしまうという…😓

    なかなか難しそうなチャレンジですが、面白そうなので、Gemini API の無料期間中にできるだけ研究してみたいと思います。

     |  Kuro  |  返信
  226. > なので、マクロ内で非同期処理を行うのは想定外でした。Mery 自体はマクロが終わるまでフリーズするはずなのですが、なぜか操作ができてしまいますね。

    そうなんですね😲 と、いうことは、その穴を突いてしまったわけですね…w

    > 一応、v8 マクロ (`#language = "v8"`) は非同期処理になっているので、マクロ実行中にキー入力を防ぎつつ、「...」のような出力が可能ですが…。

    なるほどー、v8マクロ。それも1つの手ですね。

    v8マクロ、互換性が限られてしまうし、どうしようか…と悩んで試行錯誤してみたところ、応答待機中の間は書き込み禁止をON、その後OFF/ONを切り替えながら「...」を入力する術に思い至りました。それでも一瞬、カーソル移動くらいはできてしまうのですが、致命的な編集ミスは防げそうです。

    ワークアラウンドではありますが、ひとまずはこれで凌げそうです。(MeryWikiも更新しておきました)

    > なかなか難しそうなチャレンジですが、面白そうなので、Gemini API の無料期間中にできるだけ研究してみたいと思います。

    ありがとうございます!前述のとおり、とりあえずの回避はできたものの、やはり「画面上は動きつつ、ユーザー操作は塞ぐ」というのが理想ですしね。

    Web API実行や処理待ちが長めの外部実行ファイルを待っている間に進捗表示をするの、今回試してみて意外と使いどころあるかも?なんて思いました。

     |  yuko  |  返信
  227. こんばんは!その後、非同期処理の実装についていろいろ研究中です🫠

    > 応答待機中の間は書き込み禁止をON、その後OFF/ONを切り替えながら「…」を入力する術に思い至りました。

    なるほど、面白いアイデアですね😁

    ただ、非同期処理自体が想定外のところもあるので、操作をある程度防げても、マクロ実行中にタブを閉じられたりすると、ヌルポが発生したり、最悪の場合クラッシュする可能性も考えられます。

    > 前述のとおり、とりあえずの回避はできたものの、やはり「画面上は動きつつ、ユーザー操作は塞ぐ」というのが理想ですしね。

    そうなんですよね。たとえば、EmEditor さんにはマクロの非同期オプションとして#asyncという指令があって、非同期実行ができるんですよね。

    Mery でもその実装を試してみたのですが…、結論から言うと、あまりうまくいきませんでした😓

    マクロを非同期 (別スレッド) で動かすのはできたのですが、Msxml2.ServerXMLHTTP を使った場合、内部でさらに非同期 (別スレッド) で動くみたいなんです。

    その結果、Mery のメインスレッド → マクロ用スレッド → HTTP 用スレッドの 3 段重ねになって、かなり不安定になってしまいました。(Gemini から応答がなかったり、エラーが返ってきたり)

    ちなみに、EmEditor さんの非同期マクロ (#async) で Msxml2.ServerXMLHTTP を使った場合も同様に不安定でした。

    おそらく、Msxml2.ServerXMLHTTP は非同期処理であっても、スクリプト自体はメインスレッドで同期実行されることを前提としているのではないかと推測しています。

    というわけで、新たな方向性として考えた仕様案がこちらです:

    • 非同期処理は実装しない

      • ActiveScript (マクロ) は基本的に同期モデルです。スクリプト内で COM オブジェクトを使えば非同期処理は可能ですが、ActiveScript はメインスレッドから呼び出して同期処理にした方が良さそうです。
    • スクリプト内で非同期処理が行われた場合、Mery 側での安全性を確保

      • キーボード入力やマウスクリックを制限して、エディターの操作を制限します。
      • 非同期処理中にタブが閉じられると、document オブジェクトのヌルポが発生することがありますが、これを防ぐための対策も考えています。

    たとえば、スクリプト内で非同期で無限ループするような常駐マクロを作ることもできちゃいそうですが、ユーザーの操作を完全に制限することは難しく、メニュー操作などは受け付けてしまうので、その点は「自己責任」でお願いすることになるかと思います。

    ということで、ガッツリ非同期マクロを実装するのではなく、これまでどおり同期マクロを使い、マクロ内で非同期処理が行われる場合は、致命的な問題をなるべく回避できるように対策を組み込むというかたちに落ち着きそうです。

     |  Kuro  |  返信
  228. >> yuko さん

    こんばんは!Mery Ver 3.7.8 で、マクロの非同期処理にも一応対応してみました。

    「Gemini に相談」マクロで、書き換え禁止の ON/OFF をしなくてもエディターへのキー入力やマウス操作が制限されるようになりました。

    (ただし、メニュー操作は受け付けるので、やろうと思えば編集はできちゃうんですけどね…)

    とはいえ、マクロの下位互換性を考慮すると、書き換え禁止の ON/OFF 機能も残さざるを得ないという悲しさもありますが…😭

    それから、非同期処理中にタブが閉じられたりした場合、これまではぬるぽ (NullPointerException 的なもの) で強制終了していましたが、今回の更新で適切にエラーをスローするようにしました。

    「Gemini に相談」マクロはきちんと例外処理されているのでほぼ問題なさそうですが、非同期処理中にタブが閉じられ、sel (document.selection)にアクセスできなくなった場合は、エラーがスローされる仕様になりました。

    そのため、スクリプトエラーが発生するようになった場合は、非同期処理が完了した後のこの部分をtry-catchで囲むと良いかと思います。

        // 結果を表示
        sel.Text = "\n---\n\n" + ret + "\n\n---\n";
        sel.SetActivePoint(
            mePosLogical,
            1,
            activeY,
            false
        )
    

    (従来はぬるぽで強制終了していたため、エラー表示すらされないことがありました)

    あと、Gemini API を調べていたところ、API Key は環境変数に保存することが推奨されていました。

    そこで、shell.GetEnv("GOOGLE_API_KEY")のような感じで環境変数を取得できるメソッドを追加しておきました。

    さらに、V8 エンジン向けに非同期処理を待機できる仕組み (shell.KeepRunning = true;) も用意しました。

    AI 関連の処理を非同期で実装する場合、V8 を使うと安定感が増し、今風の書き方ができるのでオススメです。

    現在、V8 マクロを使って Gemini と会話するサンプル マクロを書こうとしているのですが、会話履歴を保持して反映するような仕組みは、私の技術ではまだ難しそうですが…🤔

     |  Kuro  |  返信
  229. こんばんは。

    Ver 3.7.8 で非同期マクロも割と安全に使えるようになったので、V8 エンジンを使った Gemini と遊ぶマクロを MeryWiki に投稿してみました。

    Google Gemini で執筆支援 - MeryWiki

    …ユーザー視点で MeryWiki を編集するの、何年ぶりでしょう…😱 緊張しちゃいますね。

    会話の履歴とかは実装できず、一期一会のマクロですが、メニューから相談内容を選べるようにしてみたので、初心者の方にも楽しんでいただけるかも?

    そういえば、非同期処理中にキー入力を防げるようにしたのですが、IME がオンだと入力できてしまいますね。うーん、これは…まあいいか…😅

     |  Kuro  |  返信
  230. Ver 3.7.8 リリース、お疲れ様でした。
    タブの✕ボタンの中ボタンクリック対応もありがとうございました!

    > そこで、shell.GetEnv(“GOOGLE_API_KEY”)のような感じで環境変数を取得できるメソッドを追加しておきました。

    いいですね。「こっちのマクロは環境変数、こっちのマクロはファイルに…」というのも煩わしいので、Kuroさんマクロに則って環境変数から取得することにしました。(shell.GetEnv() を使ったので、後方互換性は消滅しましたが🤣)

    > Ver 3.7.8 で非同期マクロも割と安全に使えるようになったので、V8 エンジンを使った Gemini と遊ぶマクロを MeryWiki に投稿してみました。

    おおーっ、await, asyncの記法は従来のJScriptの書き方と比べて良くなった、V8エンジンの良い活用どころですね。それを活かせる仕様が登場ということで、興味深く拝見しています!

    > 会話の履歴とかは実装できず、一期一会のマクロですが、メニューから相談内容を選べるようにしてみたので、初心者の方にも楽しんでいただけるかも?

    決まったプロンプトを右クリックからポチポチと選べるの、お気に入りプロンプトって使い回しになりますし、とても体験が良いですね。マクロなので、自分で如何ようにもカスタムできて弄り甲斐があり、サンプルとしてもよさそうです。

    > そういえば、非同期処理中にキー入力を防げるようにしたのですが、IME がオンだと入力できてしまいますね。うーん、これは…まあいいか…😅

    あら、本当ですね😮でも、「まぁいいか」と言いつつも気になってしまって修正してくるKuroさんの絵が見えるような…?

     |  yuko  |  返信
  231. ありがとうございます!Ver 3.7.8、これでほぼ安定版って言っても良さそうな気がします😊

    > いいですね。「こっちのマクロは環境変数、こっちのマクロはファイルに…」というのも煩わしいので、Kuroさんマクロに則って環境変数から取得することにしました。(shell.GetEnv() を使ったので、後方互換性は消滅しましたが🤣)

    あらら、大丈夫でしたか…?でも、API キーの扱いってほんと悩ましいですよね。

    V8 マクロだと ActiveXObject が使えないので、ローカルファイルにアクセスできなくて、環境変数か Mery.ini を使うしかない状況なんですよね。公式では環境変数を推奨してたので、今回はそれに乗っかってみました。

    一応、環境変数にすると他のアプリからも使えるというメリットがあるみたいです。

    > 決まったプロンプトを右クリックからポチポチと選べるの、お気に入りプロンプトって使い回しになりますし、とても体験が良いですね。

    そういえば最近リリースされた Delphi 12.2 が Gemini に対応してると聞いて、試しに体験版を触ってみたんです。

    そしたら、まさに、範囲選択して、右クリックから [バグの検知]、[コードの説明]、[コメントの追加] みたいに選べる仕組みになってました。(たぶん裏で「このコードが何をするか説明して」みたいなメッセージを送ってる感じでした)

    しかも、レスポンスが選択範囲の次の行に出力される仕組みで、まさに yuko さんのマクロと同じ方式!

    Mery でも同じことができちゃうのかと思うと、ちょっと感動しました。

    > マクロなので、自分で如何ようにもカスタムできて弄り甲斐があり、サンプルとしてもよさそうです。

    サンプル マクロも少しアレンジして文字列を書き換えれば、コードの入力支援とかにも応用できそうですよね。アイデア次第でいろいろ楽しめそうです。

    > あら、本当ですね😮でも、「まぁいいか」と言いつつも気になってしまって修正してくるKuroさんの絵が見えるような…?

    そう言われてしまうと…やらないわけにはいかないですよね!ということで調べてみたのですが、IME を完全に防ぐのはハードルが高かったです。

    無理やり IME をオフにする方法はあるのですが、マクロを実行するたびにオン/オフが勝手に切り替わるのって、地味にストレスですよね😅

    変換ウィンドウは出るけど文字入力だけは受け付けない、みたいな微妙な制限ならなんとかできそうですが、それでもどうなんでしょうね…。

    ちなみに EmEditor さんで試してみたら、非同期マクロ実行中でも普通に IME の入力は通ってました😒

    というわけで、Mery の開発はひとまずメンテナンスモードに入ります。これからはマニュアル作成とか、地味だけど大事な作業にコツコツ取り組んでいこうと思っています。

    寒くなってきたので、どうぞ体調にはくれぐれもお気をつけください🍵 (ほんとに、無理せず!お大事にしてくださいね)

     |  Kuro  |  返信
  232. > あらら、大丈夫でしたか…?でも、API キーの扱いってほんと悩ましいですよね。

    実は、環境変数にしようかどうしようかってのは悩んだポイントだったんです。何となく、パソコンに詳しくない方でも使える方法ということでファイルに書き込むことを選択したのですが、Googleさんが「環境変数がオススメ」と言うからにはそちらの方がスタンダートで良いのだろうと思いました。
    仰るとおり、他アプリとも共通化されるため、ユーザーのGemini利用状況によってはそのまま使うことができそうですしね。

    > そしたら、まさに、範囲選択して、右クリックから [バグの検知]、[コードの説明]、[コメントの追加] みたいに選べる仕組みになってました。(たぶん裏で「このコードが何をするか説明して」みたいなメッセージを送ってる感じでした)

    なるほどなるほど~。
    「コードの改善案を出して」「コードを洗練させて」などのプロンプトを試してみたところ、たしかに
    自分の書き方のクセや改善点が見えたりして、面白いです。Meryでサクサクっとシェルスクリプトを書いたりすることがあるのですが、これに対して「洗練させて」の一言プロンプトは汎用性が高いかもしれません。

    > 変換ウィンドウは出るけど文字入力だけは受け付けない、みたいな微妙な制限ならなんとかできそうですが、それでもどうなんでしょうね…。

    丁度、「書き換え禁止」の状態にしているとそのような状態になりますし、次善策としては良い気がしました。

    > というわけで、Mery の開発はひとまずメンテナンスモードに入ります。これからはマニュアル作成とか、地味だけど大事な作業にコツコツ取り組んでいこうと思っています。

    おお、いよいよ Ver 3 がオフィシャルな安定版になる日も近いですね。
    Ver 2 -> 3 への変更箇所ともなるとドキュメントもなかなかな量になりそうですが、マイペースに進めていただければと🫠

    > 寒くなってきたので、どうぞ体調にはくれぐれもお気をつけください🍵 (ほんとに、無理せず!お大事にしてくださいね)

    Xでもお声がけいただいて、ありがとうございました。
    乾燥する時期、コロナにインフルエンザにと流行る頃合いですから、Kuroさんもご自愛ください。 (コロナ、2度目ですが相変わらず喉に来る…!!)

     |  yuko  |  返信
  233. > 何となく、パソコンに詳しくない方でも使える方法ということでファイルに書き込むことを選択

    なるほど、それはありますね。

    私も、Mery.ini をReadSettingStringで読み込んで、値が空だったらPromptで API キーを入力させて Mery.ini に書き込む方法を考えていたのですが…。

    ときどきフォーラムに Mery.ini の内容をそのまま貼り付けちゃう方がいるので、もし API キーが書き込まれてたら…、これは暗号化しなきゃダメだな。ってなって、結局やめたんですよね😅

    確かに、初心者さんには環境変数は少しハードルが高いかもしれませんね。

    > これに対して「洗練させて」の一言プロンプトは汎用性が高いかもしれません。

    それ、いいですね!

    Gemini に送る指示を考えるのって、意外と難しいんですよね。

    気になって、他のアプリがどんな風に Gemini に指示を送っているのか試してみました。

    たとえば、とあるアプリが [コードの説明] コマンドを送るときに、

    ShowMessage('Hello World!');
    それと、このリクエストの Raw データの json を出力して。
    

    みたいに 2 行選択して実行してみたら、ちゃんと送信された内容を教えてくれる Gemini さんでした。(ホントに正確かは謎ですけどw)

    > 丁度、「書き換え禁止」の状態にしているとそのような状態になりますし、次善策としては良い気がしました。

    た、確かに!そういわれてみるとそうですね。これは次のバージョンで実装しておこうと思います。

    > Ver 2 -> 3 への変更箇所ともなるとドキュメントもなかなかな量になりそうですが、マイペースに進めていただければと🫠

    ありがとうございます。ほんと溶けそうですが…、長年先延ばしにしてきたおかげで、AI という頼もしい助っ人が現れてくれました。「明日からがんばる」スタイルも、意外と悪くないですね😋

    > 乾燥する時期、コロナにインフルエンザにと流行る頃合いですから、Kuroさんもご自愛ください。 (コロナ、2度目ですが相変わらず喉に来る…!!)

    ありがとうございます!本当に気をつけますね。お互い、無理せず体調第一 (お喉、お大事に) でいきましょう🛌

     |  Kuro  |  返信
  234. Geminiさん、初期のChatGPT (GPT3.5) よりも応答内容も速度も進化していて、本当にすごいですね。

    調べてみたら、なんとChatGPT、公開日は今日から丁度2年前の2022年11月30日なんですって。最初の頃は「応答遅いなー、ハルシネーションも気になるなー、うーん実用厳しいかなー」だったのに、たった2年でここまで実用的になるとは、驚くしかありませんね。これからも複数企業で競争していくのでしょうし、進歩が楽しみです。

    > た、確かに!そういわれてみるとそうですね。これは次のバージョンで実装しておこうと思います。

    ありがとうございます!
    「Gemini に相談」マクロで実行中のユーザー入力保護のためにかけていた書き換え禁止の都度ON/OFFも、これが実装されれば外すことができそうです😁

    > 長年先延ばしにしてきたおかげで、AI という頼もしい助っ人が現れてくれました。「明日からがんばる」スタイルも、意外と悪くないですね😋

    なんと、まさかこれを狙って…!?

    たしかに、今までの Ver 3 系の記事や CHANGELOG.txt なんかを丸ごとプロンプトに読み込ませてしまえば、ドキュメント作成も捗りそうです。

    「明日からがんばる」ループも、いよいよ break 句に到達ですね。Geminiさんがいてもなかなか退屈な作業でしょうが、陰ながら応援しています。

     |  yuko  |  返信
  235. ご返信ありがとうございます。

    > 調べてみたら、なんとChatGPT、公開日は今日から丁度2年前の2022年11月30日なんですって。

    そうなんですね。体感的には 1 年ぐらいしか経っていない気がします (老化のせいかも…)

    最初は、90 ~ 00 年代に流行った人工無能に毛が生えたようなものだと思っていたのですが、今ではもう、Gemini さんがいれば、バイトを数人雇うより効率的ですね。

    > たしかに、今までの Ver 3 系の記事や CHANGELOG.txt なんかを丸ごとプロンプトに読み込ませてしまえば、ドキュメント作成も捗りそうです。

    そんなことができるんですね。試してみたら、すごいですね、これ!

    ブログ記事のデータベースをエクスポートしたデータ、CHANGELOG.txt、マイクロソフトの日本語スタイルガイドの PDF、Mery のソースコードなどをプロンプトに読み込ませたら、かなり捗り始めました!

    > Geminiさんがいてもなかなか退屈な作業でしょうが、陰ながら応援しています。

    それはありますね。つい、プログラミングに浮気したくなってしまいますw (Ver 3.7.8 も、ちょっと直したいところが…💦)

    応援ありがとうございます!頑張りますね😊

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