|
秀丸の「編集ペイン」の改行文字のコードにかかわらず、
hidemaruGlobal.***やhidemaru.*** の関数(というかメソッドというか)群を通し
て取得したものは、
必ず、\r\nになると考えてよいのでしょうか?
他のところで、最近いくつか投稿していて思ったのですが、(\r\nでも\nでもどちら
でも良いように記述してはいるのですが)
編集ペインの改行文字のモードを「LF」だけにしてみたとしても、
hidemaruGlobal.* やhidemaru.*** を通して取得した文字列は必ず\r\nになっていま
す。
var targetText = gettotaltext(); // lfだけでもtextは\r\nは(多分)確定
var textArr = targetText.split("\n"); // \nだけ指定だけど、\rは空気を読んで
勝手に消す処理がJSエンジン側に元々入っている
var jointext = textArr.join("\n"); // 本来は元通りなハズなんだけど、もちろん
元には戻らない。理由は元は\rがあったから。こちらは空気を読んで自動で追加され
たりはしない。
この辺をどのようにするのが妥当なのかなぁ。といった次第です。
var textArr = targetText.split(/\r?\n/);
for(...) {
}
var joinText = "";
if (targetText.includes("\r\n")) {
// \r\n が改行だったなら、\r\nでくっつける。
joinText = textArr.join("\r\n");
} else {
// \nが改行だったなら\nでくっつける。
joinText = textArr.join("\n");
}
みたいな揺らした処理が妥当なのかどうなのか...
あるいは、改行文字を取得できるような geteol() みたいな関数を得て
var textArr = targetText.split(geteol());
for(...) {
}
joinText = textArr.join(geteol());
みたいなのが妥当なのか。
それとももはや
var targetText = gettotaltext();
var textArr = targetText.split("\r\n");
joinText = textArr.join("\r\n");
console.log(targetText == joinText);
// selectall();
insert(joinText);
とかで「hidemaruGlobal.***やhidemaru.***」を通した関数とやり取りする分には、
\nだけなのか\r\nなのかの「揺れを吸収する」記述を必要性すらないのでしょうか。
|
|