Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,12 @@
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>

<OmniSharpExtensionsPackageVersion>0.19.9</OmniSharpExtensionsPackageVersion>
<MicrosoftExtensionPackageVersion>8.0.0</MicrosoftExtensionPackageVersion>
<MicrosoftExtensionPackageVersion>9.0.0</MicrosoftExtensionPackageVersion>
<MicrosoftBaseCommonLibraryVersion>9.0.0</MicrosoftBaseCommonLibraryVersion>
<MicrosoftTestPackageVersion>17.8.0</MicrosoftTestPackageVersion>
<MSBuildPackageVersion>17.3.2</MSBuildPackageVersion>
<NuGetPackageVersion>6.13.0-rc.95</NuGetPackageVersion>
<RoslynPackageVersion>4.13.0-3.24620.4</RoslynPackageVersion>
<NuGetPackageVersion>6.14.0-preview.1.45</NuGetPackageVersion>
<RoslynPackageVersion>4.14.0-3.25168.13</RoslynPackageVersion>
<XunitPackageVersion>2.6.1</XunitPackageVersion>
</PropertyGroup>

Expand Down Expand Up @@ -43,7 +44,7 @@
<PackageVersion Include="Microsoft.CodeAnalysis.ExternalAccess.OmniSharp" Version="$(RoslynPackageVersion)" />
<PackageVersion Include="Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.CSharp" Version="$(RoslynPackageVersion)" />

<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.Caching.Memory" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Configuration.CommandLine" Version="$(MicrosoftExtensionPackageVersion)" />
Expand All @@ -55,7 +56,7 @@
<PackageVersion Include="Microsoft.Extensions.FileSystemGlobbing" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging.Console" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Options" Version="$(MicrosoftExtensionPackageVersion)" />
<PackageVersion Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="$(MicrosoftExtensionPackageVersion)" />

<PackageVersion Include="Microsoft.Build.Locator" Version="1.6.10" />
Expand All @@ -82,14 +83,14 @@

<PackageVersion Include="SQLitePCLRaw.bundle_green" Version="2.1.8" />

<PackageVersion Include="System.Collections.Immutable" Version="8.0.0" />
<PackageVersion Include="System.ComponentModel.Composition" Version="8.0.0" />
<PackageVersion Include="System.Composition" Version="8.0.0" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="8.0.0" />
<PackageVersion Include="System.Collections.Immutable" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.ComponentModel.Composition" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.Composition" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.Configuration.ConfigurationManager" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.Memory" Version="4.5.5" />
<PackageVersion Include="System.Reflection.Metadata" Version="8.0.0" />
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
<PackageVersion Include="System.Threading.Tasks.Dataflow" Version="8.0.0" />
<PackageVersion Include="System.Reflection.Metadata" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.Text.Json" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.Threading.Tasks.Dataflow" Version="$(MicrosoftBaseCommonLibraryVersion)" />
<PackageVersion Include="System.ValueTuple" Version="4.5.0" />

<PackageVersion Include="System.Reactive" Version="6.0.0" />
Expand Down
3 changes: 2 additions & 1 deletion build/Settings.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<LangVersion>12.0</LangVersion>
<LangVersion>Preview</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<GenerateAssemblyInfo>true</GenerateAssemblyInfo>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings>
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to suppress warnings due to building against net6.0 with net9.0 libraries.

