テキストの折り返し制御を機能アップします。 従来の固定幅での折り返しに加えて、「折り返しなし (水平スクロールバーがテキストの幅に追従)」と 「右端で折り返し(折り返し位置がウィンドウサイズ に追従)」を追加します。
ただし、サクラエディタの最大桁が10240ですので、 「折り返しなし」に設定しても半角10240桁以上の テキストは折り返しが発生します。
関連議論:dev:5299
テキスト折り返し方法の追加
負荷軽減と右端に行けなくなる不具合の修正
Logged In: YES user_id=1930530 Originator: YES
以下の修正を行いました。
1.1行が10240桁を超えるとスクロールバーで右端に 移動できなくなる不具合を修正 2.以下の走査を除いて全ラインの走査を実行しない ようにした(負荷軽減) ・最大幅の行で改行を入力する ・最大幅の行を含んで削除を実行する
File Added: 080604_01_TextWrapControl_a1364.zip
負荷軽減と置換時のスクロールバー更新不具合の修正
1.置換ダイアログで置換を実行したとき、 スクロールバーの幅が更新されない不具合を修正 (dev:5322,5324) 2.最大幅の行での文字削除によるカーソル行 アンダーラインのちらつきを軽減した 3.最大幅の行で改行を入力した場合でも、行頭かつ 文字列非選択の場合は全ラインの走査を実行 しないようにした(負荷軽減)
File Added: 080605_01_TextWrapControl_a1364.zip
処理見直しと最大幅算出に失敗する場合がある不具合の修正
1.「右端で折り返す」かつウィンドウ分割時にウィンドウ サイズを変更するとChangeLayoutParam()が分割数だけ 呼び出されてしまうので、m_nWrapPositionをCEditView からCEditDocの変数に変更した。 2.「右端で折り返す」にて編集領域がMINLINESIZE(現状10桁) 未満となるようなサイズに変更した場合、折り返し幅を MINLINESIZEとする。 3.「折り返しなし」にてタイプ別設定で設定された折り 返し幅より長いファイルを開くと、最大幅の行の算出に 失敗する不具合を修正。 4.「折り返しなし」時のTAB幅変更マクロで引数が0の時は 全ライン走査しない様に変更。 5.「折り返しなし」時OnSize()での最大幅算出を止めて TAB幅変更時、設定変更時、ファイルオープン時に実行 する様に変更。 6.「指定幅で折り返す」以外の時SetLayoutInfo()の前で 折り返し幅を設定する様に変更。
File Added: 080607_01_TextWrapControl_a1372.zip
折り返しなしの機能縮小
1.080607_01_TextWrapControl_a1372に対して、 「折り返しなし」設定時は折り返し幅を10240桁に 設定するのみとした(「折り返しなし」実装途中のため) 2.折り返し方法の初期値を「指定幅で折り返し」に変更した。
まずは「右端で折り返す」機能の完成を目指しまする (^^;
File Added: 080607_02_TextWrapControl_a1372.zip
既存機能も含む細部の修正
Logged In: YES user_id=1480046 Originator: NO
基本路線としてなすこじさんのパッチで筋の良い感じだったので、 それをもとに既存機能も含め細部に修正を加えてみました。
1. 「右端で折り返す」以外の折り返し方法で、ぶら下げが見える位置まで スクロールバーでスクロールできるようにしました。 (「右端で折り返す」の場合の左上隅以外のビューも同様)
2. 「右端で折り返す」で行番号の桁数が変わるような編集にも追従して 折り返し桁が変わるようにしました。
3. UI部分の表記を一部変更・統一しました。 大差無いけど”なんとなく”変更したものもあります。 従来の「現在のウィンドウ幅で折り返し/折り返さない」コマンドは、 紛らわしい感じなので「折り返し桁数」に名称変更しています。 (メニューでも具体的な桁数を表示して違いがわかるようにしたつもり)
4. [タイプ別設定]-[スクリーン]の画面レイアウトを調整し、 ショートカットキーの設定が無かったものには追加しました。 レイアウト調整では、画面のスケールを120DPIにした場合でも 文字が欠けないようにしておきました。 (とりあえずこの画面だけですけど)
5. その他もろもろの修正。 マクロ記録でコメントに「折り返し方法」が記録されるように、とか。 不要と思われる変数を削除したり。
File Added: 080610_01_TextWrapControl_a1380.patch
レイアウト更新契機の修正
最新rev(1381)にあわせてパッチ修正しました。
>2. >「右端で折り返す」で行番号の桁数が変わるような編集にも追従して >折り返し桁が変わるようにしました。
PostMessage()を使ってレイアウト更新を後でするようにしていた のですが、それではちょっとまずそうなので、その部分を変更して います。
●PostMessage()での問題点 マクロで複数の編集操作を一括実行した場合、メッセージは マクロが完了してから届くのでレイアウト更新もマクロが 完了してからになる。 手操作だと編集操作ごとにレイアウト更新されるので、 同じ操作手順でも結果が異なる場合がある。
コマンド実行ごとに処理の最終段階でレイアウト更新する ように変更しました。 (アンドゥ登録&全ビュー更新のタイミング)
File Added: 080611_01_TextWrapControl_a1381.patch
インデント、コメント修正
インデントが変なところがあったので修正しました。m(__)m (見た目だけの修正です) File Added: 080611_02_TextWrapControl_a1381.patch
ソースコードおよび動作を確認しました。
細やかな修正ありがとうございます m(_ _)m リソースの手修正を忘れてるとか人のコードをコピペしたのに コメントを変更し忘れてるとか情けないのも色々ありましたね (^^;
私はこの状態でコミットOKだと思うのですが、ちょっと大きめの 修正で既存機能に少し影響があるという事を考えると、テスト版 でも発行して暫く(2週間くらい?)様子見とかすべきでしょうかね?
でも、使いたい人がいなかったりすると様子見してもしょうがない という事も……
画面ちらつき修正、桁数変更(Ctrl+Alt+U)の制限撤去、桁変更マクロ追加
いくつか修正を加えました。
1.画面ちらつきの抑制 大きめのファイル(数千行程度)を「右端で折り返す」の設定で 開いていて、画面サイズ変更に伴って画面スクロールが発生する ようなとき、画面が激しくちらつくのでちらつきを抑えるように 修正しました。
2.折り返し桁数変更(Ctrl+Alt+U)の制限撤去 「折り返さない」「右端で折り返す」の設定になっているときでも 桁数変更ができるようにしました。 桁数変更したら折り返し方法は自動的に「指定桁で折り返す」に なるようにしています。
3.折り返し桁変更マクロ(ChangeWrapColm)を追加 任意の桁数に折り返し位置を変更するマクロ関数です。 実行すると折り返し方法は自動的に「指定桁で折り返す」に なります。 File Added: 080621_01_TextWrapControl_a1389.patch
UNICODE版 rev1395-1398 にあわせて修正しました。
折り返しの右余白計算方法の変更 オプションなし:余白なし 改行ぶら下げ :余白2桁追加 句読点ぶら下げ:余白2桁追加
右端で折り返すときに折り返し基準の縦線が常時見える ように表示桁数計算を変更(1ドット分) File Added: 080622_01_TextWrapControl_a1399.patch
折り返しの右余白計算方法の変更
変更部分のソースコードおよび動作を確認しました。 ・画面ちらつき抑制 ・Ctrl+Alt+Uの制限撤去 ・折り返し桁変更マクロ ・折り返しの右余白計算方法の変更 ・折り返し位置の縦線
rev1415でcommitしました。
Log in to post a comment.
テキスト折り返し方法の追加
負荷軽減と右端に行けなくなる不具合の修正
Logged In: YES
user_id=1930530
Originator: YES
以下の修正を行いました。
1.1行が10240桁を超えるとスクロールバーで右端に
移動できなくなる不具合を修正
2.以下の走査を除いて全ラインの走査を実行しない
ようにした(負荷軽減)
・最大幅の行で改行を入力する
・最大幅の行を含んで削除を実行する
File Added: 080604_01_TextWrapControl_a1364.zip
負荷軽減と置換時のスクロールバー更新不具合の修正
Logged In: YES
user_id=1930530
Originator: YES
以下の修正を行いました。
1.置換ダイアログで置換を実行したとき、
スクロールバーの幅が更新されない不具合を修正
(dev:5322,5324)
2.最大幅の行での文字削除によるカーソル行
アンダーラインのちらつきを軽減した
3.最大幅の行で改行を入力した場合でも、行頭かつ
文字列非選択の場合は全ラインの走査を実行
しないようにした(負荷軽減)
File Added: 080605_01_TextWrapControl_a1364.zip
処理見直しと最大幅算出に失敗する場合がある不具合の修正
Logged In: YES
user_id=1930530
Originator: YES
1.「右端で折り返す」かつウィンドウ分割時にウィンドウ
サイズを変更するとChangeLayoutParam()が分割数だけ
呼び出されてしまうので、m_nWrapPositionをCEditView
からCEditDocの変数に変更した。
2.「右端で折り返す」にて編集領域がMINLINESIZE(現状10桁)
未満となるようなサイズに変更した場合、折り返し幅を
MINLINESIZEとする。
3.「折り返しなし」にてタイプ別設定で設定された折り
返し幅より長いファイルを開くと、最大幅の行の算出に
失敗する不具合を修正。
4.「折り返しなし」時のTAB幅変更マクロで引数が0の時は
全ライン走査しない様に変更。
5.「折り返しなし」時OnSize()での最大幅算出を止めて
TAB幅変更時、設定変更時、ファイルオープン時に実行
する様に変更。
6.「指定幅で折り返す」以外の時SetLayoutInfo()の前で
折り返し幅を設定する様に変更。
File Added: 080607_01_TextWrapControl_a1372.zip
折り返しなしの機能縮小
Logged In: YES
user_id=1930530
Originator: YES
1.080607_01_TextWrapControl_a1372に対して、
「折り返しなし」設定時は折り返し幅を10240桁に
設定するのみとした(「折り返しなし」実装途中のため)
2.折り返し方法の初期値を「指定幅で折り返し」に変更した。
まずは「右端で折り返す」機能の完成を目指しまする (^^;
File Added: 080607_02_TextWrapControl_a1372.zip
既存機能も含む細部の修正
Logged In: YES
user_id=1480046
Originator: NO
基本路線としてなすこじさんのパッチで筋の良い感じだったので、
それをもとに既存機能も含め細部に修正を加えてみました。
1.
「右端で折り返す」以外の折り返し方法で、ぶら下げが見える位置まで
スクロールバーでスクロールできるようにしました。
(「右端で折り返す」の場合の左上隅以外のビューも同様)
2.
「右端で折り返す」で行番号の桁数が変わるような編集にも追従して
折り返し桁が変わるようにしました。
3.
UI部分の表記を一部変更・統一しました。
大差無いけど”なんとなく”変更したものもあります。
従来の「現在のウィンドウ幅で折り返し/折り返さない」コマンドは、
紛らわしい感じなので「折り返し桁数」に名称変更しています。
(メニューでも具体的な桁数を表示して違いがわかるようにしたつもり)
4.
[タイプ別設定]-[スクリーン]の画面レイアウトを調整し、
ショートカットキーの設定が無かったものには追加しました。
レイアウト調整では、画面のスケールを120DPIにした場合でも
文字が欠けないようにしておきました。
(とりあえずこの画面だけですけど)
5.
その他もろもろの修正。
マクロ記録でコメントに「折り返し方法」が記録されるように、とか。
不要と思われる変数を削除したり。
File Added: 080610_01_TextWrapControl_a1380.patch
レイアウト更新契機の修正
Logged In: YES
user_id=1480046
Originator: NO
最新rev(1381)にあわせてパッチ修正しました。
>2.
>「右端で折り返す」で行番号の桁数が変わるような編集にも追従して
>折り返し桁が変わるようにしました。
PostMessage()を使ってレイアウト更新を後でするようにしていた
のですが、それではちょっとまずそうなので、その部分を変更して
います。
●PostMessage()での問題点
マクロで複数の編集操作を一括実行した場合、メッセージは
マクロが完了してから届くのでレイアウト更新もマクロが
完了してからになる。
手操作だと編集操作ごとにレイアウト更新されるので、
同じ操作手順でも結果が異なる場合がある。
コマンド実行ごとに処理の最終段階でレイアウト更新する
ように変更しました。
(アンドゥ登録&全ビュー更新のタイミング)
File Added: 080611_01_TextWrapControl_a1381.patch
インデント、コメント修正
Logged In: YES
user_id=1480046
Originator: NO
インデントが変なところがあったので修正しました。m(__)m
(見た目だけの修正です)
File Added: 080611_02_TextWrapControl_a1381.patch
Logged In: YES
user_id=1930530
Originator: YES
ソースコードおよび動作を確認しました。
細やかな修正ありがとうございます m(_ _)m
リソースの手修正を忘れてるとか人のコードをコピペしたのに
コメントを変更し忘れてるとか情けないのも色々ありましたね (^^;
私はこの状態でコミットOKだと思うのですが、ちょっと大きめの
修正で既存機能に少し影響があるという事を考えると、テスト版
でも発行して暫く(2週間くらい?)様子見とかすべきでしょうかね?
でも、使いたい人がいなかったりすると様子見してもしょうがない
という事も……
画面ちらつき修正、桁数変更(Ctrl+Alt+U)の制限撤去、桁変更マクロ追加
Logged In: YES
user_id=1480046
Originator: NO
いくつか修正を加えました。
1.画面ちらつきの抑制
大きめのファイル(数千行程度)を「右端で折り返す」の設定で
開いていて、画面サイズ変更に伴って画面スクロールが発生する
ようなとき、画面が激しくちらつくのでちらつきを抑えるように
修正しました。
2.折り返し桁数変更(Ctrl+Alt+U)の制限撤去
「折り返さない」「右端で折り返す」の設定になっているときでも
桁数変更ができるようにしました。
桁数変更したら折り返し方法は自動的に「指定桁で折り返す」に
なるようにしています。
3.折り返し桁変更マクロ(ChangeWrapColm)を追加
任意の桁数に折り返し位置を変更するマクロ関数です。
実行すると折り返し方法は自動的に「指定桁で折り返す」に
なります。
File Added: 080621_01_TextWrapControl_a1389.patch
Logged In: YES
user_id=1480046
Originator: NO
UNICODE版 rev1395-1398 にあわせて修正しました。
折り返しの右余白計算方法の変更
オプションなし:余白なし
改行ぶら下げ :余白2桁追加
句読点ぶら下げ:余白2桁追加
右端で折り返すときに折り返し基準の縦線が常時見える
ように表示桁数計算を変更(1ドット分)
File Added: 080622_01_TextWrapControl_a1399.patch
折り返しの右余白計算方法の変更
Logged In: YES
user_id=1930530
Originator: YES
変更部分のソースコードおよび動作を確認しました。
・画面ちらつき抑制
・Ctrl+Alt+Uの制限撤去
・折り返し桁変更マクロ
・折り返しの右余白計算方法の変更
・折り返し位置の縦線
Logged In: YES
user_id=1480046
Originator: NO
rev1415でcommitしました。