自動起動マクロについてNo.08053
Iranoan さん 13/09/12 12:04
 
 秀丸担当さん今日は、Iranoan です。
 編集後タイマーの geteventparam( 0 ) の値ですが、削除も判定可能になり
ませんか?
 やりたいのは直前に入力した文字が「"」「'」の時は、各々対応する文字を
自動入力したいのです。もちろん現状でもできるのですが、現状ですと、自動
入力された 2 つ目の「"」「'」を削除すると、直ちに「"」「'」が自動入力
され…。
 こちらの環境は、Windows7+IE8.0+秀丸 Ver.8.32b01 です。

[ ]
RE:08053 自動起動マクロについてNo.08054
秀丸担当 さん 13/09/12 15:51
 

編集後タイマーで削除の編集によるものかどうかの判定は確かにできないです。
geteventparam( 0 )だと互換性の心配もあるので、geteventparam( 5 )あたりで
取得できるような方法を検討したいと思います。

[ ]
RE:08054 自動起動マクロについてNo.08055
Iranoan さん 13/09/12 16:09
 
 秀丸担当さん今日は、Iranoan です。
> geteventparam( 0 )だと互換性の心配もあるので、geteventparam( 5 )あたりで
> 取得できるような方法を検討したいと思います。
 よろしくお願いします。

[ ]
RE:08054 自動起動マクロについてNo.08059
Iranoan さん 13/09/15 15:39
 
 秀丸担当さん今日は、Iranoan です。
> geteventparam( 0 )だと互換性の心配もあるので、geteventparam( 5 )あたりで
> 取得できるような方法を検討したいと思います。
 その後もいじっていて気が付いたのですが、可能なら
・マクロ
・置換
による編集も区別出来た方が良さそうです。

[ ]
RE:08059 自動起動マクロについてNo.08061
秀丸担当 さん 13/09/17 13:44
 

とりあえずV8.33β2で削除についで判断できるようにしました。
geteventmacro(5)で0以外を削除として、いまのところヘルプには数値の詳細は
明記はしていないですが、BackSpaceや範囲選択によるものかも一応数値で判断
できます。

置換については単発の置換であれば似た方法で追加することも可能だと思います
が、全置換についてはもともと自動起動マクロは実行しないようにしてあります。
単発だけでもいいでしょうか。

マクロによる編集でマクロを呼ぶのはややこしくなる予感がします。
いままで呼ばれていたかったところで呼ぶようになるのは不都合が起きる可能性
があるので、やるとしたら「マクロ実行後」というような新しいイベントを追加
する必要がありそうです。
現状で、マクロ内でexecmacroを呼ぶ方法ではどうでしょうか。

[ ]
RE:08061 自動起動マクロについてNo.08063
Iranoan さん 13/09/17 14:44
 
 秀丸担当さん今日は、Iranoan です。
> geteventmacro(5)で0以外を削除として、いまのところヘルプには数値の詳細は
> 明記はしていないですが、BackSpaceや範囲選択によるものかも一応数値で判断
> できます。
 ヘルプへ明記して頂ければ幸いです。

> 全置換についてはもともと自動起動マクロは実行しないようにしてあります。
> 単発だけでもいいでしょうか。
 それで全置換では問題が起きていなかったのか。
 単発だけで結構です。
 現在の場合、最初の投稿例でいうと、"" → " の置換ができないので。(上
下候補による置換直後に " が自動起動マクロで追加されてしまうため)

> マクロによる編集でマクロを呼ぶのはややこしくなる予感がします。
> いままで呼ばれていたかったところで呼ぶようになるのは不都合が起きる可能性
> があるので、やるとしたら「マクロ実行後」というような新しいイベントを追加
> する必要がありそうです。
> 現状で、マクロ内でexecmacroを呼ぶ方法ではどうでしょうか。
 こちら私が現状の仕様を間違えているかも知れません。
 現状でも、マクロによる編集後には、自動起動マクロが働かないのであれば、
今のままでよいです。マクロ編集後にも、自動起動が働くとややこしい事にな
るで、止められたほうが良い、と思ったので。

[ ]
RE:08063 自動起動マクロについてNo.08064
Iranoan さん 13/09/17 16:57
 
 秀丸担当さん今日は、Iranoan です。
> > geteventmacro(5)で0以外を削除として、いまのところヘルプには数値の詳細は
> > 明記はしていないですが、BackSpaceや範囲選択によるものかも一応数値で判断
> > できます。
>  ヘルプへ明記して頂ければ幸いです。
 こちらに関して、件のマクロで「単語削除」「単語削除 (カーソルより後
ろ)」でも自動起動が働きます。
 「単語削除 (カーソルより前)」も含めて、チェック漏れではないでしょうか?

[ ]
RE:08064 自動起動マクロについてNo.08065
秀丸担当 さん 13/09/17 17:11
 


では置換の単発のときだけも判断できるように追加させていただきます。
geteventmacro(5)の1つの値として判断できるようにしてみます。

