sakura
sakura copied to clipboard
OSDN転載: ヘルプファイルの不具合
以下、OSDNより転載します。 https://osdn.net/projects/sakura-editor/forums/34071/42606/
ヘルプファイルに不具合が数点あります。 Version: いつのバージョンからかはわかりませんが、V.2.4.1(Beta)以前、V2.2.0 などで確認できるものもあります
不具合(?)事項: 1, 検索・置換のダイアログに関するヘルプの最下部の[上検索][下検索]のリンク先がおかしい 対象:ヘルプ目次→コマンド概要→「検索(S)」メニュー→検索... または 置換... のページ 最下部にある [上検索]リンク が 次を検索 のページに、 [下検索]リンク が 前を検索 のページにそれぞれ逆に繋がっている。 #1338
2, マクロリファレンスにある検索・置換マクロのオプションの記載値が古い 記載時期が古いからだと思われるが、Version 2.1.0.0以降の新しいオプション値の記載がない。 キーワード検索の方だとマクロリファレンスの方が探しやすいが、そちらが古いので使いにくい #1344
3, レイアウト座標とロジック座標に対する表記ゆれ プロポーショナル対応追加に関連する、レイアウト座標・ロジック座標に対して 折り返し座標、折り返し単位、改行単位など表現に表記ゆれが多く、 表示上処理の折り返しか、改行区切り文字由来のなのか分かりにくい。 Version がBetaになってsakura.chmの記載が少し改善されたが、できれば他の関数も一貫して区別してほしい。
4, レイアウト関連仕様が(マクロ)リファレンスに無い 現状のプロポーショナルフォント対応関連の仕様を、マクロリファレンスかどこかに記載してほしい。 サクラのUnicode対応は現時点では古く、また組み文字・ゼロ幅・制御文字等の対応が不完全なので、 それらが含まれる絵文字や記号などが入ると取得幅・表示幅が不正確になりやすいが、ユーザーからはわかりにくいため。
1 は修正PR作りました。
2 はソースから拾って更新したらいいのかな?(めんどくさいです。
3は「表記ゆれがある」というか、概念が分かりづらいんじゃないでしょうか。
- 折り返し座標 レイアウト座標(行・桁)のことです。折り返しを考慮します。
- 折り返し単位 行を数えるときの単位で、折り返し改行を考慮します。レイアウト単位です。
- 改行単位 行を数えるときの単位で、折り返しを考慮しません。ロジック単位です。
4はリファレンスを書きづらいです。
リファレンスを書く、ということは現状の振る舞いを「仕様」として固定することです。
レイアウト取得のマクロ関数には リファレンスに反映されていない不適切な変更
が見つかっていて、どこかでなんとかせにゃならん、という話題が既出です。個人的には「プロポーショナルフォント対応とCSVモード」をrevertしてしまいたいと考えています。だから、書きづらい・・・。
関連: #326
@berryzplus さん 皆さん とりあえず転載しましたが、もちろん全部依頼通り修正するものではないという認識でおります。
>1 は修正PR作りました。 了解です。
>2 はソースから拾って更新したらいいのかな?(めんどくさいです。 こちら理想はドキュメンターほしいかと思っています(指摘してくれた人にやんわり合流依頼w)
>3は「表記ゆれがある」というか、概念が分かりづらいんじゃないでしょうか。 この前提で、こちらもドキュメンターに全体見通しながら直してもらえるといいのかなと(超理想論)
>4はリファレンスを書きづらいです。 >リファレンスを書く、ということは現状の振る舞いを「仕様」として固定することです。 こちらは問題を抱えている旨および将来やろうとしている方向性(revertするかも等)をASISで書いておくことが現メンバーのできる事なのかなと思いました。 「このような仕様になっています」はかっつり組みあがってからでいいのかなと。かっつり組みあがる日が来るのかあれですが(ネズミの夢の国のようなの永遠に増築するコンテンツなのかも・・・)
折り返し座標
という記述は存在しないことが判明...。
超ショックな事実が判明しました。
過去の修正履歴にこんな記述がありました。 https://github.com/sakura-editor/sakura/blob/5e9dd8faa1e88fa2a74639abbb9c0571d9d74f56/help/sakura/res/HLP_HISTORY.html#L71-L72
表記ゆれ対策として、物理行をレイアウト行に修正してるらしいんです。
物理行ってのはCDocLineのこと
でレイアウト行 CLayout
とは異なるエンティティです。
修正するなら、物理行=論理行=ロジック行でした・・・。
ちょっと調べて見ました。
https://sakura-editor.github.io/bbslog/sf/ansi/1743.html
げんた氏とberryzplusさんの「物理行=論理行=ロジック行」というのは誤解でしょう。
でもやざき氏の発言の「論理行」と「レイアウト行」で統一というのはソース履歴を見ると反映されていない気がします。
ので、このコメントを鵜呑みにしては危ういです。
https://sourceforge.net/p/sakura-editor/code/2322/tree/sakura/trunk/sakura_core/CLayoutMgr.h#l128
https://sourceforge.net/p/sakura-editor/code/HEAD/tree/sakura/trunk/sakura_core/CEditWnd.h#l207
古いサクラエディタではCaretPos_Phys2Log
、CaretPos_Log2Phys
とCEditWndにSavePhysPosOfAllView
、RestorePhysPosOfAllView
関数があり
Phys=フィジカル=物理行=レイアウト行=CLayout=折り返し単位
Log=ロジカル=論理行=ロジック行=CDocLine=改行単位
という風に建前上はなっているようです。
ただ非常にややこしいのは事実でありPhysは変更されてLayoutToLogic
などに改名されています。
現在のソースコードのコメントは、さっと見た感じ物理行はどちらの意味でも混在していて、正しく使われていない場所がたくさんある、みたいです。
ヘルプ上の記述もどれだけ正しいかは、神のみぞ知るって感じでしょう。
すまんです。嘘つきました。 寝て起きたら旧Physicalという単位があったのを思い出して、ココ見たら指摘がありました。 修正当時、物理行=レイアウト行で合ってますね。
サクラエディタの開発の歴史において、こういうパラダイムシフトがあったんではないかと思います。
①当初の設計思想: 目に見えるもの = 物理エンティティ。 つまり、物理行 = レイアウト行。
↓
②後年の設計思想: 「行」ってそもそも論理エンティティじゃね? つまり、物理行 = ロジック行。
ぼく自身は後者よりの発想でとらえています。
1は対応完了しました。 #1338 2はレビュー待ちっす。 #1344 3は対応が難しいのでちょっとずつやります。 4はそのうちやりますが、すぐには終わらんです。