CLaoyoutMgrを迂回してDocLine系のみで置換を行い、置換完了後にレイアウトを再構築します。 折り返しの激しい置換などで効果が高いです。 ちょっとしか置換せず、ファイルが大きい場合は逆に遅くなるかもしれません。 例のCGrepAgent.cpp10個分の\r\n置換は2秒程度でした。
注:現段階では挿入で空文字列を入れると落ちます。まだ試用版です。
v0_2 REPLACE_ALLの正規表現の所でLayoutにアクセスしていたのを修正
Redo/UndoもFastModeに対応してみました。
・cSelectLogicに通常モードでアクセスしていたのを修正 ・LogicToLayoutの高速化を削除
・パッチでundoがおかしかったのを修正 ・改行コード変換もfastModeに対応
・パッチで折り返し幅の更新が行われていなかったのを修正
・すべて置換で0回置換の場合、_DoLayoutしないように ・置換回数が100以下の場合などはfastModeにしないように (大きいファイルのちょっとの置換が遅くなるので)
・パッチでREPALCE_ALLからの2回目のSEARCH_NEXTの引数bChangeCurRegexpがtrueになっていた ・Redo/Undoでm_nCaretPosX_Prevを設定する
・ClearLayoutLineWidthを削除 ・衝突の修正
・変更行の修正に従う修正
・検索の高速化パッチに従うconflict修正 ・COpe系DUMPのconflict修正
・conflict修正
・conflict修正(置換Ope)
最新版対応
・すべて置換のRedoが間違っていた(v0_13~)のを修正
高速置換モードにするのを100→50に修正
[r3477]でコミットしました。
Commit: [r3477]
line=NULLの時はpcLayout=NULLになるため、 pcLayout=NULLの時にポインタ参照する処理は実行されてないので問題なさそうですが、 bLineModifiedChange変数は使用していないので、 一連する処理をif(!bFastMode)の中に入れました。
また、bLineModifiedChange関連は使用していないので、削除しました。
[r4066]でcommitしました。
Commit: [r4066]
Log in to post a comment.
注:現段階では挿入で空文字列を入れると落ちます。まだ試用版です。
v0_2 REPLACE_ALLの正規表現の所でLayoutにアクセスしていたのを修正
Redo/UndoもFastModeに対応してみました。
・cSelectLogicに通常モードでアクセスしていたのを修正
・LogicToLayoutの高速化を削除
・パッチでundoがおかしかったのを修正
・改行コード変換もfastModeに対応
Last edit: Moca 2013-05-12
・パッチで折り返し幅の更新が行われていなかったのを修正
・すべて置換で0回置換の場合、_DoLayoutしないように
・置換回数が100以下の場合などはfastModeにしないように
(大きいファイルのちょっとの置換が遅くなるので)
・パッチでREPALCE_ALLからの2回目のSEARCH_NEXTの引数bChangeCurRegexpがtrueになっていた
・Redo/Undoでm_nCaretPosX_Prevを設定する
・ClearLayoutLineWidthを削除
・衝突の修正
・変更行の修正に従う修正
・検索の高速化パッチに従うconflict修正
・COpe系DUMPのconflict修正
・conflict修正
・conflict修正(置換Ope)
最新版対応
・すべて置換のRedoが間違っていた(v0_13~)のを修正
高速置換モードにするのを100→50に修正
[r3477]でコミットしました。
Related
Commit: [r3477]
line=NULLの時はpcLayout=NULLになるため、
pcLayout=NULLの時にポインタ参照する処理は実行されてないので問題なさそうですが、
bLineModifiedChange変数は使用していないので、
一連する処理をif(!bFastMode)の中に入れました。
また、bLineModifiedChange関連は使用していないので、削除しました。
[r4066]でcommitしました。
Related
Commit: [r4066]