削除が伴う編集は他にもいろいろ考えられるので、いったん仕様を固めてしまう
と互換性を考える必要が出てくるので、ある程度得られたほうがいい条件が絞ら
れたらヘルプにも書いておこうとお思います。
現状ではgeteventmacro(5)の値は以下のようになっています。
1:範囲選択ではない通常の削除
2:BaskSpaceによる削除
3:範囲選択やまとまったブロックの削除

> こちらに関して、件のマクロで「単語削除」「単語削除 (カーソルより後
>ろ)」でも自動起動が働きます。
> 「単語削除 (カーソルより前)」も含めて、チェック漏れではないでしょうか?

確かにその通りでした。
こちらもgeteventmacro(5)の値を設定するように修正させていただきます。
行削除なども3を返すようにしてあるので、とりあえず同じく3にしようと思いま
す。

[ ]
RE:08065 自動起動マクロについてNo.08066
Iranoan さん 13/09/17 21:03
 
 秀丸担当さん今日は、Iranoan です。
> では置換の単発のときだけも判断できるように追加させていただきます。
> geteventmacro(5)の1つの値として判断できるようにしてみます。
 ありがとうございます。

> 削除が伴う編集は他にもいろいろ考えられるので、いったん仕様を固めてしまう
> と互換性を考える必要が出てくるので、ある程度得られたほうがいい条件が絞ら
> れたらヘルプにも書いておこうとお思います。
 そうですね。
 少なくとも、β版はヘルプに未記載のままでも良いですね。
 ただ
> 1:範囲選択ではない通常の削除
> 2:BaskSpaceによる削除
> 3:範囲選択やまとまったブロックの削除
の分類で良いかどうかはちょっと疑問です。
(A) 範囲選択の削除かどうか?
(B) BS か delete か
(C) ブロックの削除か?
(D) カーソル位置に対して
    o 前
    o 後
    o「単語削除」のようにカーソル前後が有り得るか?
の区別、特に BS と delete も含め、カーソル位置の前後でやりたい事が変わ
る気がします。これはフラグになっていたほうが良いと思います。

> > こちらに関して、件のマクロで「単語削除」「単語削除 (カーソルより後
> >ろ)」でも自動起動が働きます。
> > 「単語削除 (カーソルより前)」も含めて、チェック漏れではないでしょうか?
>
> 確かにその通りでした。
> こちらもgeteventmacro(5)の値を設定するように修正させていただきます。
> 行削除なども3を返すようにしてあるので、とりあえず同じく3にしようと思いま
> す。
 よろしくお願いします。

[ ]
RE:08066 自動起動マクロについてNo.08067
秀丸担当 さん 13/09/18 10:06
 

>の分類で良いかどうかはちょっと疑問です。
>(A) 範囲選択の削除かどうか?
>(B) BS か delete か
>(C) ブロックの削除か?
>(D) カーソル位置に対して
>    o 前
>    o 後
>    o「単語削除」のようにカーソル前後が有り得るか?
>の区別、特に BS と delete も含め、カーソル位置の前後でやりたい事が変わ
>る気がします。これはフラグになっていたほうが良いと思います。

詳しくできたほうがいいということで、それぞれについて詳しく取得できるよう
に次のβ版で修正させていただきます。

[ ]
RE:08067 自動起動マクロについてNo.08068
Iranoan さん 13/09/18 13:51
 
 秀丸担当さん今日は、Iranoan です。
> 詳しくできたほうがいいということで、それぞれについて詳しく取得できるよう
> に次のβ版で修正させていただきます。
 よろしくお願いします。

[ ]
RE:08067 自動起動マクロについてNo.08075
Iranoan さん 13/09/26 14:43
 
 秀丸担当さん今日は、Iranoan です。
> 詳しくできたほうがいいということで、それぞれについて詳しく取得できるよう
> に次のβ版で修正させていただきます。
 履歴には、
> 編集後タイマーの自動起動マクロで、geteventparam(5)で削除のされ方や置換か
> どうかを判断できるようにする。
と有ります。しかしヘルプが
> geteventparam(5)の返り値(V8.33以降)
>    0 削除ではない編集
>    0以外 削除による編集
と変わっていないので、利用法が解りません(^^;

[ ]
RE:08075 自動起動マクロについてNo.08076
秀丸担当 さん 13/09/26 15:09
 

とりあえず現状で以下のようにしてみました。

1:通常の削除
2:BackSpace
3:範囲選択
4:行削除
5:単語削除
6:カーソルより後ろ
7:カーソルより前
8:置換

[ ]
RE:08076 自動起動マクロについてNo.08077
Iranoan さん 13/09/26 20:10
 
 秀丸担当さん今日は、Iranoan です。
> 1:通常の削除
> 2:BackSpace
> 3:範囲選択
> 4:行削除
> 5:単語削除
> 6:カーソルより後ろ
> 7:カーソルより前
> 8:置換
 情報ありがとうございます。

[ ]