V8.66β7No.09108
秀丸担当 さん 16/09/29 15:55
 

V8.66β7を公開しました。

以下のページの「先行開発バージョンはこちら」からダウンロードできます。
http://hide.maruo.co.jp/software/hidemaru.html

32bit版:
http://hide.maruo.co.jp/software/bin/hm866b7_signed.exe

64bit版:
http://hide.maruo.co.jp/software/bin/hm866b7_x64_signed.exe

[ ]
RE:09108 V8.66β7No.09109
天翔記.jp さん 16/09/29 16:56
 
evalのマクロヘルプがexecmacro になってますー

[ ]
RE:09109 V8.66β7No.09110
秀丸担当 さん 16/09/29 17:05
 

ご指摘ありがとうございます。
ヘルプ中の例が違っていました。
早速修正させていただきます。

[ ]
RE:09108 V8.66β7No.09111
h-tom さん 16/09/29 23:19
 

h-tom です。

>V8.66β7を公開しました。
eval 文ですが、goto、break、setactivehidemaru は使えないとありますが、
execmacro文は問題ないですか?

古い話ですが、

  秀丸エディタβ版 - スレッド04710
  http://hidemaruo.dip.jp:81/turukame/turukame_3/x0904710.html

の「execmacro文で、引数を渡す方法」を現状でやろうとして、起動された側の
マクロで argcount を正しく取得できるようにしようとすると、

  秀丸エディタβ版 - スレッド08809
  http://hidemaruo.dip.jp:81/turukame/turukame_3/x1508809.html

のIKKIさんのようになります。

eval 文 を使えば、コンパクトな作りにできるので、とりあえず試しにマクロを
変更してみましたが、eval 文での制限は何処まで影響されるのでしょうか?
別のマクロになるので、特に気にしなくてもいいのでしょうか?

[ ]
RE:09111 V8.66β7No.09112
秀丸担当 さん 16/09/30 09:31
 

execmacroについては想定していませんでした。
現状実行してしまうと落ちたりおかしなことになると思います。
少なくとも落ちたりしないように修正します。

発端としてはDLL側から呼び出せるようにしたいというもので、ネイティブの関
数が呼ばれている最中の出来事という前提で、制約があります。
それを通常のマクロからeval文で呼び出せるようにしてみたのですが、通常のマ
クロからはやはり別の位置づけとして、制約の在り方も違うほうがいいかもしれ
ないです。
もう少し考えます。

[ ]
RE:09108 新追加のHidemaru_*** 挙動報告No.09113
天翔記.jp さん 16/09/30 14:55
 
とりあえず、ネイティブC++とマネージドC#層の両方で
Hidemaru_GetSelectedTextUnicodeは普通に動いています。
ありがとうございます。

Hidemaru_EvalMacroも、普通に動いています。
元々あるであろう、いくつかの関数での上手くいかない挙動等は
突き詰めていませんが、関数事態は、組み込めて普通に動いています。

Hidemaru_EvalMacro については、使いこなすには1点問題があると
判明しましたので、そちらは別途投稿致します。

[ ]
RE:09112 V8.66β7No.09114
h-tom さん 16/09/30 21:58
 

h-tom です。

>execmacroについては想定していませんでした。
>現状実行してしまうと落ちたりおかしなことになると思います。
>少なくとも落ちたりしないように修正します。
こちらで試したマクロは、問題なく実行できましたが、実際は危険でしたか。
  呼び出し元:配列名を結合させ、execmacro文の引数にして eval で実行
  呼び出し先:引数を結合させ、表示するだけのマクロ

>もう少し考えます。
execmacro文が実行できれば良いのですが、制限がかかる方向に進むなら、
再度、menuarrayのような形式で、引数に配列および個数を指定できる
execmacro文 を要望します。

[ ]
RE:09108 V8.66β7No.09115
h-tom さん 16/10/01 12:46
 

h-tom です。

jre32.dll互換の正規表現エンジン(というかHmjre.dll Ver.5以外)だと、
検索や置換の「追加の条件」で「を除く」がうまく動いていないです。
(除外指定した箇所もマッチする。)

「のみ」を選択した場合は、問題ないです。

[ ]
RE:09114 V8.66β7No.09116
秀丸担当 さん 16/10/03 11:49
 

手元でexecmacroをできるようにしてみたのですが、さらに現状できない
setactivehidemaruのことも必要で、いろいろ不安定要素がありそうです。
パラメータだけの目的でevalでexecmacroをサポートするよりは、execmacro単体
で配列のサポートをしたほうが安全だと思います。
execmacroで配列の対応を検討したいと思います。

そのままの文で execmacro $mac,$a,#c;という書き方になっていたらできるよう
にしてみます。または問題がありそうならmenuarrayのように別の文にするかも
しれません。

[ ]
RE:09115 V8.66β7No.09118
秀丸担当 さん 16/10/03 15:02
 

バグ情報ありがとうございます。
V8.66β1からHmJre.dllをV5.00にして、追加の条件のときでも「.+」の検索が正
確にできるように修正したのですが、それに対応していない正規表現DLLではう
まくいっていませんでした。
対応していない正規表現DLLの場合は従来通りに動作するように修正させていた
だきます。

[ ]
RE:09116 V8.66β7No.09120
h-tom さん 16/10/03 23:44
 

h-tom です。

>パラメータだけの目的でevalでexecmacroをサポートするよりは、execmacro単体
>で配列のサポートをしたほうが安全だと思います。
>execmacroで配列の対応を検討したいと思います。
よろしくお願いします。

>そのままの文で execmacro $mac,$a,#c;という書き方になっていたらできるよう
>にしてみます。または問題がありそうならmenuarrayのように別の文にするかも
>しれません。
えーと、#cが 0(ゼロ) だった場合の挙動に問題なければいけそうな感じですね。
(詳細はお任せします)

・eval(Hidemaru_EvalMacroを含む)について
 いろいろ難しいこともあるので、動作するモノを絞ってしまうとか。
 ・範囲選択、カーソル移動(検索、置換も含む?)、文字列の挿入と削除だけ等
 まぁ、意見の一つという事で。

[ ]
RE:09120 V8.66β7No.09121
天翔記.jp さん 16/10/04 09:35
 
>・eval(Hidemaru_EvalMacroを含む)について
> いろいろ難しいこともあるので、動作するモノを絞ってしまうとか。
> ・範囲選択、カーソル移動(検索、置換も含む?)、文字列の挿入と削除だけ等
> まぁ、意見の一つという事で。
少なくともHidemaru_EvalMacroについては、
絞ってしまうのよりはは、
「上手く使えないものは当人が使わない」の方がよいではないでしょうか。
Hidemaru_EvalMacro の時点で、結構当人に丸投げ要素強いので。

evalについては、「制御文系・ジャンプ文系」は全部カット、
とすると、
まずは、ざっくり挙動安定の見込みが立ちやすくなると思うのですが、
どうなんでしょう?

[ ]
RE:09121 V8.66β7No.09122
秀丸担当 さん 16/10/04 14:37
 

eval/Hidemaru_EvalMacroについて、落ちたり動作がおかしくなったりする危険
性があるものについては、少なくとも制限させるなどの何らかの対応をします。
実行可能な場面は将来広げるかもしれないですが、現時点では安定性を取ろうと
思います。

[ ]