<NoWarn>NU1701;NU5104</NoWarn>
<IsPackable>false</IsPackable>
<Authors>OmniSharp Contributors</Authors>
Expand Down
2 changes: 1 addition & 1 deletion src/OmniSharp.Abstractions/Configuration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ internal static class Configuration
{
public static bool ZeroBasedIndices = false;

public const string RoslynVersion = "4.13.0.0";
public const string RoslynVersion = "4.14.0.0";
public const string RoslynPublicKeyToken = "31bf3856ad364e35";

public readonly static string RoslynFeatures = GetRoslynAssemblyFullName("Microsoft.CodeAnalysis.Features");
Expand Down
1 change: 1 addition & 0 deletions tests/OmniSharp.Cake.Tests/CodeActionsV2Facts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ public void Whatever()
("System.Text.RegularExpressions.Regex", CodeActionKind.QuickFix),
("Extract method", CodeActionKind.RefactorExtract),
("Extract local function", CodeActionKind.RefactorExtract),
("Use expression body for method", CodeActionKind.Refactor),
("Introduce local for 'Regex.Match(\"foo\", \"bar\")'", CodeActionKind.Refactor),
("Introduce parameter for 'Regex.Match(\"foo\", \"bar\")' -> and update call sites directly", CodeActionKind.Refactor),
("Introduce parameter for 'Regex.Match(\"foo\", \"bar\")' -> into extracted method to invoke at call sites", CodeActionKind.Refactor),
Expand Down
2 changes: 2 additions & 0 deletions tests/OmniSharp.Lsp.Tests/OmniSharpCodeActionHandlerFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ public void Whatever()
"Generate type 'Console' -> Generate nested class 'Console'",
"Extract local function",
"Extract method",
"Use expression body for method",
"Introduce local for 'Console.Write(\"should be using System;\")'"
}
: new List<string>
Expand All @@ -168,6 +169,7 @@ public void Whatever()
"Generate type 'Console' -> Generate nested class 'Console'",
"Extract local function",
"Extract method",
"Use expression body for method",
"Introduce local for 'Console.Write(\"should be using System;\")'"
};

Expand Down
6 changes: 3 additions & 3 deletions tests/OmniSharp.Lsp.Tests/OmnisharpCompletionHandlerFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,7 @@ public static void Test(this object o)

[Theory]
[InlineData("dummy.cs")]
[InlineData("dummy.csx")]
// [InlineData("dummy.csx")] - Skipping for being flaky
public async Task UsingsAddedInOrder(string filename)
{

Expand Down Expand Up @@ -944,8 +944,8 @@ public class Derived : Base
Assert.Equal(4, item.TextEdit.TextEdit.Range.Start.Character);
Assert.Equal(8, item.TextEdit.TextEdit.Range.End.Line);
Assert.Equal(13, item.TextEdit.TextEdit.Range.End.Character);
Assert.Equal("public override string Prop => throw new NotImplementedException();", item.TextEdit.TextEdit.NewText);
Assert.Equal(InsertTextFormat.PlainText, item.InsertTextFormat);
Assert.Equal("public override string Prop => throw new NotImplementedException()$0;", item.TextEdit.TextEdit.NewText);
Assert.Equal(InsertTextFormat.Snippet, item.InsertTextFormat);
Assert.Equal("override Prop", item.FilterText);
}

Expand Down
80 changes: 42 additions & 38 deletions tests/OmniSharp.Roslyn.CSharp.Tests/CodeActionsV2Facts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -124,50 +124,54 @@ public void Whatever()

var refactorings = await FindRefactoringNamesAsync(code, roslynAnalyzersEnabled);

