public static string GetComponentName(MetaFileGuidCache metaFileGuidCache, IComponentHierarchy componentHierarchy) { if (componentHierarchy is IScriptComponentHierarchy scriptComponent) { var result = metaFileGuidCache.GetAssetNames(scriptComponent.ScriptReference.ExternalAssetGuid).FirstOrDefault(); if (result != null) { return(result); } } return(componentHierarchy.Name); }
public override ISymbolTable GetReferenceSymbolTable(bool useReferenceName) { var assetGuid = myFileID.guid; var candidates = UnityObjectPsiUtil.GetTypeElementCandidatesFromScriptAssetGuid(myOwner.GetSolution(), assetGuid); if (candidates.IsEmpty()) { return(EmptySymbolTable.INSTANCE); } var resolvedName = myResolvedName; if (resolvedName == null) { var assetFiles = myMetaFileGuidCache.GetAssetNames(assetGuid); resolvedName = assetFiles.FirstOrDefault(null); } var symbolTable = new SymbolTable(myOwner.GetPsiServices()); foreach (var candidate in candidates) { if (useReferenceName && resolvedName != null) { if (resolvedName == candidate.ShortName) { symbolTable.AddSymbol(assetGuid, candidate); } } else { symbolTable.AddSymbol(assetGuid, candidate); } } return(symbolTable); }
public override HybridCollection <string> GetAllNames() { var assetNames = myMetaFileGuidCache.GetAssetNames(myFileID.guid); switch (assetNames.Count) { case 0: return(new HybridCollection <string>(myFileID.guid)); case 1: return(new HybridCollection <string>(myFileID.guid, assetNames[0])); default: return(new HybridCollection <string>(myFileID.guid).Add(assetNames)); } }