Skip to content

Commit 6cfd43a

Browse files
[automated] Merge branch 'prerelease' => 'release' (#8952)
2 parents b6088e9 + 9d46e00 commit 6cfd43a

File tree

74 files changed

+2808
-851
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+2808
-851
lines changed

.github/workflows/branch-snap.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ jobs:
2828
- name: Install NodeJS
2929
uses: actions/setup-node@v4
3030
with:
31-
node-version: '18.x'
32-
- name: Install dependencies
31+
node-version: '24.x'
32+
- name: Install dependencies
3333
run: npm ci
3434
- name: Update version.json
3535
run: |
@@ -59,8 +59,8 @@ jobs:
5959
- name: Install NodeJS
6060
uses: actions/setup-node@v4
6161
with:
62-
node-version: '18.x'
63-
- name: Install dependencies
62+
node-version: '24.x'
63+
- name: Install dependencies
6464
run: npm ci
6565
- name: Update version.json for release
6666
run: npx gulp updateVersionForStableRelease

.github/workflows/copilot-setup-steps.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,13 +28,13 @@ jobs:
2828
# Install Node.js (required for TypeScript compilation and npm packages)
2929
- uses: actions/setup-node@v4
3030
with:
31-
node-version: '20'
31+
node-version: '24'
3232
cache: 'npm'
3333

3434
# Install .NET SDK (required for some build components and MSBuild tasks)
3535
- uses: actions/setup-dotnet@v4
3636
with:
37-
dotnet-version: '8.0.x'
37+
dotnet-version: '10.0.x'
3838

3939
# Install npm dependencies
4040
- name: Install dependencies
@@ -52,4 +52,4 @@ jobs:
5252
- name: Install dependencies
5353
run: gulp installDependencies
5454

55-
55+

.github/workflows/update-changelog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- name: Install NodeJS
2323
uses: actions/setup-node@v4
2424
with:
25-
node-version: '20.x'
25+
node-version: '24.x'
2626
- name: Install dependencies
2727
run: npm ci
2828
- name: Update CHANGELOG

CHANGELOG.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,98 @@
33
- Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951)
44
- Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876)
55

