public async Task MappedLocationFileNameProperlyRootedInMiscellaneousWorkspace() { var folderPath = Directory.GetCurrentDirectory(); var relativeFile = ".\\Index.cshtml.cs"; var mappedFilePath = Path.GetFullPath(Path.Combine(folderPath, relativeFile)); var testFiles = new[] { new TestFile("Constants.cs", @" public static class Constants { public const string My$$Text = ""Hello World""; }"), new TestFile("Index.cshtml_virtual.cs", $@" #line 1 ""{relativeFile}"" Constants.MyText #line default #line hidden") }; var miscFile = new TestFile(mappedFilePath, "// Constants.MyText;"); SharedOmniSharpTestHost.AddFilesToWorkspace(folderPath, testFiles); SharedOmniSharpTestHost.Workspace.TryAddMiscellaneousDocument( miscFile.FileName, TextLoader.From(TextAndVersion.Create(miscFile.Content.Text, VersionStamp.Create())), LanguageNames.CSharp); var testFile = testFiles.Single(tf => tf.Content.HasPosition); var usages = await FindUsagesAsync(testFile, onlyThisFile : false); Assert.DoesNotContain(usages.QuickFixes, location => location.FileName.EndsWith("Index.cshtml_virtual.cs")); Assert.DoesNotContain(usages.QuickFixes, location => location.FileName.Equals(relativeFile)); var quickFix = Assert.Single(usages.QuickFixes, location => location.FileName.Equals(mappedFilePath)); Assert.Empty(quickFix.Projects); }
protected async Task <IEnumerable <AutoCompleteResponse> > FindCompletionsAsync(string filename, string source, bool wantSnippet = false, string triggerChar = null) { var testFile = new TestFile(filename, source); SharedOmniSharpTestHost.AddFilesToWorkspace(testFile); var point = testFile.Content.GetPointFromPosition(); var request = new AutoCompleteRequest { Line = point.Line, Column = point.Offset, FileName = testFile.FileName, Buffer = testFile.Content.Code, WordToComplete = GetPartialWord(testFile.Content), WantMethodHeader = true, WantSnippet = wantSnippet, WantReturnType = true, TriggerCharacter = triggerChar }; var requestHandler = GetRequestHandler(SharedOmniSharpTestHost); return(await requestHandler.Handle(request)); }
private async Task <(FormatRangeResponse, TestFile)> GetResponse(string text, string character, string fileName) { // Ensure system newlines are used var options = SharedOmniSharpTestHost.Workspace.Options.WithChangedOption(FormattingOptions.NewLine, LanguageNames.CSharp, System.Environment.NewLine); SharedOmniSharpTestHost.Workspace.TryApplyChanges(SharedOmniSharpTestHost.Workspace.CurrentSolution.WithOptions(options)); var file = new TestFile(fileName, text); SharedOmniSharpTestHost.AddFilesToWorkspace(file); var point = file.Content.GetPointFromPosition(); var request = new FormatAfterKeystrokeRequest { Line = point.Line, Column = point.Offset, FileName = fileName, Character = character, }; var requestHandler = SharedOmniSharpTestHost.GetRequestHandler <FormatAfterKeystrokeService>(OmniSharpEndpoints.FormatAfterKeystroke); return(await requestHandler.Handle(request), file); }