Sakura: [仕様変更提案] テキストの折り返し方法のデフォルトを 「折り返さない」に変更しませんか?

Created on 16 Jul 2018  ·  27Comments  ·  Source: sakura-editor/sakura

テキストの折り返し方法のデフォルトを変更しませんか?

現状の仕様では、 テキストの折り返し方法 として、デフォルト値として
指定桁で折り返す (WRAP_SETTING_WIDTH) が使われます。

しかし、notepad や Visaul Studio などでは、折り返さない (WRAP_NO_TEXT_WRAP) が
デフォルト値として使われます。

私はサクラエディタを使うときいつも手動で 折り返さない の設定に変えていて
不便に思っているのてすが、折り返さない をデフォルトに変えませんか?

https://github.com/sakura-editor/sakura/blob/757d43bbd1dec174de540aabb25c287db874ad81/sakura_core/types/CType.cpp#L156

の部分で WRAP_SETTING_WIDTH を WRAP_NO_TEXT_WRAP に変えたら実現できるのは確認しています。

```
--- a/sakura_core/types/CType.cpp
+++ b/sakura_core/types/CType.cpp
@@ -153,7 +153,7 @@ void _DefaultConfig(STypeConfig* pType)
/* タイプ別設定の規定値 /
/
*******/

  • pType->m_nTextWrapMethod = WRAP_SETTING_WIDTH; // テキストの折り返し方法 // 2008.05.30 nasukoji
  • pType->m_nTextWrapMethod = WRAP_NO_TEXT_WRAP; // テキストの折り返し方法 // 2008.05.30 nasukoji
    pType->m_nMaxLineKetas = CKetaXInt(MAXLINEKETAS); /* 折り返し桁数 /
    pType->m_nColumnSpace = 0; /
    文字と文字の隙間 /
    pType->m_nLineSpace = 1; /
    行間のすきま */
    ````
specification change

All 27 comments

異議なしです。

しばらく待って反対なければ PR します。

個人的には .txt は折り返した方が自然かなと思います。

↑ 具体的にテキストをデフォルトで、折り返すエディタって他にありますか?

個人的には .txtは折り返した方が自然かなと思います。

これ、実は、個人的には同意なんです。(あら、なんか矛盾してるかな)

テキストを漏れなく画面に出すテキストエディタって位置づけは、折り返すほうが正しい気がしてます。

ようは、メモ帳に異議を唱えたいんですが、メモ帳っと合わせましたって言葉に反論する余地もありません。

ここは「サクラどうすんねん!!!」ってところかなと。

「.txtは折り返す」がデフォルトって事にできるのかな・・・

txt の拡張子のファイルで、中身がログデータってことがよくあるので、折り返さない方が個人的には便利です。

普通の文書の場合は大抵見やすいように、書き手が
適度に改行を入れてるんじゃないかと思ってます。

折り返しはタイプ別設定なので、「基本」と「テキスト」は別に設定できそうです。

現状、指定桁で折り返す(=桁10240)です。
この値がデフォルトになった理由はよく分からん、という書込みを掲示板で見たことあります。

ログファイルの話が出ましたけど、以前どこかで「ログファイル(*.log)」だけ排他制御をしないように変えてほしいという要望を見ました。内部的な仕組みを調整しないといかんのですが、やってもいいかな、と思っています。

テキストファイルの改行は・・・会議のメモ書きとかネタ集め用の雑記ファイルとか、他人に見せることを想定しないようなテキストファイルも世の中には結構存在している気がします。一概にどっちとは言えないんじゃないかみたいなことを思いました。

↑ 具体的にテキストをデフォルトで、折り返すエディタって他にありますか?

テキスト限定でというのは知らないですね。VimやEmacsはデフォルトで折り返しですが、Visual Studio Code とか Atom のような最近のエディタがどうなのかは気になるところ。

そうですね。VIは、折り返しですよねぇ。ここは決めかなぁ。
個人的希望は「基本」とか言語系は折り返さないで「テキスト」だけ画面の端で折り返すかなぁ。。。

ログファイルは、確かに排他制御しないでって気持ちはわかりますが、参照モードで開く意識は持ってほしいかな(笑)

Visual Studio Code とか Atom のような最近のエディタがどうなのかは気になるところ。

Visual Studio Code と Atom ともにテキストファイルの場合には折り返されなかったです。
appveyor.md は両方共折り返されました。

サクラの祖先がVIだとすればデフォルトはすべて折り返す、でも、
サクラの祖先がメモ帳だとすればデフォルトはすべて折り返さない、
でしょうかね、折り返すにしても1024じゃなくて、画面の端が合ってる気がします。

この値がデフォルトになった理由はよく分からん、という書込みを掲示板で見たことあります。

これ、昔の薄い記憶ですが、右端で折り返すが無かったような(ちがったかな。。。)、
で折り返さないもある程度の桁数行くと落ちてたような(ちがったかな。。。)、
私の代々引き継いでいるiniファイルも、なぜか、指定行で折り返すの120になってます(笑)

デフォルト値なので、バージョンアップする人には影響ないでしょうし、変える人は今まで通り変えると思うので、 @m-tmatma さん提案の通りでメモ帳に合わせるでいいかと思うのですが、
いかがでしょう皆さん。

とりあえず PR 投げました。

すみません、流れ追い切れていませんが、おおむね「デフォでは折り返さない」で問題無さそう、という合意がとれたという感じでしょうか。

僕個人は「どっちでもいい」スタンスです。

おおむね「デフォでは折り返さない」で問題無さそう、という合意がとれたという感じでしょうか。

最後まとめてみましたが、 @k-takata さんがOk.であれば、おおむねデフォは折り返さないでいいかなって感じです。

結局個人的にどっちが自然かって話なのですが、エディタによって振舞いがまちまち(いろんな経緯や生い立ちによるものなので、扱うデータに対してどうかってことで決まってるわけではないのかもしれませんが、結局logやtxtや基本にたいして、メモ帳互換でいいのかなってことで)

ログ読み追い付きました。
いろんなツールとの比較が出ていますが、個人的に最もしっくりくるのは「notepad に合わせる」ですね。

というのはそもそも vim 等はターミナルベースのツールですし、Visual Studio は IDE ですし、いろいろとソフトウェアの根本思想が違うものと比較することに意味が無いとは言いませんが、少し観点がずれてしまいかねないのでは、と思いました。

その中で、唯一根本思想が近そうに見えるのが notepad で、その notepad のデフォルトが「折り返さない」のであればそれに合わせるのがなんとなく順当に思いました。

 

…とはいえ notepad 自体がなかなかのくせ者(特に少し前に話題になった、折り返しで変な改行コードが入っちゃう挙動が放置されていたのとか)なので、毎回参考にするつもりもありませんが、今回に限っては notepad に合わせるのがなんとなくの正解に近い気がしました。

私自身はどちらでもよいです。
ただ、現状の設定に慣れた人から文句は出ないだろうかという点が気になりますが、

デフォルト値なので、バージョンアップする人には影響ないでしょうし、

影響ないのならよいと思います。

影響ないのならよいと思います。

現状のデフォルトが、1024で折り返しなので、実質折り返さないのと変わらないかぁというのが所感です。
おっしゃる通り、これが画面の端で折り返すがデフォルトだったらどうかなとはおもいました。

現状のデフォルトが、1024で折り返しなので、実質折り返さないのと変わらないかぁというのが所感です。

10240、ですね。
で、実際にデフォルトを「折り返す」から「折り返さない」に変えても、実質の挙動は変わらないという。

「折り返さない」設定にした状態で文字打ち込みまくってみると自動的に(おそらくパフォーマンス都合で)10240文字単位で折り返されるんですよね。このリミットの値と折り返しのデフォルト文字数が変わらないから、特段違いが分からないという。

今回の提案の目的をはっきりさせたいのですが、
「挙動を変えたい(?)」のか「メニューの表示上の見た目をそれらしくしたい」のかまたは別の何かなのか、どこに目的を据えた提案なのでしょうか。

10240

おお、見誤ってますね、失礼しました。

どこに目的を据えた提案なのでしょうか。

これは、最初の提案の「折り返さない」をデフォルトにしたいって他意はないのかなと思いますが、

10240文字単位で折り返されるんですよね。

これがあるとなると、折り返さない=10240文字で折り返すと動議ってことになっちゃうってことですよね。。。

で、お手本にしようとした、メモ帳は、1024文字で2行目になってますね。。。改行なくても。

@KENCHjp さん

これ、昔の薄い記憶ですが、右端で折り返すが無かったような(ちがったかな。。。)、
で折り返さないもある程度の桁数行くと落ちてたような(ちがったかな。。。)、

ワードラップは意外と高度な機能なので、後発で実装された認識です。
現代のメモ帳には「右端で折り返す」の機能が付いていますが、結構新しい機能だと思います。

サクラエディタの「右端で折り返す」は内部的に巨大な仮想ビットマップを作るイメージなので、
あまり大きな桁数になるとメモリ不足を引き起こして落ちると予想されます。
仮想ビットマップ1枚の最大サイズは垂直・水平方向ともに65535(=16bit最大値)なので、
1文字の文字幅が6pxとすると10000文字ちょっとで理論限界値を超える計算になります。
(ちなみにこの6pxというのは半角文字の標準的な文字幅です。)

色々はしょってるのであまり正確じゃないんですが、
デフォルト設定が「10240桁で折り返す」になっている理由はたぶんこれです。
実際の描画処理では、1枚で足りなければ2枚目の仮想ビットマップを作って並べるだけです。

まぁ、試してみる価値はあると思います。

1行に10240個の"W"を含むファイルを作って、
10個ずつ個数を増やしていって問題が起きるか起きないか見てみるという実験。

きっと問題は起きません。
起きたとしてもそれは別な問題(無駄な描画計算をしている)であるような気がします。

デフォルト設定が「10240桁で折り返す」になっている理由はたぶんこれです。

なるほどです。私が1024と見間違えて状況混乱させちゃってますが。

てことは、このIssueの前後で実は仕様は変わらないって事で、より現状のほう(10240で折り返す)が正しく仕様を表してるってことになるのかな、いかがでしょう?> @m-tmatma さん

やってみた結果、折り返さないにしてもデフォルト設定の位置で折り返されました。

う~む、10240桁の根拠がやはり謎です。
1桁6px換算×10240桁≒65535の制限を気にしているなら、フォントサイズが変わったときの1桁の基準幅変更を考慮しないといかんはずなのです。

「MS ゴシック」の最大サイズ72ptを試してみたんです。
72ptは標準(MSゴシック9pt)の8倍です。6pxの8倍だから48px。

結果、72ptの10240桁が普通に表示できました。
これはつまり、「仮想描画領域の幅が65535pxを超えても大丈夫」ということを示します。

う~む・・・(じゃあなんで制限かけてるんだろう?

実験に使ったテキストファイル
w40800.zip
40800個の"W"が並んだファイルです。自分で試してみた人は使ってください。

上記ファイルを生成するために使ったプログラム
sakura_column_testutils.zip
別の目的で作り始めた CMakeLists.txt プロジェクトです。

で、このPRどうします?

デフォルト設定値を変えよう、には同意で、
修正によってデフォルト値が変わることも確認済み。
他に害を与えなさそうなことも確認済み。
ただ、実際の挙動が一切変わらないってことも確認済み。
(「折り返さない」を指定しても10240桁で強制的に折り返しされるから。)

う~む・・・。

で、このPRどうします?

@m-tmatma さん意向でキメでいいかなと思いますが、実際の挙動は変わらないにしても、
デフォルトは「折り返さない」でいいかなと(PR的にはGo)、
意図としては「折り返してほしくない」の意思表示。
実装が10240文字が増えてもこのデフォルト値の意図は変わらないかなと。

折り返さないのが、デフォルトがいいと思います

折り返さないのが、デフォルトがいいと思います

では取り込むで一致!

Was this page helpful?
0 / 5 - 0 ratings