6+
# 2.120.x
7+
* See 2.115.x for full list of changes.
8+
9+
# 2.115.x
10+
* Update Roslyn to 5.5.0-2.26080.10 (PR: [#8941](https://github.com/dotnet/vscode-csharp/pull/8941))
11+
* LSP: Tolerate non-mutating requests where we are unable to determine the language (PR: [#81660](https://github.com/dotnet/roslyn/pull/81660))
12+
* Update SQLitePCLRaw to 2.1.6 and remove NETSDK1206 suppressions (PR: [#82156](https://github.com/dotnet/roslyn/pull/82156))
13+
* Only report work done progress if the client supports it (PR: [#82184](https://github.com/dotnet/roslyn/pull/82184))
14+
* Convert language server project into .NET tool (PR: [#82154](https://github.com/dotnet/roslyn/pull/82154))
15+
* Add more details to stale project update warning (PR: [#82053](https://github.com/dotnet/roslyn/pull/82053))
16+
* Cleanup server capabilities providers and delete unused LSP providers (PR: [#82116](https://github.com/dotnet/roslyn/pull/82116))
17+
* Reduce allocations in LSP completion handling. (PR: [#82133](https://github.com/dotnet/roslyn/pull/82133))
18+
* Update xamlTools to 18.4.11427.62 (PR: [#8929](https://github.com/dotnet/vscode-csharp/pull/8929))
19+
* Implicit XML namespaces for MAUI feature (PR: AzDO#698019)
20+
* Fix MAUI TAP initialization issue and improve logging (PR: AzDO#702593)
21+
22+
# 2.114.x
23+
* Adjust Select Project Context editor menu item location (PR: [#8907](https://github.com/dotnet/vscode-csharp/pull/8907))
24+
* Replace vsts-npm-auth with ado-npm-auth in documentation and scripts (PR: [#8906](https://github.com/dotnet/vscode-csharp/pull/8906))
25+
* Clarify vsts-npm-auth only required when adding new packages (PR: [#8850](https://github.com/dotnet/vscode-csharp/pull/8850))
26+
* Update Razor to 10.0.0-preview.26075.11 (PR: [#8914](https://github.com/dotnet/vscode-csharp/pull/8914))
27+
* Add IndentByTwo attribute indent style option for Razor formatting (PR: [#12700](https://github.com/dotnet/razor/pull/12700))
28+
* Fix ordering logic for folding ranges, to fix expression bodied method folding (PR: [#12695](https://github.com/dotnet/razor/pull/12695))
29+
* Update Roslyn to 5.4.0-2.26076.6 (PR: [#8921](https://github.com/dotnet/vscode-csharp/pull/8921))
30+
* [EnC] Use default encoding stored in the PDB for creating committed document SourceText (PR: [#81912](https://github.com/dotnet/roslyn/pull/81912))
31+
* Fix setting checksum algorithm when mapping projects (PR: [#82051](https://github.com/dotnet/roslyn/pull/82051))
32+
* Fix race in AbstractFormatEngine.GetChainedFormattingRules (PR: [#82079](https://github.com/dotnet/roslyn/pull/82079))
33+
* Fix crash when seeing if code can be converted to collection expressions (PR: [#82104](https://github.com/dotnet/roslyn/pull/82104))
34+
* feat: foreach completion (PR: [#81850](https://github.com/dotnet/roslyn/pull/81850))
35+
* Use document structure in breadcrumbs, sticky scroll, and outline in VSCode (PR: [#81993](https://github.com/dotnet/roslyn/pull/81993))
36+
* Keep comments when converting coalesce expressions (PR: [#82062](https://github.com/dotnet/roslyn/pull/82062))
37+
* 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))
38+
* Don't offer "Use coalesce expression" when if-statement contains directives (PR: [#82041](https://github.com/dotnet/roslyn/pull/82041))
39+
* Fix detection of embedded c# code (PR: [#82033](https://github.com/dotnet/roslyn/pull/82033))
40+
* Fix issue with 'remove unnecessary suppression' and field/property initializers (PR: [#81899](https://github.com/dotnet/roslyn/pull/81899))
41+
* Extensions: RemovedUnusedMembers should analyze symbol usages within extension blocks too (PR: [#81996](https://github.com/dotnet/roslyn/pull/81996))
42+
* Don't offer 'use ??' when pointers are involved (PR: [#81988](https://github.com/dotnet/roslyn/pull/81988))
43+
* Add 'find references' support for collection-expression-builder methods. (PR: [#81770](https://github.com/dotnet/roslyn/pull/81770))
44+
* Support inference in collection expressions (PR: [#77534](https://github.com/dotnet/roslyn/pull/77534))
45+
46+
# 2.113.x
47+
* Add explorer context menu item for changing project context (PR: [#8896](https://github.com/dotnet/vscode-csharp/pull/8896))
48+
* Small fixes for project context selector (PR: [#8889](https://github.com/dotnet/vscode-csharp/pull/8889))
49+
* Update Razor to 10.0.0-preview.26066.2 (PR: [#8894](https://github.com/dotnet/vscode-csharp/pull/8894))
50+
* Ignore case when parsing enum values in settings in VS Code (PR: [#12667](https://github.com/dotnet/razor/pull/12667))
51+
52+
# 2.112.x
53+
* Add project context refresh support (PR: [#8876](https://github.com/dotnet/vscode-csharp/pull/8876))
54+
* Add ability to select a document's project context (PR: [#7328](https://github.com/dotnet/vscode-csharp/pull/7328))
55+
* Fix TFM detection for .NET 10+ to enable launch.json generation (PR: [#8873](https://github.com/dotnet/vscode-csharp/pull/8873))
56+
* Fix JavaScript highlighting in Razor files after C# control structures without braces (PR: [#8865](https://github.com/dotnet/vscode-csharp/pull/8865))
57+
* Update Razor to 10.0.0-preview.26059.2 (PR: [#8877](https://github.com/dotnet/vscode-csharp/pull/8877))
58+
* Encode double slash as underscore slash in hint names (PR: [#12597](https://github.com/dotnet/razor/pull/12597))
59+
* Navigate to a Razor file when GTD/FAR/GTI is run in C# on the class name (PR: [#12580](https://github.com/dotnet/razor/pull/12580))
60+
* Fix rename of components in the global namespace (PR: [#12577](https://github.com/dotnet/razor/pull/12577))
61+
* Return a document symbol representing the "Render" method for a Razor file (PR: [#12568](https://github.com/dotnet/razor/pull/12568))
62+
* Filter our html diagnostics when a tag helper attribute spans multiple lines (PR: [#12654](https://github.com/dotnet/razor/pull/12654))
63+
* Handle Html indentation ourselves, rather than using the IDE formatter (PR: [#12623](https://github.com/dotnet/razor/pull/12623))
64+
* Add new option to control attribute indent style (PR: [#12625](https://github.com/dotnet/razor/pull/12625))
65+
* Fix formatting with adjacent C# templates (PR: [#12636](https://github.com/dotnet/razor/pull/12636))
66+
* Emit the start of multiline implicit expressions the same as explicit. (PR: [#12624](https://github.com/dotnet/razor/pull/12624))
67+
* Rename a .razor file when Roslyn renames the component type name (PR: [#12606](https://github.com/dotnet/razor/pull/12606))
68+
* Rename component tags and type references when a Razor file is renamed (PR: [#12561](https://github.com/dotnet/razor/pull/12561))
69+
* Handle conflict markers (PR: [#12642](https://github.com/dotnet/razor/pull/12642))
70+
* Fix cross project span and edit mapping (PR: [#12614](https://github.com/dotnet/razor/pull/12614))
71+
* Update Roslyn to 5.4.0-2.26062.9 (PR: [#7328](https://github.com/dotnet/vscode-csharp/pull/7328))
72+
* Add a notification handler for project context changed. (PR: [#81942](https://github.com/dotnet/roslyn/pull/81942))
73+
* Ensure IDE does not use .editorconfig for source generated files (PR: [#81911](https://github.com/dotnet/roslyn/pull/81911))
74+
* Send a key across identifying contents of the project context list (PR: [#81940](https://github.com/dotnet/roslyn/pull/81940))
75+
* Include Enc diagnostics in Razor requests (PR: [#81941](https://github.com/dotnet/roslyn/pull/81941))
76+
* Fix completions after attribute list in lambdas (PR: [#81961](https://github.com/dotnet/roslyn/pull/81961))
77+
* Add ProjectContext refresh queue (PR: [#81938](https://github.com/dotnet/roslyn/pull/81938))
78+
* Add back async fixers (PR: [#81835](https://github.com/dotnet/roslyn/pull/81835))
79+
* Fix crash in convert-if-to-switch (PR: [#81724](https://github.com/dotnet/roslyn/pull/81724))
80+
* Add code-folding/structure-guides/sticky-scroll support for extension blocks (PR: [#81667](https://github.com/dotnet/roslyn/pull/81667))
81+
* Improve go-to-def in situations where compiler returns multiple candidates. (PR: [#81583](https://github.com/dotnet/roslyn/pull/81583))
82+
* Add willRenameFiles support, and an abstraction for extenders to implement (PR: [#81549](https://github.com/dotnet/roslyn/pull/81549))
83+
* Support `// lang=c#` along with `// lang=c#-test` (PR: [#81558](https://github.com/dotnet/roslyn/pull/81558))
84+
85+
# 2.111.x
86+
* Razor logging cleanup and documentation update (PR: [#8843](https://github.com/dotnet/vscode-csharp/pull/8843))
87+
* Create Razor tags based on the razorExtension component (PR: [#8830](https://github.com/dotnet/vscode-csharp/pull/8830))
88+
* Add second opt-out flag for file-based programs (PR: [#8823](https://github.com/dotnet/vscode-csharp/pull/8823))
89+
* Update extension to run on .NET 10 (PR: [#8839](https://github.com/dotnet/vscode-csharp/pull/8839))
90+
* Update Roslyn to 5.3.0-2.25604.5 (PR: [#8839](https://github.com/dotnet/vscode-csharp/pull/8839))
91+
* Build our libraries against net10.0 (PR: [#81545](https://github.com/dotnet/roslyn/pull/81545))
92+
* Update Roslyn LSP server to .net10 (PR: [#81508](https://github.com/dotnet/roslyn/pull/81508))
93+
* Fix InvalidCastException in ConvertForToForEach with tuples (PR: [#81531](https://github.com/dotnet/roslyn/pull/81531))
94+
* Update Razor to 10.0.0-preview.25608.3 (PR: [#8844](https://github.com/dotnet/vscode-csharp/pull/8844))
95+
* Update C# code when Razor components are renamed (PR: [#12534](https://github.com/dotnet/razor/pull/12534))
96+
* Ensure formatting can't change string literal contents (PR: [#12556](https://github.com/dotnet/razor/pull/12556))
97+
698
# 2.110.x
799
* See 2.103.x for full list of changes.
8100

CONTRIBUTING.md

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ Setting up your local development environment for the vscode-csharp repository i
2323

2424
Before you start, make sure you have the following software installed on your machine:
2525

26-
* Node.js v20 ([v20.17.0 LTS](https://nodejs.org/en/blog/release/v20.17.0)).
26+
* Node.js v24 ([24.13.0 LTS](https://nodejs.org/en/blog/release/v24.13.0)).
2727
* Note - Building with higher major versions of Node.js is not advised - it may work but we do not test it.
2828
* Npm (The version shipped with node is fine)
29-
* .NET 8.0 SDK (dotnet should be on your path)
29+
* .NET 10.0 SDK (dotnet should be on your path)
3030

3131
Once you have these installed, you can navigate to the cloned vscode-csharp repository to proceed with building, running, and testing the repository.
3232

@@ -38,11 +38,11 @@ Follow these steps to build, run, and test the repository:
3838

3939
If you have the ability to run powershell, you can invoke "init.ps1" from the root of the repo. If not, the following steps will get build going for you as well:
4040

41-
1. Run `npm install -g vsts-npm-auth`, then run `vsts-npm-auth -config .npmrc` - This command will configure your credentials for the next command.
42-
a. If you have already authenticated before, but the token expired, you may need to run `vsts-npm-auth -config .npmrc -f` instead.
43-
2. Run `npm i` - This command installs the project dependencies.
44-
3. Run `npm i -g gulp` - This command installs Gulp globally.
45-
4. Run `gulp installDependencies` - This command downloads the various dependencies as specified by the version in the [package.json](package.json) file.
41+
1. Run `npm i` - This command installs the project dependencies.
42+
2. Run `npm i -g gulp` - This command installs Gulp globally.
43+
3. Run `gulp installDependencies` - This command downloads the various dependencies as specified by the version in the [package.json](package.json) file.
44+
45+
**Note**: Authentication with `ado-npm-auth` is only required when adding new packages to the feeds. For regular development with existing dependencies, authentication is not necessary. See the [Updating NPM packages](#updating-npm-packages) section for details.
4646

4747
You can now run `code .` - This command opens the project in Visual Studio Code.
4848

@@ -86,7 +86,7 @@ The server DLL is typically at `$roslynRepoRoot/artifacts/bin/Microsoft.CodeAnal
8686
1. Clone the [Razor repository](https://github.com/dotnet/razor). This repository contains the Razor server implementation.
8787
2. Follow the build instructions provided in the repository.
8888

89-
The server DLL is typically at `$razorRepoRoot/artifacts/bin/rzls/Debug/net9.0`.
89+
The extension is typically at `$razorRepoRoot/artifacts/bin/Microsoft.VisualStudioCode.RazorExtension/Debug/net9.0`.
9090

9191
### Debugging Local Language Servers
9292

@@ -148,24 +148,19 @@ Or, in VSCode settings (`Ctrl+,`):
148148
Add the following lines to your `settings.json`. Replace `<razorRepoRoot>` with the actual path to your Razor repository.
149149

150150
```json
151-
"razor.languageServer.debug": true,
152-
"razor.languageServer.directory": "<razorRepoRoot>/artifacts/bin/rzls/Debug/net9.0",
153-
"razor.server.trace": "Debug"
151+
"dotnet.server.componentPaths": {
152+
"razorExtension": "<razorRepoRoot>/artifacts/bin/Microsoft.VisualStudioCode.RazorExtension/Debug/net9.0"
153+
},
154154
```
155155

156-
---
157-
158-
Or, in VSCode settings (`Ctrl+,`):
159-
160-
1. Search for `Razor`.
161-
2. Set `razor.languageServer.directory` to the path of your Razor DLL.
162-
3. Enable `razor.languageServer.debug`.
163-
4. Set `razor.server.trace` to `Debug`. This gives you more detailed log messages in the output window.
164-
165156
### Updating NPM packages
166157
We use the .NET eng AzDo artifacts feed https://dnceng.pkgs.visualstudio.com/public/_packaging/dotnet-public-npm/npm/registry/ with upstreams to the public npm registry.
167-
Auth is required in order to pull new packages from the upstream. This can be done by running `vsts-npm-auth -config .npmrc`.
168-
If you need to renew authorization, you can force it via `vsts-npm-auth -config .npmrc -F`
158+
159+
**Note**: Authentication is only required when adding new packages to the feeds. For installing existing dependencies during regular development, authentication is not necessary.
160+
161+
To add new packages, you must authenticate by running:
162+
1. `npm install -g ado-npm-auth` (if not already installed)
163+
2. `ado-npm-auth -c .npmrc`
169164

170165
## Creating VSIX Packages for the Extension
171166

Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55
Defines the lowest supported target framework for the extension.
66
Used by server download / integration tests to ensure they run when only this SDK is installed.
77
-->
8-
<LowestSupportedTargetFramework>net6.0</LowestSupportedTargetFramework>
8+
<LowestSupportedTargetFramework>net8.0</LowestSupportedTargetFramework>
99
</PropertyGroup>
10-
</Project>
10+
</Project>

azure-pipelines.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ pr:
4040
# Changes to documentation are not functional changes.
4141
- '**.md'
4242
- CODEOWNERS
43+
# Changes to init.ps1 is not exercised in CI
44+
- 'init.ps1'
4345
# Changes to the vesion is not a functional change. The extension version is updated by the branch-snap GH action.
4446
- 'version.json'
4547
# Changes to text files (e.g. third party notices) are not functional changes.
@@ -119,7 +121,7 @@ stages:
119121
pool:
120122
name: NetCore-Public
121123
demands: ImageOverride -equals build.ubuntu.2204.amd64.open
122-
containerName: mcr.microsoft.com/dotnet/sdk:10.0.100-rc.2-noble
124+
containerName: mcr.microsoft.com/dotnet/sdk:10.0-noble
123125

124126
- stage: Test_Windows_Stage
125127
displayName: Test Windows

azure-pipelines/build-vsix.yml

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ stages:
2929
name: netcore1espool-internal
3030
image: 1es-ubuntu-2204
3131
${{ else }}:
32-
name: Azure Pipelines
33-
vmImage: ubuntu-latest
32+
name: NetCore-Public
33+
demands: ImageOverride -equals build.ubuntu.2204.amd64.open
3434
os: linux
3535
steps:
3636
- pwsh: |
@@ -98,8 +98,8 @@ stages:
9898
name: netcore1espool-internal
9999
image: 1es-ubuntu-2204
100100
${{ else }}:
101-
name: Azure Pipelines
102-
vmImage: ubuntu-latest
101+
name: NetCore-Public
102+
demands: ImageOverride -equals build.ubuntu.2204.amd64.open
103103
os: linux
104104
dependsOn: SetRunVariables
105105
variables:
@@ -138,7 +138,6 @@ stages:
138138
displayName: Use .NET Core sdk 8.0.x
139139
inputs:
140140
version: 8.0.x
141-
142141
# If we're in an official build, install the signing plugin
143142
- ${{ if eq(parameters.isOfficial, true) }}:
144143
- task: MicroBuildSigningPlugin@4

azure-pipelines/green-insertion.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,7 @@ jobs:
3131
vmImage: ubuntu-latest
3232
steps:
3333
- checkout: none
34-
- task: NodeTool@0
35-
displayName: ⚙️ Install Node.js
36-
inputs:
37-
versionSource: spec
38-
versionSpec: 16.x
34+
- template: /azure-pipelines/install-node.yml@self
3935
- powershell: |
4036
"registry=https://pkgs.dev.azure.com/devdiv/DevDiv/_packaging/vs-green/npm/registry/`nalways-auth=true`n" | Tee-Object -FilePath '$(Pipeline.Workspace)/.npmrc'
4137
displayName: ⚙️ Prepare for publish

azure-pipelines/install-node.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
steps:
22
- task: NodeTool@0
3-
displayName: 'Install Node.js 20.x'
3+
displayName: 'Install Node.js 24.x'
44
inputs:
5-
versionSpec: '20.x'
5+
versionSpec: '24.x'

0 commit comments

Comments
 (0)