Skip to content

Commit b877bba

Browse files
tacyanclaude
andcommitted
feat: 実装済みだったのに UI から呼ばれていなかった5機能を全て配線
1. 検索強化 — サイドバーに 大文字小文字/単語単位/正規表現 のトグルと include・exclude グロブ欄、置換欄を追加。正規表現エラーは黙って リテラル検索に落とさずその場で赤字表示する。置換は dry-run で 件数を出して確認してから実行 (バックグラウンドスレッド)。 一致箇所のハイライトは検索毎に1回だけ計算する (毎フレーム再計算しない) 2. セッションサイドバー — SidebarTab::Sessions を新設し、フォルダ別の 過去会話一覧から再開・新規会話・reveal・close を通常の起動経路で実行。 フォルダ一覧はルートと最近フォルダが変わったときだけ再構築する 3. 使用量 — ステータスバーに残量インジケータと詳細ウィンドウ。 実測/推定を区別し、データ不足を 0 分と偽らない契約を関数で強制 4. 改行コードと保存クリーンアップ — ステータスバーに「UTF-8 / CRLF」を表示し クリックで LF/CRLF/CR に変換 (選択範囲も再マップ)。保存時の 末尾空白除去・最終改行をトグルで適用。表示のスキャンはバッファ毎にキャッシュ 5. レビューコメント — 黙って捨てられていた「エージェントに送る」の プロンプトを受け取り、Cockpit を開いて入力欄へ流し込む (送信はユーザー操作) - 文言は英語モードの言語ファイルへ 79 エントリ追加 (重複キー検査も通過) - 記号は既存フォントにグリフがあるものだけを使う (豆腐回避のテストに追加) - 新規キーバインドは ⇧⌘H (Replace in Files) のみ - 検索・保存クリーンアップのトグルは egui の永続メモリに保存。 将来 config.toml へ移すべき箇所にコメントを残した app::ui_wiring_tests として 32 本のテストを追加 (レビュープロンプトが ちょうど1回だけ届くことを実クリック駆動で検証するものを含む)。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent d350c89 commit b877bba

6 files changed

Lines changed: 2047 additions & 36 deletions

File tree

