- 作成者投稿
- 2024年2月4日 8:40 am #31533Applek参加者
お世話になり、ありがとうございます。
前に送りました以下は不具合ではないのでしょうか?
batch_list = editor.filters;に閉じが無くても何のエラーも出ないというパターンです。
以下の場合は”西”は無視されますが書いたつもりなのに動いていないということになります。batch_list = editor.filters; batch_list.AddReplace("西","にし",eeFindReplaceRegExp | eeFindReplaceCase,0); batch_list = editor.filters; batch_list.AddReplace("北","きた",eeFindReplaceRegExp | eeFindReplaceCase,0); document.selection.BatchReplace(batch_list,eeReplaceAll,eeExFindRegexOnigmo);
2024年2月4日 1:01 pm #31534Yutaka Emuraキーマスターいつもお世話になっております。江村です。
不具合ではありません。
batch_list = editor.filters;
を実行すると、
batch_list
の中身はクリアされます。よろしくお願いいたします。
2024年2月4日 5:40 pm #31535Applek参加者回答ありがとうございます。
不具合ではないかもしれませんが、書いたつもりで居るのに閉じ忘れだと、”西”は変換しているつもりでされないまま終わるわけで警告で教えてくれても良いと思います。
よろしくお願いいたします。2024年2月4日 5:52 pm #31536Applek参加者今気がつきましたが、この掲示板は投稿直後に”編集”と言う赤字の機能を使っても反映しないようです。
2024年2月5日 3:41 pm #31539snow参加者横から済みませんが…。
JavaScriptの言語仕様によるもののため、エディタに求めることではないと感じました。それから「編集」は私も良く使っていますが、反映されなかったことはないと思います。
(実際、たった今この投稿で試しました)2024年2月5日 3:56 pm #31540snow参加者エンジニアの端くれとして言わせていただくと、このような場合は関数を作って一連のコードをまとめることを提案します。
2024年2月8日 12:05 pm #31544Applek参加者回答ありがとうございます。
この機能をEmEditorで付けていただくことは御願いできませんでしょうか?
実際に説明しましたような問題は起きています。
おっしゃるように自分でマクロを作ってチェックするということ自体は可能ですがその場合は自分の認識している範囲までしかチェックできません。
一度このようなパターンで失敗して気がついたという後でしか解決しません。
そのためエディターのアイコンに論理矛盾チェックのアイコンをつけてもらう方が早いです。
何卒、ご協力の程、よろしくお願い申し上げます。2024年2月10日 9:48 am #31551Yutaka Emuraキーマスターいつもお世話になっております。江村です。
snow さんも書かれている通り、これは EmEditor が対応するべき機能ではないと存じております。
コードを関数にまとめる方法でも対応できます。もしサンプルが必要であれば、お知らせください。よろしくお願いいたします。
2024年2月10日 12:00 pm #31555Applek参加者ご回答ありがとうございます。
サンプルをお願いいたします。
よろしくお願いいたします。2024年2月11日 1:01 am #31557Yutaka Emuraキーマスターいつもお世話になっております。江村です。
サンプルは、以下の通りになります。
#language = "v8" function BR(fr) { let batch_list = editor.filters; for (let i = 0; i < fr.length; ++i) { batch_list.AddReplace(fr[i][0], fr[i][1], fr[i][2], fr[i][3]); } document.selection.BatchReplace(batch_list, eeReplaceAll, eeExFindRegexOnigmo); } let fr1 = [ ["西", "にし", eeFindReplaceRegExp | eeFindReplaceCase, 0], ["a", "r", eeFindReplaceRegExp | eeFindReplaceCase, 0], ["b", "s", eeFindReplaceRegExp | eeFindReplaceCase, 0], ]; BR(fr1); let fr2 = [ ["北", "きた", eeFindReplaceRegExp | eeFindReplaceCase, 0], ["c", "t", eeFindReplaceRegExp | eeFindReplaceCase, 0], ]; BR(fr2);
よろしくお願いいたします。
- 作成者投稿
- このトピックに返信するにはログインしてください。