void ProcessType(XmlTextReader reader) { string[] parts = Expr.Value.Split('.'); string name = parts[parts.Length - 1]; var type = new MemberModel(); type.Name = name; ExtractType(reader, type); result = new HaxeCompleteResult(); result.Type = type; }
HaxeCompleteStatus ProcessTopLevel(XmlReader reader) { result = new HaxeCompleteResult { Members = new MemberList() }; while (reader.Read()) { if (reader.NodeType != XmlNodeType.Element) { continue; } switch (reader.Name) { case "i": var k = reader.GetAttribute("k"); switch (k) { case "local": case "member": case "static": case "enum": case "global": case "package": case "type": string t = k == "global" ? reader.GetAttribute("t") : null; reader.Read(); var member = new MemberModel { Name = reader.Value }; ExtractType(t, member); result.Members.Add(member); break; } break; } } result.Members.Sort(); return(HaxeCompleteStatus.TOP_LEVEL); }
HaxeCompleteStatus ProcessList(XmlTextReader reader) { result = new HaxeCompleteResult(); result.Members = new MemberList(); positionResults = new List <HaxePositionResult>(); MemberModel member = null; while (reader.Read()) { if (reader.NodeType == XmlNodeType.EndElement) { switch (reader.Name) { case "list": switch (CompilerService) { case HaxeCompilerService.COMPLETION: result.Members.Sort(); return(HaxeCompleteStatus.MEMBERS); case HaxeCompilerService.POSITION: return(HaxeCompleteStatus.POSITION); case HaxeCompilerService.USAGE: return(HaxeCompleteStatus.USAGE); case HaxeCompilerService.TOP_LEVEL: return(HaxeCompleteStatus.TOP_LEVEL); } break; case "i": member = null; break; } continue; } else if (reader.NodeType != XmlNodeType.Element) { continue; } switch (reader.Name) { case "i": member = ExtractMember(reader); break; case "d": if (member == null) { continue; } member.Comments = ReadValue(reader); break; case "t": if (member == null) { continue; } ExtractType(reader, member); if (!IsOverload(result.Members, member)) { result.Members.Add(member); } break; case "pos": positionResults.Add(ExtractPos(reader)); break; } } result.Members.Sort(); return(HaxeCompleteStatus.MEMBERS); }