protected void TestPerformance(string code, [CallerMemberName] string testName = "") { ConfigureProjectReferences(); //get calling method info StackTrace stackTrace = new StackTrace(); var callingMethod = stackTrace.GetFrame(1).GetMethod(); var testAttribute = (PerformanceTestAttribute)callingMethod.GetCustomAttributes(typeof(PerformanceTestAttribute), true)[0]; var caret = GetCaret(ref code); var filePath = AbsoluteDirectoryPath.Parse(Directory.GetCurrentDirectory()) / new FileName(testName); var log = new DummyLogger(); var context = Context.CreateContext(filePath, code, caret, new DummySourcePackage()); var mainPackage = PackageCache.GetPackage(new Log(log.TextWriter), _project); mainPackage.SetCacheDirectory((AbsoluteDirectoryPath.Parse(mainPackage.CacheDirectory) / new DirectoryName("UxCompletion")).NativePath); var build = new CodeNinjaBuild(log, _project, _editors, mainPackage, mainPackage.References.ToList(), code, filePath); build.Execute(); Stopwatch sw = new Stopwatch(); sw.Start(); SuggestionParser.GetSuggestions(build.Compiler, context, caret, new DummyReader()); sw.Stop(); if (_context == null) { throw new ArgumentNullException("_context"); } _context.Logger.LogTimeEvent(testName, testAttribute.Description, sw.ElapsedMilliseconds / 1000f); }
public void AssertUX(string code, [CallerMemberName] string path = "") { int caret = 0; var assertCodeSnippets = GetAsserts(ref code, ref caret); var filePath = AbsoluteDirectoryPath.Parse(Directory.GetCurrentDirectory()) / new FileName(path); var log = new DummyLogger(); var context = Context.CreateContext(filePath, code, caret, new DummySourcePackage()); var mainPackage = PackageCache.GetPackage(new Log(log.TextWriter), _project); mainPackage.SetCacheDirectory((AbsoluteDirectoryPath.Parse(mainPackage.CacheDirectory) / new DirectoryName("UxCompletion")).NativePath); var build = new CodeNinjaBuild(log, _project, _editors, mainPackage, mainPackage.References.ToList(), code, filePath); build.Execute(); var suggestions = SuggestionParser.GetSuggestions(build.Compiler, context, caret, new DummyReader()); if (assertCodeSnippets != null) { foreach (var codeSnippet in assertCodeSnippets) { OnAssert(code, codeSnippet, suggestions, log); } } }
IEnumerable <SuggestItem> CreateSuggestionsInternal(ICompiler compiler, AbsoluteFilePath file, string code, int caret) { if (compiler == null) { return(Enumerable.Empty <SuggestItem>()); } var suggestions = SuggestionParser.GetSuggestions( compiler, Context.CreateContext( file, code, caret, compiler.Input.Package), caret, new CodeReader()); return(suggestions); }