var expected = roslynAnalyzersEnabled ? new List<(string Name, string CodeActionKind)>
{
("Fix formatting", CodeActionKind.QuickFix),
("using System;", CodeActionKind.QuickFix),
var expected = roslynAnalyzersEnabled
? new List<(string Name, string CodeActionKind)>
{
("Fix formatting", CodeActionKind.QuickFix),
("using System;", CodeActionKind.QuickFix),
#if NETCOREAPP
("using Internal;", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> Internal.Console", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> System.Console", CodeActionKind.QuickFix),
("using Internal;", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> Internal.Console", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> System.Console", CodeActionKind.QuickFix),
#else
("System.Console", CodeActionKind.QuickFix),
("System.Console", CodeActionKind.QuickFix),
#endif
("Generate variable 'Console' -> Generate property 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate read-only field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate local 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate parameter 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console' in new file", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate nested class 'Console'", CodeActionKind.QuickFix),
("Extract local function", CodeActionKind.RefactorExtract),
("Extract method", CodeActionKind.RefactorExtract),
("Introduce local for 'Console.Write(\"should be using System;\")'", CodeActionKind.Refactor)
} : new List<(string Name, string CodeActionKind)>
{
("using System;", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate property 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate read-only field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate local 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate parameter 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console' in new file", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate nested class 'Console'", CodeActionKind.QuickFix),
("Extract local function", CodeActionKind.RefactorExtract),
("Extract method", CodeActionKind.RefactorExtract),
("Use expression body for method", CodeActionKind.Refactor),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Expression body refactoring are now being offered for non-empty selections dotnet/roslyn#76969

("Introduce local for 'Console.Write(\"should be using System;\")'", CodeActionKind.Refactor)
}
: new List<(string Name, string CodeActionKind)>
{
("using System;", CodeActionKind.QuickFix),
#if NETCOREAPP
("using Internal;", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> Internal.Console", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> System.Console", CodeActionKind.QuickFix),
("using Internal;", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> Internal.Console", CodeActionKind.QuickFix),
("Fully qualify 'Console' -> System.Console", CodeActionKind.QuickFix),
#else
("System.Console", CodeActionKind.QuickFix),
("System.Console", CodeActionKind.QuickFix),
#endif
("Generate variable 'Console' -> Generate property 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate read-only field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate local 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate parameter 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console' in new file", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate nested class 'Console'", CodeActionKind.QuickFix),
("Extract local function", CodeActionKind.RefactorExtract),
("Extract method", CodeActionKind.RefactorExtract),
("Introduce local for 'Console.Write(\"should be using System;\")'", CodeActionKind.Refactor)
};
("Generate variable 'Console' -> Generate property 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate read-only field 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate local 'Console'", CodeActionKind.QuickFix),
("Generate variable 'Console' -> Generate parameter 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console' in new file", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate class 'Console'", CodeActionKind.QuickFix),
("Generate type 'Console' -> Generate nested class 'Console'", CodeActionKind.QuickFix),
("Extract local function", CodeActionKind.RefactorExtract),
("Extract method", CodeActionKind.RefactorExtract),
("Use expression body for method", CodeActionKind.Refactor),
("Introduce local for 'Console.Write(\"should be using System;\")'", CodeActionKind.Refactor)
};
AssertEx.Equal(expected.OrderBy(x => x.Name), refactorings.OrderBy(x => x.Name));
}

Expand Down
32 changes: 16 additions & 16 deletions tests/OmniSharp.Roslyn.CSharp.Tests/CompletionFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1358,8 +1358,8 @@ public class Derived : Base
Assert.Equal(4, item.TextEdit.StartColumn);
Assert.Equal(8, item.TextEdit.EndLine);
Assert.Equal(13, item.TextEdit.EndColumn);
Assert.Equal("public override string Prop => throw new NotImplementedException();", item.TextEdit.NewText);
Assert.Equal(InsertTextFormat.PlainText, item.InsertTextFormat);
Assert.Equal("public override string Prop => throw new NotImplementedException()$0;", item.TextEdit.NewText);
Assert.Equal(InsertTextFormat.Snippet, item.InsertTextFormat);
Assert.Equal("override Prop", item.FilterText);
}

Expand Down Expand Up @@ -2219,20 +2219,20 @@ public static void Main()
[InlineData("dummy.csx")]
public async Task TestOverrideWithTrailingWhitespacePrior(string filename)
{
const string input = @"
namespace N
{
internal class C
{
// The trailing tabs on the previous line and the next line are integral to this bug
override $$
public C()
{
}
}
}
";
string input = $$"""
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reformatted this so that my formatter won't remove this necessary whitespace.

namespace N
{
internal class C
{{{'\t'}}
// The trailing tabs on the previous line and the next line are integral to this bug
{{'\t'}}
override $$
public C()
{
}
}
}
""";

var completions = await FindCompletionsAsync(filename, input, SharedOmniSharpTestHost);

Expand Down
2 changes: 1 addition & 1 deletion tests/OmniSharp.Roslyn.CSharp.Tests/FindReferencesFacts.cs
Original file line number Diff line number Diff line change
Expand Up @@ -549,7 +549,7 @@ public class Foo
Assert.Null(exception);
}

[Fact]
[Fact(Skip = "Need Roslyn EA for the TestGeneratorReference")]
Copy link
Member Author

@JoeRobich JoeRobich Mar 19, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The change to include checksum in the caching (dotnet/roslyn#77141) causes the test to throw due to our TestGeneratorReference class. An interface was added for testing purposes and we can use that once Roslyn exposes it to us through our ExternalAccess library.

public async Task ReturnsGeneratedReferences()
{
const string Source = @"
Expand Down
Loading