public async Task ReturnsSource_ForGenericType() { var source1 = @"using System; class Foo { }"; var source2 = @"class Bar { private Foo foo; }"; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "foo.cs", source1 }, { "bar.cs", source2} }); var controller = new OmnisharpController(workspace, null); var response = await controller.Metadata(new MetadataRequest { AssemblyName = "mscorlib", TypeName = "System.Collections.Generic.List`1", Timeout = 60000 }); Assert.NotNull(response.Source); response = await controller.Metadata(new MetadataRequest { AssemblyName = "mscorlib", TypeName = "System.Collections.Generic.Dictionary`2" }); Assert.NotNull(response.Source); }
public async Task ReturnsSource_ForGenericType() { var source1 = @"using System; class Foo { }"; var source2 = @"class Bar { private Foo foo; }"; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "foo.cs", source1 }, { "bar.cs", source2 } }); var controller = new OmnisharpController(workspace, null); var response = await controller.Metadata(new MetadataRequest { AssemblyName = "mscorlib", TypeName = "System.Collections.Generic.List`1", Timeout = 60000 }); Assert.NotNull(response.Source); response = await controller.Metadata(new MetadataRequest { AssemblyName = "mscorlib", TypeName = "System.Collections.Generic.Dictionary`2" }); Assert.NotNull(response.Source); }
public async Task HighlightStringInterpolation() { var code = @" class C1 { string s = $""{5}""; } "; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "a.cs", code } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var regions = await controller.Highlight(new HighlightRequest() { FileName = "a.cs" }); AssertSyntax(regions.Highlights, code, 0, Token("class", "keyword"), Token("C1", "class name"), Token("{", "punctuation"), Token("string", "keyword"), Token("s", "identifier"), Token("=", "operator"), Token("$\"", "string"), Token("{", "punctuation"), Token("5", "number"), Token("}", "punctuation"), Token("\"", "string"), Token(";", "punctuation"), Token("}", "punctuation")); }
public async Task ReturnsEmptyResultWhenDefinitionIsNotFound() { var source1 = @"using System; class Foo { }"; var source2 = @"class Bar { private Baz foo; }"; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "foo.cs", source1 }, { "bar.cs", source2 } }); var controller = new OmnisharpController(workspace, null); var definitionResponse = await controller.GotoDefinition(new GotoDefinitionRequest { FileName = "bar.cs", Line = 2, Column = 14, Timeout = 60000 }); Assert.Null(definitionResponse.FileName); Assert.Equal(0, definitionResponse.Line); Assert.Equal(0, definitionResponse.Column); }
public async Task HighlightEntireFile() { var code = @" namespace N1 { class C1 { int n = true; } } "; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "a.cs", code } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var regions = await controller.Highlight(new HighlightRequest() { FileName = "a.cs" }); AssertSyntax(regions.Highlights, code, 0, Token("namespace", "keyword"), Token("N1", "identifier"), Token("{", "punctuation"), Token("class", "keyword"), Token("C1", "class name"), Token("{", "punctuation"), Token("int", "keyword"), Token("n", "identifier"), Token("=", "operator"), Token("true", "keyword"), Token(";", "punctuation"), Token("}", "punctuation"), Token("}", "punctuation")); }
public async Task ReturnsEmptyResultWhenDefinitionIsNotFound() { var source1 = @"using System; class Foo { }"; var source2 = @"class Bar { private Baz foo; }"; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "foo.cs", source1 }, { "bar.cs", source2} }); var controller = new OmnisharpController(workspace, null); var definitionResponse = await controller.GotoDefinition(new GotoDefinitionRequest { FileName = "bar.cs", Line = 2, Column = 14, Timeout = 60000 }); Assert.Null(definitionResponse.FileName); Assert.Equal(0, definitionResponse.Line); Assert.Equal(0, definitionResponse.Column); }
private async Task<RenameResponse> SendRequest(OmnisharpWorkspace workspace, string renameTo, string filename, string fileContent, bool wantsTextChanges = false, bool applyTextChanges = true) { var lineColumn = TestHelpers.GetLineAndColumnFromDollar(fileContent); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = new RenameRequest { Line = lineColumn.Line, Column = lineColumn.Column, RenameTo = renameTo, FileName = filename, Buffer = fileContent.Replace("$", ""), WantsTextChanges = wantsTextChanges, ApplyTextChanges = applyTextChanges }; var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); return await controller.Rename(request); }
private static async Task <IEnumerable <LinePositionSpanTextChange> > FormattingChangesForRange(FormatRangeRequest req) { var workspace = TestHelpers.CreateSimpleWorkspace(req.Buffer, req.FileName); var controller = new OmnisharpController(workspace, null); return((await controller.FormatRange(req)).Changes); }
private async Task <QuickFixResponse> FindSymbols(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); return(await controller.FindSymbols()); }
public async Task HighlightEntireFile() { var code = @" namespace N1 { class C1 { int n = true; } } "; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "a.cs", code } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var regions = await controller.Highlight(new HighlightRequest() { FileName = "a.cs" }); AssertSyntax(regions.Highlights, code, 0, Token("namespace", "keyword"), Token("N1", "identifier"), Token("{", "punctuation"), Token("class", "keyword"), Token("C1", "class name"), Token("{", "punctuation"), Token("int", "keyword"), Token("n", "identifier"), Token("=", "operator"), Token("true", "keyword"), Token(";", "punctuation"), Token("}", "punctuation"), Token("}", "punctuation")); }
private async Task <RenameResponse> SendRequest(OmnisharpWorkspace workspace, string renameTo, string filename, string fileContent, bool wantsTextChanges = false, bool applyTextChanges = true) { var lineColumn = TestHelpers.GetLineAndColumnFromDollar(fileContent); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = new RenameRequest { Line = lineColumn.Line, Column = lineColumn.Column, RenameTo = renameTo, FileName = filename, Buffer = fileContent.Replace("$", ""), WantsTextChanges = wantsTextChanges, ApplyTextChanges = applyTextChanges }; var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); return(await controller.Rename(request)); }
public void ReturnsEmptyResponseForEmptyWorskpace() { var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string>()); var controller = new OmnisharpController(workspace, null); var response = controller.GoToFile(new Request()); Assert.Equal(0, response.QuickFixes.Count()); }
private async Task <QuickFixResponse> FindUsages(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); var request = CreateRequest(source); return(await controller.FindUsages(request)); }
public void ReturnsEmptyResponseForEmptyWorskpace() { var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string>()); var controller = new OmnisharpController(workspace, null); var response = controller.GoToFile(new Request()); Assert.Equal(0, response.QuickFixes.Count()); }
private async Task<QuickFixResponse> FindRegions(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); var request = CreateRequest(source); var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); return await controller.GoToRegion(request); }
private async Task <IEnumerable <ISymbol> > FindImplementations(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); var request = CreateRequest(source); var implementations = await controller.FindImplementations(request); return(await TestHelpers.SymbolsFromQuickFixes(workspace, implementations.QuickFixes)); }
private async Task <QuickFixResponse> FindRegions(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = CreateRequest(source); var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); return(await controller.GoToRegion(request)); }
private async Task <QuickFixResponse> FindSymbolsWithFilter(string source, string filter) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = new FindSymbolsRequest { Filter = filter }; return(await controller.FindSymbols(request)); }
private async Task<IEnumerable<ISymbol>> FindImplementations(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = CreateRequest(source); var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); var implementations = await controller.FindImplementations(request); return await TestHelpers.SymbolsFromQuickFixes(workspace, implementations.QuickFixes); }
public async Task OmitsNamespaceForNonRegularCSharpSyntax() { var source1 = @"class Foo {}"; var workspace = TestHelpers.CreateCsxWorkspace(source1); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var response = await controller.TypeLookup(new TypeLookupRequest { FileName = "dummy.csx", Line = 1, Column = 8 }); Assert.Equal("Foo", response.Type); }
private async Task <IEnumerable <string> > FindCompletionsAsync(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); var request = CreateRequest(source); var response = await controller.AutoComplete(request); var completions = response as IEnumerable <AutoCompleteResponse>; return(completions.Select(completion => BuildCompletion(completion))); }
private async Task <IEnumerable <ISymbol> > FindImplementations(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = CreateRequest(source); var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); var implementations = await controller.FindImplementations(request); return(await TestHelpers.SymbolsFromQuickFixes(workspace, implementations.QuickFixes)); }
private async Task <QuickFixResponse> FindUsages(Dictionary <string, string> sources, string currentFile, bool onlyThisFile, bool excludeDefinition = false) { var workspace = TestHelpers.CreateSimpleWorkspace(sources); var controller = new OmnisharpController(workspace, null); var request = CreateRequest(sources[currentFile], currentFile, excludeDefinition); request.OnlyThisFile = onlyThisFile; var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); return(await controller.FindUsages(request)); }
public async Task CodeCheckSpecifiedFileOnly() { var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "a.cs", "class C { int n = true; }" } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var quickFixes = await controller.CodeCheck(new Request() { FileName = "a.cs" }); Assert.Equal(1, quickFixes.QuickFixes.Count()); Assert.Equal("a.cs", quickFixes.QuickFixes.First().FileName); }
public async Task CheckAllFiles() { var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "a.cs", "class C1 { int n = true; }" }, { "b.cs", "class C2 { int n = true; }" }, }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var quickFixes = await controller.CodeCheck(new Request()); Assert.Equal(2, quickFixes.QuickFixes.Count()); }
public async Task CheckAllFiles() { var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "a.cs", "class C1 { int n = true; }" }, { "b.cs", "class C2 { int n = true; }" }, }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var quickFixes = await controller.CodeCheck(new Request()); Assert.Equal(2, quickFixes.QuickFixes.Count()); }
public async Task IncludesNamespaceForRegularCSharpSyntax() { var source1 = @"namespace Bar { class Foo {} }"; var workspace = TestHelpers.CreateSimpleWorkspace(source1); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var response = await controller.TypeLookup(new TypeLookupRequest { FileName = "dummy.cs", Line = 2, Column = 20 }); Assert.Equal("Bar.Foo", response.Type); }
public void ReturnsAListOfAllWorkspaceFiles() { var source1 = @"class Foo {}"; var source2 = @"class Bar {}"; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "foo.cs", source1 }, { "bar.cs", source2 } }); var controller = new OmnisharpController(workspace, null); var response = controller.GoToFile(new Request()); Assert.Equal(2, response.QuickFixes.Count()); Assert.Equal("foo.cs", response.QuickFixes.ElementAt(0).FileName); Assert.Equal("bar.cs", response.QuickFixes.ElementAt(1).FileName); }
public void ReturnsAListOfAllWorkspaceFiles() { var source1 = @"class Foo {}"; var source2 = @"class Bar {}"; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "foo.cs", source1 }, { "bar.cs", source2} }); var controller = new OmnisharpController(workspace, null); var response = controller.GoToFile(new Request()); Assert.Equal(2, response.QuickFixes.Count()); Assert.Equal("foo.cs", response.QuickFixes.ElementAt(0).FileName); Assert.Equal("bar.cs", response.QuickFixes.ElementAt(1).FileName); }
private async Task <IEnumerable <AutoCompleteResponse> > FindCompletionsAsync(string source, AutoCompleteRequest request = null) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); if (request == null) { request = CreateRequest(source); } var response = await controller.AutoComplete(request); var completions = response as IEnumerable <AutoCompleteResponse>; return(completions); }
private void CreateSimpleWorkspace(out OmnisharpWorkspace workspace, out OmnisharpController controller, out DocumentInfo document, string filename, string contents) { workspace = new OmnisharpWorkspace(); controller = new OmnisharpController(workspace, null); var projectInfo = ProjectInfo.Create(ProjectId.CreateNewId(), VersionStamp.Create(), "ProjectNameVal", "AssemblyNameVal", LanguageNames.CSharp); document = DocumentInfo.Create(DocumentId.CreateNewId(projectInfo.Id), filename, null, SourceCodeKind.Regular, TextLoader.From(TextAndVersion.Create(SourceText.From(contents), VersionStamp.Create())), filename); workspace.AddProject(projectInfo); workspace.AddDocument(document); }
public async Task OmitsNamespaceForTypesInGlobalNamespace() { var source = @"namespace Bar { class Foo {} } class Baz {}"; var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var responseInNormalNamespace = await controller.TypeLookup(new TypeLookupRequest { FileName = "dummy.cs", Line = 2, Column = 20 }); var responseInGlobalNamespace = await controller.TypeLookup(new TypeLookupRequest { FileName = "dummy.cs", Line = 4, Column = 20 }); Assert.Equal("Bar.Foo", responseInNormalNamespace.Type); Assert.Equal("Baz", responseInGlobalNamespace.Type); }
public async Task CodeCheckSpecifiedFileOnly() { var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "a.cs", "class C { int n = true; }" } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var quickFixes = await controller.CodeCheck(new Request() { FileName = "a.cs" }); Assert.Equal(1, quickFixes.QuickFixes.Count()); Assert.Equal("a.cs", quickFixes.QuickFixes.First().FileName); }
public async Task ReturnsPositionInMetadata_WhenSymbolIsExtensionMethod() { var controller = new OmnisharpController(CreateTestWorkspace(), null); var definitionResponse = await controller.GotoDefinition(new GotoDefinitionRequest { FileName = "bar.cs", Line = 11, Column = 17, Timeout = 60000, WantMetadata = true }); Assert.Null(definitionResponse.FileName); Assert.NotNull(definitionResponse.MetadataSource); Assert.Equal("System.Core", definitionResponse.MetadataSource.AssemblyName); Assert.Equal("System.Linq.Enumerable", definitionResponse.MetadataSource.TypeName); Assert.NotEqual(0, definitionResponse.Line); Assert.NotEqual(0, definitionResponse.Column); }
public async Task ReturnsFullNameInMetadata_WhenSymbolIsType() { var controller = new OmnisharpController(CreateTestWorkspace(), null); var definitionResponse = await controller.GotoDefinition(new GotoDefinitionRequest { FileName = "bar.cs", Line = 10, Column = 23, Timeout = 60000, WantMetadata = true }); Assert.Null(definitionResponse.FileName); Assert.NotNull(definitionResponse.MetadataSource); Assert.Equal("mscorlib", definitionResponse.MetadataSource.AssemblyName); Assert.Equal("System.String", definitionResponse.MetadataSource.TypeName); Assert.NotEqual(0, definitionResponse.Line); Assert.NotEqual(0, definitionResponse.Column); }
private async Task <SignatureHelp> GetSignatureHelp(string source) { var lineColumn = TestHelpers.GetLineAndColumnFromDollar(source); source = source.Replace("$", string.Empty); var request = new Request() { FileName = "dummy.cs", Line = lineColumn.Line, Column = lineColumn.Column, Buffer = source }; var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); return(await controller.GetSignatureHelp(request)); }
public async Task ReturnsPositionInMetadata_WhenSymbolIsMethod() { var controller = new OmnisharpController(CreateTestWorkspace(), null); var definitionResponse = await controller.GotoDefinition(new GotoDefinitionRequest { FileName = "bar.cs", Line = 7, Column = 20, Timeout = 60000, WantMetadata = true }); Assert.Null(definitionResponse.FileName); Assert.NotNull(definitionResponse.MetadataSource); Assert.Equal("mscorlib", definitionResponse.MetadataSource.AssemblyName); Assert.Equal("System.Console", definitionResponse.MetadataSource.TypeName); // We probably shouldn't hard code metadata locations (they could change randomly) Assert.NotEqual(0, definitionResponse.Line); Assert.NotEqual(0, definitionResponse.Column); }
private async Task <FixUsingsResponse> RunFixUsings(string fileContents) { var workspace = TestHelpers.CreateSimpleWorkspace(fileContents, fileName); var fakeOptions = new FakeOmniSharpOptions(); fakeOptions.Options = new OmniSharpOptions(); fakeOptions.Options.FormattingOptions = new FormattingOptions() { NewLine = "\n" }; var controller = new OmnisharpController(workspace, fakeOptions); var request = new FixUsingsRequest { FileName = fileName, Buffer = fileContents }; return(await controller.FixUsings(request)); }
public async Task HighlightExcludesUnwantedNames() { var code = @" namespace N1 { class C1 { int n = true; } } "; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary <string, string> { { "a.cs", code } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var regions = await controller.Highlight(new HighlightRequest() { FileName = "a.cs", ExcludeClassifications = new [] { HighlightClassification.Name } }); Assert.DoesNotContain(regions.Highlights, x => x.Kind.EndsWith(" name")); }
private async Task <NavigateResponse> SendRequest(OmnisharpWorkspace workspace, string fileName, string fileContent, NavigateDirection upOrDown) { var initialCursorLineColumn = TestHelpers.GetLineAndColumnFromDollar(TestHelpers.RemovePercentMarker(fileContent)); var fileContentNoDollarMarker = TestHelpers.RemoveDollarMarker(fileContent); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = new Request { Line = initialCursorLineColumn.Line, Column = initialCursorLineColumn.Column, FileName = fileName, Buffer = fileContentNoDollarMarker }; if (upOrDown == NavigateDirection.UP) { return(await controller.NavigateUp(request)); } else { return(await controller.NavigateDown(request)); } }
public async Task FormatRespectsIndentationSize() { var source = "namespace Bar\n{\n class Foo {}\n}"; var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions { Options = new OmniSharpOptions { FormattingOptions = new FormattingOptions { NewLine = "\n", IndentationSize = 1 } } }); var result = await controller.FormatDocument(new Request { FileName = "dummy.cs" }); Assert.Equal("namespace Bar\n{\n class Foo { }\n}", result.Buffer); }
private async Task<QuickFixResponse> FindSymbolsWithFilter(string source, string filter) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); var request = new FindSymbolsRequest { Filter = filter }; return await controller.FindSymbols(request); }
private async Task<NavigateResponse> SendRequest(OmnisharpWorkspace workspace, string fileName, string fileContent, NavigateDirection upOrDown) { var initialCursorLineColumn = TestHelpers.GetLineAndColumnFromDollar(TestHelpers.RemovePercentMarker(fileContent)); var fileContentNoDollarMarker = TestHelpers.RemoveDollarMarker(fileContent); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = new Request { Line = initialCursorLineColumn.Line, Column = initialCursorLineColumn.Column, FileName = fileName, Buffer = fileContentNoDollarMarker }; if (upOrDown == NavigateDirection.UP) { return await controller.NavigateUp(request); } else { return await controller.NavigateDown(request); } }
public async Task HighlightStringInterpolation() { var code = @" class C1 { string s = $""{5}""; } "; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "a.cs", code } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var regions = await controller.Highlight(new HighlightRequest() { FileName = "a.cs" }); AssertSyntax(regions.Highlights, code, 0, Token("class", "keyword"), Token("C1", "class name"), Token("{", "punctuation"), Token("string", "keyword"), Token("s", "identifier"), Token("=", "operator"), Token("$\"", "string"), Token("{", "punctuation"), Token("5", "number"), Token("}", "punctuation"), Token("\"", "string"), Token(";", "punctuation"), Token("}", "punctuation")); }
private static async Task<IEnumerable<LinePositionSpanTextChange>> FormattingChangesForRange(FormatRangeRequest req) { var workspace = TestHelpers.CreateSimpleWorkspace(req.Buffer, req.FileName); var controller = new OmnisharpController(workspace, null); return (await controller.FormatRange(req)).Changes; }
private async Task<QuickFixResponse> FindUsages(Dictionary<string, string> sources, string currentFile, bool onlyThisFile, bool excludeDefinition = false) { var workspace = TestHelpers.CreateSimpleWorkspace(sources); var controller = new OmnisharpController(workspace, null); var request = CreateRequest(sources[currentFile], currentFile, excludeDefinition); request.OnlyThisFile = onlyThisFile; var bufferFilter = new UpdateBufferFilter(workspace); bufferFilter.OnActionExecuting(TestHelpers.CreateActionExecutingContext(request, controller)); return await controller.FindUsages(request); }
private async Task<SignatureHelp> GetSignatureHelp(string source) { var lineColumn = TestHelpers.GetLineAndColumnFromDollar(source); source = source.Replace("$", string.Empty); var request = new Request() { FileName = "dummy.cs", Line = lineColumn.Line, Column = lineColumn.Column, Buffer = source }; var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); return await controller.GetSignatureHelp(request); }
private async Task<IEnumerable<AutoCompleteResponse>> FindCompletionsAsync(string source, AutoCompleteRequest request = null) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); if (request == null) { request = CreateRequest(source); } var response = await controller.AutoComplete(request); var completions = response as IEnumerable<AutoCompleteResponse>; return completions; }
public async Task HighlightExcludesUnwantedNames() { var code = @" namespace N1 { class C1 { int n = true; } } "; var workspace = TestHelpers.CreateSimpleWorkspace(new Dictionary<string, string> { { "a.cs", code } }); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var regions = await controller.Highlight(new HighlightRequest() { FileName = "a.cs", ExcludeClassifications = new [] { HighlightClassification.Name } }); Assert.DoesNotContain(regions.Highlights, x => x.Kind.EndsWith(" name")); }
private async Task<IEnumerable<string>> FindCompletionsAsync(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, new FakeOmniSharpOptions()); var request = CreateRequest(source); var response = await controller.AutoComplete(request); var completions = response as IEnumerable<AutoCompleteResponse>; return completions.Select(completion => BuildCompletion(completion)); }
private async Task<FixUsingsResponse> RunFixUsings(string fileContents) { var workspace = TestHelpers.CreateSimpleWorkspace(fileContents, fileName); var fakeOptions = new FakeOmniSharpOptions(); fakeOptions.Options = new OmniSharpOptions(); fakeOptions.Options.FormattingOptions = new FormattingOptions() {NewLine = "\n"}; var controller = new OmnisharpController(workspace, fakeOptions); var request = new FixUsingsRequest { FileName = fileName, Buffer = fileContents }; return await controller.FixUsings(request); }
private async Task<QuickFixResponse> FindSymbols(string source) { var workspace = TestHelpers.CreateSimpleWorkspace(source); var controller = new OmnisharpController(workspace, null); return await controller.FindSymbols(); }