Improvement: FindFileOrThrow for dotnet tools caching result between project sessions
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 42/100
調査の方向性
FindFileOrThrow の実装を特定し、SessionState が現在どのように結果を保存しているかを確認します。キャッシュが Unity のバージョン単位でスコープされ、存在しないパスを無効化し、プロジェクトを再度開いた後の深い検索を回避することを検証します。初回起動と、その後のプロジェクトセッションを手動でテストします。
索引モデルが issue の本文から書いたものです。
説明
Hi, handzlikchris. Thank you for your excellent work.
I noticed that every time project opens, FSR always search deeply into Unity installation path for dotnet tools, which spends seconds to complete. Because of storing in SessionState, first-time project launch can't benefit from it.
In my opinion, utilize EditorPrefs with unityVersion could be better.
Here is my snippet for this:
private static string FindFileOrThrow(string fileName)
{
var cacheKey = $"FSR:FilePath_{fileName}:{Application.unityVersion}";
var result = EditorPrefs.GetString(cacheKey, null);
if (result != null && !File.Exists(result))
{
EditorPrefs.DeleteKey(cacheKey);
result = null;
}
if (result == null)
{
result = Directory
.GetFiles(ApplicationContentsPath, fileName, SearchOption.AllDirectories)
.FirstOrDefault();
if (result == null)
{
throw new Exception($"Unable to find '{fileName}', make sure Editor version supports it. You can also add preprocessor directive 'FastScriptReload_CompileViaMCS' which will use Mono compiler instead");
}
}
EditorPrefs.SetString(cacheKey, result);
return result;
}
- 主要言語
- C#
- スター
- 2.2k
- フォーク
- 169
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
handzlikchris/FastScriptReload のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
-
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
handzlikchris/FastScriptReload#202 · リアクション 2 件 ·
-
csc.rsp supportオープン
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
-
Failed to find entry-points対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
handzlikchris/FastScriptReload#203 · コメント 4 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
handzlikchris/FastScriptReload#197 · コメント 1 件 ·
handzlikchris/FastScriptReload の issue をすべて見る
似ている issue
-
:watch: Not Triaged async-task-programming/subsvc dotnet-csharp/svc
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
メンテナーはふだん 1 日以内に返信
-
python triage
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
microsoft/semantic-kernel#14590 ·
メンテナーはふだん 3 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
メンテナーはふだん 1 日以内に返信
-
Needs-Triage
難易度 1/5 1時間未満 初心者へのやさしさ 88/100
PowerShell/PowerShell#28194 ·
メンテナーはふだん 1 日以内に返信
-
AI Projects Client customer-reported needs-team-attention question Service Attention
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
Azure/azure-sdk-for-net#63804 · コメント 3 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信