Skip to content

構造化表示の列をドラッグで並べ替えられるようにする(B19) - #98

Merged
MR-TABATA merged 2 commits into
mainfrom
b19-column-reorder-view-presets
Sep 25, 2026
Merged

MR-TABATA merged 2 commits into
mainfrom
b19-column-reorder-view-presets

Conversation

@MR-TABATA

Copy link
Copy Markdown
Owner

Summary

  • StructuredHeaderViewに列名を掴んで並べ替えるジェスチャーを追加(既存の境界ドラッグ=幅変更とは排他)。対象はcsv/tsv/ndjson、fixedWidthは対象外。並び順は幅と同じくセッション限りで永続化しない。
  • TabularFormatterにmovingColumn/applyingLayoutを追加し、ビュープリセット(Pro・C9、MrkEditor側で別途実装)が使うcore側の継ぎ目(ActiveDocument.columnWidths/columnOriginalIndices、DocumentPane.applyStructuredLayout、MainWindowController.applyViewPreset、ProFeature.viewPresets)を用意。
  • 実機確認で見つけて同日中に直したバグ2件:
    • 列を並べ替えると列名だけ動いて本文データが元の位置のままだった(cells(of:)がcsv/tsvのとき生の区切り分割を位置のまま返していたのが原因。Columnにoriginalindexを持たせて修正)
    • 構造化表示(CSV1行目が太字)をオフにすると本文全体が太字になっていた(NSTextStorage.replaceCharacters(in:with:)が置換範囲の先頭文字の属性を引き継ぐため。復元直後にフォントを揃え直すよう修正)

Test plan

  • swift test 全886件green(既存分含む)
  • python3 scripts/check_consistency.py の pro_gate / downstream_build(MrkEditor側ビルド)通過
  • 実機(配布.app)で列のドラッグ並べ替え・データが追従することを本人が確認
  • 実機で「元のテキストに戻す」後に太字が残らないことを本人が確認

🤖 Generated with Claude Code

MR-TABATA and others added 2 commits September 25, 2026 14:28
StructuredHeaderViewの列名を掴んで並び替えるジェスチャーを追加。境界をつまむ既存の
幅変更(B7)とは排他な別ジェスチャーとして実装(境界ヒットが先勝ち)。対象はcsv/tsv/
ndjsonで、fixedWidthは対象外(項目=桁位置そのものなので並べ替えの意味が薄い)。
並び順は幅と同じくセッション限りで永続化しない。

TabularFormatterにmovingColumn/applyingLayoutを追加し、ビュープリセット(Pro・C9)
が使うcore側の継ぎ目(ActiveDocument.columnWidths/columnOriginalIndices、
DocumentPane.applyStructuredLayout、MainWindowController.applyViewPreset、
ProFeature.viewPresets)も合わせて用意した。

実機確認で見つけて同日中に直したバグ2件:
- 列を並べ替えると列名だけ動いて本文データが元の位置のままだった。cells(of:)がcsv/tsv
  のとき生の区切り分割を位置のまま返していたのが原因。Columnにoriginalindexを持たせ、
  表示順へ引き直すようにした。
- 構造化表示(CSV1行目が太字)をオフにすると、戻した本文全体が太字になっていた。
  NSTextStorage.replaceCharacters(in:with:)が置換範囲の先頭文字の属性を引き継ぐため。
  復元直後にtextView.fontを明示的に揃え直すようにした。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
v1.18.0(ローカルAI)は既にタグ・GitHub Releaseとも公開済みだったが、版文字列と
リリース文書の更新が漏れており、check_consistency.pyのpro_gate以外の版チェックで
CIが落ちていた(B19/C9のPRとは無関係の既存の抜け)。

版: AppInfo.fallbackVersion / make_app.sh / make_dmg.sh / LPバッジ・DLリンクを
1.17.0→1.18.0に統一。
文書: README(日英)・リリース全史(web/releases.src.html)に1.18.0の行/eraを追加。
内容は本人が既にGitHub Releaseへ書いていたリリースノート(Ollamaのローカル追加・
検索欄の最近の検索・Markdown/主要言語の構文ハイライト・フィルタ中の置換ボタンの
バグ修正)を元にした。前版1.17.0の「✅(このリリース)」は「✅(1.17.0)」へ降格。
build_site.pyでsite/を再生成。

一貫性チェッカ ✅ 全項目通過。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@MR-TABATA
MR-TABATA merged commit a6b6177 into main Sep 25, 2026
1 check passed
@MR-TABATA
MR-TABATA deleted the b19-column-reorder-view-presets branch September 25, 2026 05:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant