public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor) { using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet()) { if (occurrence is UnityAssetOccurrence assetOccurrence && !assetOccurrence.SourceFile.GetLocation().IsAsset()) { using (ReadLockCookie.Create()) { var solution = occurrence.GetSolution(); var processor = solution.GetComponent <AssetHierarchyProcessor>(); var consumer = new UnityScenePathGameObjectConsumer(); processor.ProcessSceneHierarchyFromComponentToRoot(assetOccurrence.OwningElementLocation, consumer, true, true); string name = "..."; if (consumer.NameParts.Count > 0) { name = string.Join("\\", consumer.NameParts); } return(CreateModel(name)); } } } return(EmptyModel()); }
public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor) { using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet()) { if (occurrence is ReferenceOccurrence referenceOccurrence && referenceOccurrence.PrimaryReference is IUnityYamlReference reference) { var document = reference.ComponentDocument; var sourceFile = document.GetSourceFile(); if (sourceFile == null || !sourceFile.IsValid()) { return(EmptyModel()); } var anchor = UnitySceneDataUtil.GetAnchorFromBuffer(document.GetTextAsBuffer()); if (anchor == null) { return(EmptyModel()); } return(CreateModel(UnityObjectPsiUtil.GetGameObjectPathFromComponent(myUnitySceneDataLocalCache, sourceFile, anchor))); } } return(EmptyModel()); }
public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor) { if (occurrence is ReferenceOccurrence referenceOccurrence && referenceOccurrence.PrimaryReference is IUnityYamlReference reference) { return(CreateModel(UnityObjectPsiUtil.GetGameObjectPathFromComponent(mySceneProcessor, reference.ComponentDocument))); } return(EmptyModel()); }
public override ICollection <TreeSection> GetTreeSections([NotNull] IOccurrenceBrowserDescriptor descriptor) { return(descriptor.OccurrenceSections.Select( x => { var caption = $"Found {x.Items.Count} linked {NounUtil.ToPluralOrSingular("type", x.Items.Count)}"; return new TreeSection(x.Model, caption); }) .ToList()); }
public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor) { if (!(occurrence is UnityAnimationEventOccurence animationEventOccurence)) { return(EmptyModel()); } var text = animationEventOccurence.GetDisplayText()?.Text; return(text != null?CreateModel(text) : EmptyModel()); }
public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor) { using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet()) { if (occurrence is ReferenceOccurrence referenceOccurrence && referenceOccurrence.PrimaryReference is IUnityYamlReference reference) { return(CreateModel(UnityObjectPsiUtil.GetComponentName(reference.ComponentDocument))); } } return(EmptyModel()); }
public override RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor) { using (CompilationContextCookie.GetExplicitUniversalContextIfNotSet()) { if (occurrence is UnityAssetOccurrence assetOccurrence) { var hierarchyContainer = assetOccurrence.GetSolution()?.GetComponent <AssetDocumentHierarchyElementContainer>(); var element = hierarchyContainer?.GetHierarchyElement(assetOccurrence.OwningElementLocation, true); if (element is IComponentHierarchy componentHierarchyElement) { return(CreateModel(AssetUtils.GetComponentName(myMetaFileGuidCache, componentHierarchyElement))); } } } return(EmptyModel()); }
public override bool IsApplicable([NotNull] IOccurrenceBrowserDescriptor descriptor) { return(descriptor is LinkedTypesOccurrenceBrowserDescriptor); }
public abstract RdUsageGroup CreateModel(IOccurrence occurrence, IOccurrenceBrowserDescriptor descriptor);