berryzplus

Results 272 comments of berryzplus

あらためて見直してみて「何故そうしたいのか?」が分からんことに気付きました。 ``` この PR の目的が達成される。     ↓ テストで何らかのNGが見つかったビルドのバイナリが「ダウンロードできる」ようになる。 ``` こうなると嬉しいこと(=メリット)があるから、そうしたいって issue なんだと思います。 問題のあるバイナリを公開することは、それ自体がデメリットだと思います。 ただ、デメリットを上回るようなメリットがあるならやってもええかな?とも思いますけれど。 テストで何らかのNGが見つかったのなら、そのバイナリはダウンロードできるべきでないと個人的には思います。 無論、テストのほうが誤ってる場合は除く :smiley:

考えられる理由はいくつかあります。 1. サクラエディタが排他制御「書き込み禁止」設定になっていて、別窓でファイルを開いている。 2. 別アプリでファイルを書き込みロックしている。 3. 他ユーザーのファイル内の一致を検出したが、OS設定でそのフォルダへの書き込み権限がない。

情報あざっす。 ぼくの認識では、桁位置報告の誤りは既知の問題の認識でした。 サクラエディタの内部では桁をあらわす型がたくさんあるので、 取り違えが起こっているのではと思っています。 * 位置 行データの先頭から何文字目にあたるかを示す * レイアウト位置 レイアウトの先頭から何文字目にあたるかを示す * 桁位置 行データの先頭から何桁目にあたるかを示す * レイアウト桁位置 レイアウトの先頭から何桁目にあたるかを示す * 座標位置 ウインドウのクライアント左端から何px目にあたるかを示す 「桁」という概念は、サクラエディタ特有の考え方だと思っています。 ---- > ----- マクロの結果 2.2.0.1 ----- > From [2, 2]...

プロポーショナルフォント対応は v2.2.0 の目玉の一つと認識しています。 あまりに画期的過ぎる機能がたくさん入った結果、リリース後にゴタゴタしたっていうですね・・・w こちらでも少し見て見ます。

> 66f5d68d3f6a4bbf65b6f02fea35e560298e9a07 ではいっぱい変更点がある。 死ぬほど変更されていて速攻で萎えたんですがw TortoiseGit のログに表示されていた 66f5d68d3f6a4bbf65b6f02fea35e560298e9a07 の変更内容 > 行数: 1239増 784減、ファイル: 変更 = 77 追加 = 0 削除 = 0 置換 = 0 もちろん、GitHubの情報とも一致しています。 > Showing 77 changed files...

> 単に書き間違いかもしれませんが、問題は行ではないです。列です。 たんに書き間違いです。 調べ始めてすぐ気付きました「ま、いっか」的な感じになってました。 ```\bF_GETSEL(LINE|COLUMN)(FROM|TO)\b``` で検索すれば、 マクロからの呼出箇所は1箇所だけであることがわかります。 https://github.com/sakura-editor/sakura/blob/e904d435359cb7db59e0a5346178b33714c597c6/sakura_core/macro/CMacro.cpp#L1629-L1634 呼出行は問題コミットでは触られていません。 ```View->GetSelectionInfo().m_sSelect```が返すモノの中身が変わってるということです。 絵に描いたようなスパゲティコードなので原因追及は手間取りそうです。

う~む、原因っぽいものを見付けました。 似たような変更がたくさんあります。 情報共有のために右矢印キー(→)のハンドラメソッドを例に考え方を解説します。 ---- ここから解説 ```diff diff --git a/sakura_core/cmd/CViewCommander_Cursor.cpp b/sakura_core/cmd/CViewCommander_Cursor.cpp index 8b614a80..711833e4 100644 --- a/sakura_core/cmd/CViewCommander_Cursor.cpp +++ b/sakura_core/cmd/CViewCommander_Cursor.cpp @@ -307,7 +307,7 @@ void CViewCommander::Command_RIGHT( bool bSelect, bool bIgnoreCurrentSelection, const bool nextline_exists...

なんだこれ?な追加関数を発見しました。 https://github.com/sakura-editor/sakura/blob/e904d435359cb7db59e0a5346178b33714c597c6/sakura_core/view/CTextMetrics.h#L59-L66 関数名は描画単位(ピクセル幅)を返す関数のように見えますが、 実装は渡した数値をそのまま返すようになっています。 引数なし版で固定値1を返していることから、 ピクセル幅ではなく桁数を返す関数であるように見えます。 次のアクションをどうしたらいいか分からなくなってきました。 バグとして対応するには影響範囲が大きすぎるので。

某匿名掲示板で「昔cyclemanにまったく同じ質問が投げられてるじゃん」という書込みがありました。 http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?log=unicode&v=2364 掲示板ログでは「これはプロポーショナルフォント対応に伴う仕様変更」と説明されています。 v2.3.0の新機能、とも書いてありますね・・・。 ぼくが見始めたの導入後ですわ・・・。 選択桁位置を取得する関数をどう仕様変更したら 選択桁位置の描画座標を取得する関数になるのか。 理解がおっつかないのはぼくだけなんでしょうか? 登場人物(?)の整理 用語 | 説明 ---- | ---- 文字位置 | 前行の改行(またはファイル先頭)から何個目にあたるか(TCHAR単位) 桁位置 | 行頭からN文字目が何桁目にあたるか(桁単位、半角が1桁、全角は2桁) 描画位置 | ウインドウ左端から何px目にあたるか(デバイス単位) 用語と内部構造をマッピングするとこんな感じ。 用語 | サクラエディタ用語 | 定義型...

> この手の話って今だと、1バイト2バイト文字と同義でなくなってるので、結局スコープ次第なのかなと。 サクラエディタには「ルーラー」(非表示にできない)が付いてるので、 「ルーラーの1目盛り=1桁」と考えればいいと思います。 プロポーショナルフォント対応としては、ルーラー出さないモードも考えたほうが良かったのかな? @beru さん > 両方適用したところ期待する動作になりました。 > 処理内容は全く理解していませんが ~~とりあえずPR出そうと思います~~ PR #738 を作りました。 ではいったんそれをマージする方向でいきますか( #738 へ続く・・・