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
27 changes: 23 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,37 @@
- Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951)
- Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876)

# 2.122.x

# 2.121.x

# 2.114.x
* Adjust Select Project Context editor menu item location (PR: [#8907](https://github.com/dotnet/vscode-csharp/pull/8907))
* Replace vsts-npm-auth with ado-npm-auth in documentation and scripts (PR: [#8906](https://github.com/dotnet/vscode-csharp/pull/8906))
* Clarify vsts-npm-auth only required when adding new packages (PR: [#8850](https://github.com/dotnet/vscode-csharp/pull/8850))
* Update Razor to 10.0.0-preview.26075.11 (PR: [#8914](https://github.com/dotnet/vscode-csharp/pull/8914))
* Add IndentByTwo attribute indent style option for Razor formatting (PR: [#12700](https://github.com/dotnet/razor/pull/12700))
* Fix ordering logic for folding ranges, to fix expression bodied method folding (PR: [#12695](https://github.com/dotnet/razor/pull/12695))

* Update Roslyn to 5.4.0-2.26076.6 (PR: [#8921](https://github.com/dotnet/vscode-csharp/pull/8921))
* [EnC] Use default encoding stored in the PDB for creating committed document SourceText (PR: [#81912](https://github.com/dotnet/roslyn/pull/81912))
* Fix setting checksum algorithm when mapping projects (PR: [#82051](https://github.com/dotnet/roslyn/pull/82051))
* Fix race in AbstractFormatEngine.GetChainedFormattingRules (PR: [#82079](https://github.com/dotnet/roslyn/pull/82079))
* Fix crash when seeing if code can be converted to collection expressions (PR: [#82104](https://github.com/dotnet/roslyn/pull/82104))
* feat: foreach completion (PR: [#81850](https://github.com/dotnet/roslyn/pull/81850))
* Use document structure in breadcrumbs, sticky scroll, and outline in VSCode (PR: [#81993](https://github.com/dotnet/roslyn/pull/81993))
* Keep comments when converting coalesce expressions (PR: [#82062](https://github.com/dotnet/roslyn/pull/82062))
* Adds an analyzer/fixer to inform the user when the compiler silently inserts a fallible explicit cast. (PR: [#82039](https://github.com/dotnet/roslyn/pull/82039))
* Don't offer "Use coalesce expression" when if-statement contains directives (PR: [#82041](https://github.com/dotnet/roslyn/pull/82041))
* Fix detection of embedded c# code (PR: [#82033](https://github.com/dotnet/roslyn/pull/82033))
* Fix issue with 'remove unnecessary suppression' and field/property initializers (PR: [#81899](https://github.com/dotnet/roslyn/pull/81899))
* Extensions: RemovedUnusedMembers should analyze symbol usages within extension blocks too (PR: [#81996](https://github.com/dotnet/roslyn/pull/81996))
* Don't offer 'use ??' when pointers are involved (PR: [#81988](https://github.com/dotnet/roslyn/pull/81988))
* Add 'find references' support for collection-expression-builder methods. (PR: [#81770](https://github.com/dotnet/roslyn/pull/81770))
* Support inference in collection expressions (PR: [#77534](https://github.com/dotnet/roslyn/pull/77534))

# 2.113.x
* Add explorer context menu item for changing project context (PR: [#8896](https://github.com/dotnet/vscode-csharp/pull/8896))
* Small fixes for project context selector (PR: [#8889](https://github.com/dotnet/vscode-csharp/pull/8889))
* Update Razor to 10.0.0-preview.26066.2 (PR: [#8894](https://github.com/dotnet/vscode-csharp/pull/8894))
* Ignore case when parsing enum values in settings in VS Code (PR: [#12667](https://github.com/dotnet/razor/pull/12667))
* Ignore case when parsing enum values in settings in VS Code (PR: [#12667](https://github.com/dotnet/razor/pull/12667))

# 2.112.x
* Add project context refresh support (PR: [#8876](https://github.com/dotnet/vscode-csharp/pull/8876))
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"workspace"
],
"defaults": {
"roslyn": "5.4.0-2.26062.9",
"roslyn": "5.4.0-2.26076.6",
"omniSharp": "1.39.14",
"razor": "10.0.0-preview.26075.11",
"razorOmnisharp": "7.0.0-preview.23363.1",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,78 +32,82 @@ describe(`Document Symbol Tests`, () => {
test('Returns all elements', async () => {
const symbols = await GetDocumentSymbols(fileUri);

expect(symbols).toHaveLength(5);
expect(symbols).toHaveLength(1);

// Namespace Test
expect(symbols[0].name).toBe('Test');
expect(symbols[0].kind).toBe(vscode.SymbolKind.Namespace);
expect(symbols[0].children).toHaveLength(5);

const namespaceChildren = symbols[0].children;

// Class C
expect(symbols[0].name).toBe('C');
expect(symbols[0].detail).toBe('Test.C');
expect(symbols[0].kind).toBe(vscode.SymbolKind.Class);
expect(namespaceChildren[0].name).toBe('C');
expect(namespaceChildren[0].kind).toBe(vscode.SymbolKind.Class);
// The range is the entire class, but the selection range is the class name
expect(symbols[0].range).toStrictEqual(new vscode.Range(new vscode.Position(4, 4), new vscode.Position(37, 5)));
expect(symbols[0].selectionRange).toStrictEqual(
expect(namespaceChildren[0].range).toStrictEqual(
new vscode.Range(new vscode.Position(4, 4), new vscode.Position(37, 5))
);
expect(namespaceChildren[0].selectionRange).toStrictEqual(
new vscode.Range(new vscode.Position(4, 10), new vscode.Position(4, 11))
);
expect(symbols[0].children).toHaveLength(20);
expect(namespaceChildren[0].children).toHaveLength(18);

// Field _f
expect(symbols[0].children[0].name).toBe('_f');
expect(symbols[0].children[0].kind).toBe(vscode.SymbolKind.Field);

// Finalize
expect(symbols[0].children[3].name).toBe('~C');
expect(symbols[0].children[3].kind).toBe(vscode.SymbolKind.Method);
expect(namespaceChildren[0].children[0].name).toBe('_f : int');
expect(namespaceChildren[0].children[0].kind).toBe(vscode.SymbolKind.Field);

// Ctor
expect(symbols[0].children[4].name).toBe('C');
expect(symbols[0].children[4].kind).toBe(vscode.SymbolKind.Method);
expect(namespaceChildren[0].children[3].name).toBe('C()');
expect(namespaceChildren[0].children[3].kind).toBe(vscode.SymbolKind.Method);

// EventHandler E1
expect(symbols[0].children[5].name).toBe('E1');
expect(symbols[0].children[5].kind).toBe(vscode.SymbolKind.Event);
// Finalize
expect(namespaceChildren[0].children[4].name).toBe('~C()');
expect(namespaceChildren[0].children[4].kind).toBe(vscode.SymbolKind.Method);

// explicit operator int(C c1)
expect(symbols[0].children[11].name).toBe('explicit operator Int32');
expect(symbols[0].children[11].detail).toBe('explicit operator int(C c1)');
expect(symbols[0].children[11].kind).toBe(vscode.SymbolKind.Operator);
// Method M1
expect(namespaceChildren[0].children[5].name).toBe('M1(int, string, object[]) : void');
expect(namespaceChildren[0].children[5].detail).toBe('M1(int, string, object[]) : void');
expect(namespaceChildren[0].children[5].kind).toBe(vscode.SymbolKind.Method);

// implicit operator int(C c1)
expect(symbols[0].children[12].name).toBe('implicit operator C');
expect(symbols[0].children[12].detail).toBe('implicit operator C(int i)');
expect(symbols[0].children[12].kind).toBe(vscode.SymbolKind.Operator);
// Property P1
expect(namespaceChildren[0].children[6].name).toBe('P1 : int');
expect(namespaceChildren[0].children[6].kind).toBe(vscode.SymbolKind.Property);

// Method M1
expect(symbols[0].children[13].name).toBe('M1');
expect(symbols[0].children[13].detail).toBe('M1(int i, string s, params object[] args)');
expect(symbols[0].children[13].kind).toBe(vscode.SymbolKind.Method);
// EventHandler E1
expect(namespaceChildren[0].children[10].name).toBe('E1 : EventHandler');
expect(namespaceChildren[0].children[10].kind).toBe(vscode.SymbolKind.Event);

// operator !=
expect(symbols[0].children[14].name).toBe('operator !=');
expect(symbols[0].children[14].detail).toBe('operator !=(C c1, int i)');
expect(symbols[0].children[14].kind).toBe(vscode.SymbolKind.Operator);
expect(namespaceChildren[0].children[15].name).toBe('operator !=(C, int) : bool');
expect(namespaceChildren[0].children[15].detail).toBe('operator !=(C, int) : bool');
expect(namespaceChildren[0].children[15].kind).toBe(vscode.SymbolKind.Operator);

// Property P1
expect(symbols[0].children[16].name).toBe('P1');
expect(symbols[0].children[16].kind).toBe(vscode.SymbolKind.Property);
// implicit operator C(int)
expect(namespaceChildren[0].children[16].name).toBe('implicit operator C(int)');
expect(namespaceChildren[0].children[16].detail).toBe('implicit operator C(int)');
expect(namespaceChildren[0].children[16].kind).toBe(vscode.SymbolKind.Operator);

// explicit operator int(C)
expect(namespaceChildren[0].children[17].name).toBe('explicit operator int(C)');
expect(namespaceChildren[0].children[17].detail).toBe('explicit operator int(C)');
expect(namespaceChildren[0].children[17].kind).toBe(vscode.SymbolKind.Operator);

// Struct S
expect(symbols[1].name).toBe('S');
expect(symbols[1].detail).toBe('Test.S');
expect(symbols[1].kind).toBe(vscode.SymbolKind.Struct);
expect(namespaceChildren[1].name).toBe('S');
expect(namespaceChildren[1].kind).toBe(vscode.SymbolKind.Struct);

// Interface I
expect(symbols[2].name).toBe('I');
expect(symbols[2].detail).toBe('Test.I');
expect(symbols[2].kind).toBe(vscode.SymbolKind.Interface);
expect(namespaceChildren[2].name).toBe('I');
expect(namespaceChildren[2].kind).toBe(vscode.SymbolKind.Interface);

// Delegate D
expect(symbols[3].name).toBe('D');
expect(symbols[3].detail).toBe('Test.D');
expect(symbols[3].kind).toBe(vscode.SymbolKind.Method);
expect(namespaceChildren[3].name).toBe('D() : void');
expect(namespaceChildren[3].kind).toBe(vscode.SymbolKind.Method);

// Enum E
expect(symbols[4].name).toBe('E');
expect(symbols[4].detail).toBe('Test.E');
expect(symbols[4].kind).toBe(vscode.SymbolKind.Enum);
expect(namespaceChildren[4].name).toBe('E');
expect(namespaceChildren[4].kind).toBe(vscode.SymbolKind.Enum);
});
});

Expand Down
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/master/src/NerdBank.GitVersioning/version.schema.json",
"version": "2.122",
"version": "2.121",
"publicReleaseRefSpec": [
"^refs/heads/release$",
"^refs/heads/prerelease$",
Expand Down