マクロで個別ブラウザの上書き保存の更新No.40791
(-L-) さん 23/09/05 08:50
 
ウォッチまでは秀丸マクロのjavascript(ヘルプにwatch:1とあった)でできました。
上書き保存の更新については記載をみつけることができませんでした。
どのようにすれば良いのかがよくわかりませんでした。


【以下蛇足】
秀丸マクロは従来の書き方とjavascriptと二種類あるっぽい。
最近はjavascriptを主にする?(従来の書き方では機能がなかったりする?watchと
か。)
javascriptのときに、秀丸の変数はどのように書けばいいのかサンプルに無いのでよ
くわからない。(watch:1のサンプルには他の項目もすべてリテラルなものでしか記
載されていないので使えるのかとか想像できない。)
どっかに書いてあるのかもしれないが、そこまで調べる気力が。。

[ ]
RE:40791 マクロで個別ブラウザの上書き保No.40792
秀丸担当 さん 23/09/05 10:59
 
V9.25β2で、個別ブラウザ枠のメニューに、[ウォッチ(W)]→[上書き保存で更新(S)]
を追加していました。
これに相当するマクロの書き方は、存在しませんでした。
他にも手動ではできるのに不足してものがあるかもしれません。
できるものを追加していきます。
ヘルプの例も増やしていきます。

ブラウザ枠関連は従来の書き方に近いものを用意していますが、だんだん増えすぎて、
browserpanecommand一文で全て賄えるようにする方針にしています。
browserpanecommandは、JavaScriptというよりJSONの書き方で、従来マクロでも使う
ことができます。
JSONの書き方はけっこう厳格で、1つの文字列にしないといけないので扱いにくい場
面があります。
例えば従来マクロで以下のように書くことができます。

  browserpanecommand """
    {
      "target":"_each",
      "watch":1,
    }
    """;
  endmacro;

プロパティ名はwatch:と書けなくて、必ず"watch":です。
変数#fWatchで動的に変えたい場合、それを文字列に変換して置き換えたりする処理
が必要で面倒です。
最後のカンマ(,)は書いたらだめで、本来はエラーです。(ですが秀丸エディタでは
許容しています。本当はよくないです)


JavaScriptだと、JSON文字列でもオブジェクトでも書けて、けっこう自由です。

  js{
    browserpanecommand(
      {
        target:"_each",
        watch:1,
      }
      );
  }
  endmacro;

プロパティ名はwatch:でも"watch":でもいいです。
watch:fWatchといった感じに変数をそのまま書けたりします。
最後のカンマもあってもいいです。


----

以下は参考までの情報です。
従来方式の1つとして、アウトライン解析の枠のoutlinehandleでコマンド値を送る
という手段があります。
一応ブラウザ枠にもbrowserpanehandleというものがあります。
現状で、これでコマンド値を送ってON/OFFを変えることはできますが、この値はヘル
プに書いていなくて、これからも書く予定ではないです。
setbrowserpanetarget "_each";
if(browserpanehandle!=0){
 #n=sendmessage(browserpanehandle,0x111,7628/*上書き保存で更新*/,0);
}
endmacro;

[ ]