マクロ実行中に編集できないNo.04115
ぎんNaN さん 09/10/06 10:47
 
disabledrawがかかったマクロ実行中に同じウインドウの別タブのファイルが編集で
きません。ループして置換処理をしているため結構長くかかります。
ちなみに、新タブモードです。
8.00 beta 18 / XP SP3 (32bit)

[ ]
RE:04115 マクロ実行中に編集できないNo.04126
秀丸担当 さん 09/10/06 16:21
 

>disabledrawがかかったマクロ実行中に同じウインドウの別タブのファイルが編集で
>きません。ループして置換処理をしているため結構長くかかります。
>ちなみに、新タブモードです。

disabledraw;
while(1) {
 gofiletop;
 replacedown "a","a";
}

というような感じでループさせてやってみましたが、他のタブも編集することが
できました。
どのようにしてタブ移動しているのかがわからないのですが、キー入力できない
のでCtrl+Tabはできないです。
描画されていないタブを無理矢理クリックして移動させ、アクティブ切り替えは
できて、編集できました。
新タブモードの影響があるのかもしれないですが、試してみた限りでは新タブ,旧
タブでも動作に違いは見られませんでした。
もう少しテストしてみます。
もし差し支えなければ具体的なマクロを教えていただけると何かわかるかもしれ
ないです。

[ ]
RE:04126 マクロ実行中に編集できないNo.04128
ぎんNaN さん 09/10/06 16:40
 
マクロ実行中に別にファイルを開いていました。
旧タブモードではマクロ実行中のタブ以外はタブをクリックして普通に編集できまし
たが、新タブモードではほぼ無反応です。

以下のようなマクロを動かしていました。

disabledraw;
replaceall "http://www.w3.org/StyleSheets/TR/(W3C-[A-Z]+)","\\1.css",regular;
replaceall "http://www.w3.org/Icons(/w3c_home)","images\\1.png",regular;
gofiletop;
searchdown2 "<!--";
while(result){
 left;
 beginsel;
 right 4;
 searchdown2 "-->";
 right 3;
 endsel;
 delete;
 searchdown2 "<!--";
}
replaceallfast " +(</?(ul|ol|li|h|t|di|dd|dt|dl|bl|p))","\\1",regular;
replaceallfast "(?<=.)(<(ul|ol|li|h|t|di|dd|dt|dl|bl|p))","\\n\\1",regular;
replaceallfast " +$","",regular;
eltop:
replaceallfast "^\n\n?\n?(</?(ul|ol|li|h|t|di|dd|dt|dl|bl|p))","\\1",regular;
if(result>0) goto eltop;
ltop:
replaceallfast "(<(p|li|dd|dt|td|th|h[1-6])[ >].*)\\n?\\n?\\n +","\\1 ",regu
lar;
if(result>1) goto ltop;
gofiletop;
searchdown "(<(p|li|dd|dt|td|th|h[1-6])[ >].*)\\n +",regular;
up;
while(result) replacedown "\\n +"," ",regular;
replaceallfast "(<(p|li|dd|dt|td|th|h[1-6])( [^>]*)?>) +","\\1",regular;
replaceallfast "^<([a-z0-9]+)(( [^>]+)?>.+)\\n</\\1>$","<\\1\\2</\\1>",regular;
replaceallfast "^<([a-z0-9]+)(( [^>]+)?>)\\n(.+</)\\1>$","<\\1\\2\\3\\1>",re
gular;
replaceallfast "^<([a-z0-9]+)(( [^>]+)?>)\\n(.+)\\n</\\1>$","<\\1\\2\\3</\\1
>",regular;
replaceallfast "\\n(<t[dh][ >])","\\1",regular;
enabledraw;
//ここまで

対象ファイルは
http://dev.w3.org/cvsweb/~checkout~/html5/spec/Overview.html?content-type=text/plain
です。

[ ]
RE:04128 マクロ実行中に編集できないNo.04129
秀丸担当 さん 09/10/06 17:19
 

>マクロ実行中に別にファイルを開いていました。
>旧タブモードではマクロ実行中のタブ以外はタブをクリックして普通に編集できまし
>たが、新タブモードではほぼ無反応です。
>
>以下のようなマクロを動かしていました。

マクロで再現させることができました。
ありがとうございます。

replaceallのときは、disabledrawされていると全置換の中断ダイアログは出ない
ようにはなっているのですが実際は出ているのと同じ扱いで、ウィンドウがクリ
ックできないようになっていました。
while中のsearchdown2ループの最中はクリックできていると思います。
(またはwhile中のreplacedownループでも)
replaceallの最中がクリックできないです。
V7.11以前や旧タブモードでも同じでした。

とりあえず試しにクリックできるようにしたらできてしまいましたが、そうなる
とクリックしてマクロ終了のタイミングなどがややこしいことになってきそうで
す。
その辺もうまくしたうえで、すぐにはできないかもしれませんが、なんとか修正
させていただきます。

[ ]
RE:04129 マクロ実行中に編集できないNo.04164
ぎんNaN さん 09/10/08 19:31
 
beta 19 で直っています。ありがとうございました。

[ ]