Exemple #1
0
        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);
        }
Exemple #3
0
        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));
            }
        }