Skip to content

feat!: consolidate CLI options around --paging (0.10.0). - #14

Merged
halkn merged 3 commits into
mainfrom
refactor/cli-options
Oct 2, 2026
Merged

halkn merged 3 commits into
mainfrom
refactor/cli-options

Conversation

@halkn

@halkn halkn commented Oct 1, 2026

Copy link
Copy Markdown
Owner

#13 の上に積んだ PR。#13 のマージ後に base を main へ変える。

変更理由

CLI のオプションを整理する。互換性を壊す変更を含むので 0.10.0 に上げる。

変更内容

互換性を壊す変更

0.9.0 0.10.0
-p, --pager / --no-pager --paging <auto|always|never>(既定 auto)
--plain 廃止。--color never を使う
--images <WHEN> 表示名を --images <MODE> にした(受け付ける値は同じ)
  • --watch と組み合わせられないものは、--no-pager から --paging never に変わった。config の watch = true を黙って無視する条件も同じ。
  • 次の usage error は無くなった: --pager --no-pager、--plain --color always。
  • config のキーと値は変わらない。

内部の整理

  • --color / --hyperlinks / --paging の値の型を共通の When にまとめた(ColorWhen と HyperlinkWhen は同じ定義だった)。
  • Cli::resolve(ctx) -> Settings を追加した。フラグと端末の状態から決まるもの(出力先・色・リンク・画像・実効の mermaid mode など)を 1 回で解決し、main.rs はその結果を読むだけにした。
  • config.rs に flag_keys! を置いた。Config・TOML の生の構造体・解析・Cli への適用を、キー 1 行の表から生成する。前はキーを足すたびに 4 箇所を書き換える必要があった。
  • --highlight <auto|never> は今のまま残した。bool の --no-highlight にすると、config に highlight = "never" と書いた人がコマンドラインで ON に戻せなくなるため。

影響範囲

  • src/cli.rs、src/config.rs、src/main.rs、tests/cli.rs、tests/render.rs
  • README.md、docs/mermaid-image.md、.claude/rules/runtime.md / rendering.md
  • golden snapshot に差分なし。

確認手順

  • cargo test --all-features: 350 + 24 + 52 件が通った。pager::watch の 2 件は、sandbox の中では FSEvents が届かないため除外した(CI で確認する)。
  • cargo clippy --all-targets --all-features -- -D warnings / cargo fmt --check: 通った。
  • 手で実行して確認した:
    • mdvu --help に新しいオプション一覧が出る。
    • mdvu --paging never --color never README.md が stdout に出力する。
    • mdvu --plain README.md は exit 2 になり、--paging を候補として示す。
    • mdvu --watch --paging never README.md は exit 2 になる。
  • --paging always で pager が開くことは unit test(output_mode)で確認した。実際の端末では確認していない。

Base automatically changed from refactor/source-cleanup to main October 2, 2026 08:12
@halkn
halkn merged commit 70c06c3 into main Oct 2, 2026
4 checks passed
@halkn
halkn deleted the refactor/cli-options branch October 2, 2026 08:28
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