仕様策定と M1 コア実装(中途半端な実装の立て直し) - #14
Open
nitou-kanazawa wants to merge 3 commits into
Open
Conversation
- 決定事項を明記(保存スコープ/マッチング方式/アイコン表現/UI導線/旧設計の扱い) - マッチングを3種別(パス完全一致・名前完全一致・ワイルドカード)に絞り優先順位を定義 - データモデル・キャッシュ・エラー処理・UI仕様を具体化 - 実装マイルストーン(M1〜M3)を追加 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADJqXTPkhssS394N2oyRho
- 基本運用をフォルダ名マッチに定め、名前正規化(大文字小文字・_プレフィックス無視)を仕様化 - デフォルトアイコン画像とデフォルトプリセットのパッケージ同梱を追加(ゼロコンフィグ動作) - プリセット/ユーザールールのレイヤー方式(ユーザー優先・プリセットOFF可・複製カスタム化)を定義 - ワイルドカードは将来拡張へ移動、マイルストーンを M1〜M4 に再編 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADJqXTPkhssS394N2oyRho
仕様書 v1.1 の M1 マイルストーンを実装: - FolderIconRule / FolderMatchType: パス完全一致とフォルダ名一致の2種別 - FolderIconSettings: ScriptableSingleton を新スキーマ化 (ProjectSettings/FolderIconSettings.asset, null安全, version フィールド) - FolderIconResolver: 名前正規化(大文字小文字・_プレフィックス無視)、 レイヤー優先順位、パス→アイコンの結果キャッシュと事前展開辞書 - AssetPostprocessor によるキャッシュ無効化 - FolderIconSettingWindow: 適用/解除が機能する個別指定ウィンドウ (現在の適用状態と出所の表示、複数フォルダ選択対応) - FolderDrawer: 例外を漏らさない描画フック、Assets/Packages 配下のみ対象 - UI文言を英語に統一 (Assets/Set Folder Icon...) 旧設計の削除: - Matcher/, EntryId, Foundation/, Runtime アセンブリ一式 - Pattern / FolderIconEntry / FolderIconEntryStore / FolderIconConstants - 旧設定ファイル ProjectSettings/Nitou/FolderIcon.dat Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ADJqXTPkhssS394N2oyRho
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
コードレビューで判明した「アイコン登録の導線が繋がっていない」状態を立て直すため、まず仕様を実用性重視で固め直し、その仕様(v1.1)に沿って M1(コア)を実装しました。
レビューで見つかった致命的問題(設定ウィンドウの保存処理が未実装 /
_entryStore未初期化による NRE / 正規表現キャッシュの更新漏れ / マッチングスタブが常に false)をすべて解消し、「右クリック → アイコン選択 → 適用 → 表示 → 解除」の導線が一周する構成になっています。仕様の主な決定事項(
docs/specification.mdv1.1)ProjectSettings/FolderIconSettings.asset、テキスト形式・VCS コミット想定)Scriptsルールがscripts/_Scriptsにもマッチ実装内容(M1)
新規
FolderIconRule.cs— データモデル(FolderMatchType:FolderPath/FolderName)FolderIconSettings.cs— 新スキーマのScriptableSingleton。null 安全化、versionフィールド、パス/名前ルールの操作 APIFolderIconResolver.cs— 名前正規化、レイヤー優先順位、パス→アイコンの結果キャッシュと事前展開辞書(判定 O(1))、AssetPostprocessorによるキャッシュ無効化書き換え
FolderIconSettingWindow.cs— TODO だった保存処理を実装。適用中アイコンと出所の表示、複数フォルダ選択対応、解除ボタンFolderDrawer.cs— 描画フックから例外を漏らさないガード(初回のみログ)、Assets/・Packages/配下チェック、Play 中も描画FolderIconContextMenu.cs— 英語メニューAssets/Set Folder Icon...に統一、複数選択対応FolderIconSettingsProvider.cs— 新設定クラスへ接続(専用 UI は M3)削除(旧設計の一掃)
Matcher/(IFolderMatcher系)、EntryId、Foundation/Pattern/FolderIconEntry/FolderIconEntryStore/FolderIconConstants/FolderIconSettingsSOProjectSettings/Nitou/FolderIcon.dat動作確認のお願い
この環境には Unity が無いためコンパイル検証ができていません。お手元での確認をお願いします。
_Scriptsとscriptsを作成し、名前ルールScriptsを追加 → 正規化マッチが効く次のステップ
flder-icontypo 修正含む)・CHANGELOG・EditMode テスト🤖 Generated with Claude Code
https://claude.ai/code/session_01ADJqXTPkhssS394N2oyRho
Generated by Claude Code