1 件の投稿を表示中 (合計 10 個)
  • 作成者
    投稿
  • #31533
    Applek
    参加者

    お世話になり、ありがとうございます。
    前に送りました以下は不具合ではないのでしょうか?
    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);
    #31534
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    不具合ではありません。

    batch_list = editor.filters;

    を実行すると、batch_list の中身はクリアされます。

    よろしくお願いいたします。

    #31535
    Applek
    参加者

    回答ありがとうございます。
    不具合ではないかもしれませんが、書いたつもりで居るのに閉じ忘れだと、”西”は変換しているつもりでされないまま終わるわけで警告で教えてくれても良いと思います。
    よろしくお願いいたします。

    #31536
    Applek
    参加者

    今気がつきましたが、この掲示板は投稿直後に”編集”と言う赤字の機能を使っても反映しないようです。

    #31539
    snow
    参加者

    横から済みませんが…。
    JavaScriptの言語仕様によるもののため、エディタに求めることではないと感じました。

    それから「編集」は私も良く使っていますが、反映されなかったことはないと思います。
    (実際、たった今この投稿で試しました)

    #31540
    snow
    参加者

    エンジニアの端くれとして言わせていただくと、このような場合は関数を作って一連のコードをまとめることを提案します。

    #31544
    Applek
    参加者

    回答ありがとうございます。
    この機能をEmEditorで付けていただくことは御願いできませんでしょうか?
    実際に説明しましたような問題は起きています。
    おっしゃるように自分でマクロを作ってチェックするということ自体は可能ですがその場合は自分の認識している範囲までしかチェックできません。
    一度このようなパターンで失敗して気がついたという後でしか解決しません。
    そのためエディターのアイコンに論理矛盾チェックのアイコンをつけてもらう方が早いです。
    何卒、ご協力の程、よろしくお願い申し上げます。

    #31551
    Yutaka Emura
    キーマスター

    いつもお世話になっております。江村です。

    snow さんも書かれている通り、これは EmEditor が対応するべき機能ではないと存じております。
    コードを関数にまとめる方法でも対応できます。もしサンプルが必要であれば、お知らせください。

    よろしくお願いいたします。

    #31555
    Applek
    参加者

    ご回答ありがとうございます。
    サンプルをお願いいたします。
    よろしくお願いいたします。

    #31557
    Yutaka 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);
    

    よろしくお願いいたします。

1 件の投稿を表示中 (合計 10 個)
  • このトピックに返信するにはログインしてください。