예제 #1
0
 protected bool Equals(AssetMethodData other)
 {
     return(Equals(Location, other.Location) && MethodName == other.MethodName &&
            TextRange.Equals(other.TextRange) &&
            Mode == other.Mode &&
            Type == other.Type &&
            Equals(TargetScriptReference, other.TargetScriptReference));
 }
        private string GetScriptGuid(AssetMethodData assetMethodData)
        {
            var reference       = assetMethodData.TargetScriptReference;
            var scriptComponent = myAssetDocumentHierarchyElementContainer.GetHierarchyElement(reference, true) as IScriptComponentHierarchy;
            var guid            = scriptComponent?.ScriptReference?.ExternalAssetGuid;

            return(guid);
        }
        private static object Read(UnsafeReader reader)
        {
            var count   = reader.ReadInt32();
            var methods = new List <AssetMethodData>();

            for (int i = 0; i < count; i++)
            {
                methods.Add(AssetMethodData.ReadFrom(reader));
            }

            return(new AssetMethodsDataElement(methods));
        }
        private ISymbolTable GetReferenceSymbolTable(ISolution solution, IPsiModule psiModule, AssetMethodData assetMethodData, string assetGuid)
        {
            var targetType = AssetUtils.GetTypeElementFromScriptAssetGuid(solution, assetGuid);

            if (targetType == null)
            {
                return(EmptySymbolTable.INSTANCE);
            }

            var symbolTable = ResolveUtil.GetSymbolTableByTypeElement(targetType, SymbolTableMode.FULL, psiModule);

            return(symbolTable.Filter(assetMethodData.MethodName, IsMethodFilter.INSTANCE, OverriddenFilter.INSTANCE, new ExactNameFilter(assetMethodData.MethodName),
                                      new StaticFilter(new NonStaticAccessContext(null)), new EventHandlerSymbolFilter(assetMethodData.Mode, assetMethodData.Type, targetType.Module)));
        }