public FindExecution Merge(IUnityYamlReference data) { var sourceFile = data.ComponentDocument.GetSourceFile(); if (sourceFile == null || !sourceFile.IsValid()) { return(myFindExecution); } var anchor = UnitySceneDataUtil.GetAnchorFromBuffer(data.ComponentDocument.GetTextAsBuffer()); if (anchor == null) { return(myFindExecution); } var request = CreateRequest(mySolutionDirectoryPath, myUnitySceneDataLocalCache, anchor, sourceFile); if (request != null) { Result.Add(request); } return(myFindExecution); }
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 void CreateRequestToUnity([NotNull] IUnityYamlReference yamlReference, bool focusUnity) { var declaredElement = yamlReference.Resolve().DeclaredElement; if (declaredElement == null) { return; } var sourceFile = yamlReference.ComponentDocument.GetSourceFile(); if (sourceFile == null) { return; } var anchor = UnitySceneDataUtil.GetAnchorFromBuffer(yamlReference.ComponentDocument.GetTextAsBuffer()); CreateRequestToUnity(declaredElement, sourceFile, anchor, focusUnity); }