public string MatchTypeName(string typeName, IEnumerable <string> usings) { if (_codeModel == null) { _codeModel = _codeModelFactory(); if (_codeModel == null) { return(null); } _codeModel.KeepAlive(); } var refs = new CodeEngineResultParser() .ParseRefs(_codeModel.GetCodeRefs("language=C#,name=" + typeName)); if (refs.Count == 0) { return(null); } foreach (var usng in usings) { var match = refs.FirstOrDefault(x => x.Parent + "." + x.Name == usng + "." + typeName); if (match != null) { return(match.Parent + "." + match.Name); } } return(null); }
public void Should_parse_out_various_code_references() { var parser = new CodeEngineResultParser(); var refs = parser.ParseRefs(getResult()); Assert.That(refs[0].File.File, Is.EqualTo(@"C:\Users\ack\storage\src\OpenIDE\Languages\CSharp\CSharp\IOutputWriter.cs")); Assert.That(refs[0] as Class, Is.Not.Null); Assert.That(refs[0].Parent, Is.EqualTo("CSharp")); Assert.That(refs[0].Signature, Is.EqualTo("CSharp.OutputWriter")); Assert.That(refs[0].Name, Is.EqualTo("OutputWriter")); Assert.That(refs[0].Scope, Is.EqualTo("public")); Assert.That(refs[0].Line, Is.EqualTo(44)); Assert.That(refs[0].Column, Is.EqualTo(15)); Assert.That(refs[1].File.File, Is.EqualTo(@"C:\Users\ack\storage\src\OpenIDE\Languages\CSharp\CSharp\IOutputWriter.cs")); Assert.That(refs[1] as Interface, Is.Not.Null); Assert.That(refs[1].Name, Is.EqualTo("IOutputWriter")); Assert.That(refs[2].File.File, Is.EqualTo("System.Xml")); Assert.That(refs[2] as EnumType, Is.Not.Null); Assert.That(refs[2].Name, Is.EqualTo("QueryOutputWriter")); Assert.That(refs[3].File.File, Is.EqualTo("System.Xml")); Assert.That(refs[3] as Struct, Is.Not.Null); Assert.That(refs[3].Name, Is.EqualTo("StructOutputWriter")); }
public string MatchTypeName(string typeName, IEnumerable<string> usings) { if (_codeModel == null) { _codeModel = _codeModelFactory(); if (_codeModel == null) return null; _codeModel.KeepAlive(); } var refs = new CodeEngineResultParser() .ParseRefs( _codeModel.GetCodeRefs("language=C#,name=" + typeName)); if (refs.Count == 0) return null; foreach (var usng in usings) { var match = refs.FirstOrDefault(x => x.Parent + "." + x.Name == usng + "." + typeName); if (match != null) return match.Parent + "." + match.Name; } return null; }