‎assets/plugins/english-mode/lang/20-app.toml‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,3 +408,69 @@
408408
"🛡 ファイアウォールで受信を許可しました" = "🛡 Inbound connections are now allowed"
409409
"🛡 受信許可を取り消しました" = "🛡 The inbound rule has been removed"
410410
"⚠ 内部エラーが起きました。継続します (詳細: ~/.zaivern/panic.log)" = "⚠ An internal error occurred. Continuing (details: ~/.zaivern/panic.log)"
411+
412+
# ── サイドバー検索タブ: オプション・glob・ワークスペース一括置換 ──
413+
"大文字と小文字を区別する" = "Match Case"
414+
"単語単位で検索する" = "Match Whole Word"
415+
"正規表現として検索する" = "Use Regular Expression"
416+
"置換行の表示切替" = "Toggle Replace"
417+
"含めるファイル (例: *.rs, src/**)" = "Files to include (e.g. *.rs, src/**)"
418+
"除外するファイル (例: target/**)" = "Files to exclude (e.g. target/**)"
419+
"置換後の文字列" = "Replace with"
420+
"まず件数だけ数えます (この時点では 1 バイトも書きません)" = "Counts matches first — nothing is written yet"
421+
"置換を数えています…" = "Counting replacements…"
422+
"{files} ファイル / {hits} 箇所を置換します" = "Will replace {hits} occurrence(s) in {files} file(s)"
423+
"{files} ファイル / {hits} 箇所を置換しました" = "Replaced {hits} occurrence(s) in {files} file(s)"
424+
"🔁 {files} ファイル / {hits} 箇所を置換しました" = "🔁 Replaced {hits} occurrence(s) in {files} file(s)"
425+
"置換対象は見つかりませんでした" = "No matches to replace"
426+
"やめる" = "Cancel"
427+
"置換ワーカーを起動できませんでした" = "Could not start the replace worker"
428+
"置換が中断されました" = "The replace was interrupted"
429+
"ファイル間で置換…" = "Replace in Files…"
430+
"検索: 大文字と小文字を区別する (切替)" = "Search: Toggle Match Case"
431+
"検索: 単語単位で検索する (切替)" = "Search: Toggle Match Whole Word"
432+
"検索: 正規表現を使用する (切替)" = "Search: Toggle Use Regular Expression"
433+
"検索: 大文字と小文字を区別します" = "Search: matching case"
434+
"検索: 大文字と小文字を区別しません" = "Search: ignoring case"
435+
"検索: 単語単位で探します" = "Search: whole word only"
436+
"検索: 単語単位をやめました" = "Search: whole word off"
437+
"検索: 正規表現として探します" = "Search: using regular expressions"
438+
"検索: 正規表現をやめました" = "Search: regular expressions off"
439+
440+
# ── サイドバー セッションタブ (フォルダごとの過去の会話) ──
441+
"セッション: 過去の会話を表示" = "Sessions: Show Past Conversations"
442+
"{bin} のプリセットが見つかりません (設定で追加してください)" = "No preset found for {bin} (add one in settings)"
443+
"エージェントのプリセットがありません" = "No agent presets are configured"
444+
445+
# ── プラン使用量・枯渇予測 ──
446+
"📊 プラン使用量" = "📊 Plan Usage"
447+
"プラン使用量と枯渇予測を表示" = "Show Plan Usage and Exhaustion Forecast"
448+
"プラン使用量 (クリックで明細)" = "Plan usage (click for details)"
449+
"使用量を報告する CLI が見つかりません (対応 CLI を起動すると出ます)" = "No CLI is reporting usage yet (launch a supported CLI to see it here)"
450+
"データ不足" = "Not enough data"
451+
"消費なし" = "Not burning"
452+
"約 {mins} 分で枯渇 (推定)" = "~{mins} min until exhausted (estimated)"
453+
"約 {mins} 分でリセット" = "~{mins} min until reset"
454+
"{pct}%" = "{pct}%"
455+
"{pct}% (推定)" = "{pct}% (estimated)"
456+
"{account}: {used} / {proj}" = "{account}: {used} / {proj}"
457+
" {agents} / {n} 本並列 / {proj}" = " {agents} / {n} running / {proj}"
458+
459+
# ── 文字コードと改行コード / 保存時のクリーンアップ ──
460+
"この文字コード・改行コードのまま保存します\n (表せない文字を足したときだけ UTF-8 で保存します)" = "Saved with this encoding and line ending\n (switches to UTF-8 only if you add characters it cannot represent)"
461+
"改行コードを変換" = "Convert line endings"
462+
"改行コードを変換: LF (Unix)" = "Convert Line Endings: LF (Unix)"
463+
"改行コードを変換: CRLF (Windows)" = "Convert Line Endings: CRLF (Windows)"
464+
"改行コードを変換: CR (旧 Mac)" = "Convert Line Endings: CR (Classic Mac)"
465+
"改行コードを {le} に揃えました" = "Line endings converted to {le}"
466+
"先にファイルを開いてください" = "Open a file first"
467+
"保存時に末尾空白を除去 (切替)" = "Toggle Trim Trailing Whitespace on Save"
468+
"保存時に最終行へ改行を入れる (切替)" = "Toggle Insert Final Newline on Save"
469+
"保存時に行末の空白を落とします" = "Trailing whitespace will be trimmed on save"
470+
"保存時に行末の空白を落としません" = "Trailing whitespace will be kept on save"
471+
"保存時に最終行へ改行を入れます" = "A final newline will be added on save"
472+
"保存時に最終行へ改行を入れません" = "No final newline will be added on save"
473+
474+
# ── 差分ビューのレビューコメント → エージェントの入力欄 ──
475+
"エージェントに送る" = "Send to Agent"
476+
"レビューコメントを入力欄へ入れました (内容を確かめてから送信してください)" = "Review comments were placed in the input box (check them before sending)"

‎assets/plugins/english-mode/lang/60-menubar.toml‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,16 @@
157157
"問題パネルの切替" = "Toggle Problems Panel"
158158
"フルスクリーンの切替" = "Toggle Full Screen"
159159
"GitHub パネルを開く" = "Open GitHub Panel"
160+
161+
# ── 編集 / 表示メニュー: ファイル間の置換・改行コード・保存時のクリーンアップ ──
162+
"ファイル間で置換" = "Replace in Files"
163+
"改行コードを変換 (現在: {le})" = "Convert Line Endings (current: {le})"
164+
"LF (Unix)" = "LF (Unix)"
165+
"CRLF (Windows)" = "CRLF (Windows)"
166+
"CR (旧 Mac)" = "CR (Classic Mac)"
167+
"保存時に末尾空白を除去" = "Trim Trailing Whitespace on Save"
168+
"✓ 保存時に末尾空白を除去" = "✓ Trim Trailing Whitespace on Save"
169+
"保存時に最終行へ改行を入れる" = "Insert Final Newline on Save"
170+
"✓ 保存時に最終行へ改行を入れる" = "✓ Insert Final Newline on Save"
171+
"セッション (過去の会話)" = "Sessions (Past Conversations)"
172+
"プラン使用量" = "Plan Usage"

0 commit comments

Comments
 (0)