Skip to content

Commit b8bbbab

Browse files
committed
Upgrade to 'v2.18.16'
2 parents bddece2 + 1f2546d commit b8bbbab

33 files changed

+797
-172
lines changed

CHANGELOG.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,24 @@
11
## Known Issues
22

33
- Diagnostics related feature requests and improvements [#5951](https://github.com/dotnet/vscode-csharp/issues/5951)
4-
- [O# Parity] Nested code code action support for code fixes and refactorings [#5735](https://github.com/dotnet/vscode-csharp/issues/5735)
5-
- [O# Parity] Nuget restore [#5725](https://github.com/dotnet/vscode-csharp/issues/5725)
64
- Debug from .csproj and .sln [#5876](https://github.com/dotnet/vscode-csharp/issues/5876)
75

86
## Latest
7+
* Fix regression in override completion (PR: [#6869](https://github.com/dotnet/vscode-csharp/pull/6869))
8+
* Update debugger to 2.18.0 release (PR: [#6853](https://github.com/dotnet/vscode-csharp/pull/6853))
9+
10+
## 2.17.7
11+
* Update Roslyn to 4.10.0-2.24102.11 (PR: [#6847](https://github.com/dotnet/vscode-csharp/pull/6847))
12+
* Fix another issue loading .NET projects when only the 6.0 SDK is installed (PR: [#71881](https://github.com/dotnet/roslyn/pull/71881))
13+
* Fix request info leak when project loading is cancelled (PR: [#71737](https://github.com/dotnet/roslyn/pull/71737))
14+
* Load Roslyn DevKit assemblies into the default ALC (PR: [#71807](https://github.com/dotnet/roslyn/pull/71807))
15+
16+
## 2.16.24
17+
* Update Roslyn to 4.10.0-1.24069.13 (PR: [#6823](https://github.com/dotnet/vscode-csharp/pull/6823))
18+
* Fix request metric logging (PR: [#71734](https://github.com/dotnet/roslyn/pull/71734))
19+
* Fix issue loading .NET 6.0 projects when only the 6.0 SDK is installed (PR: [#71597](https://github.com/dotnet/roslyn/pull/71597))
20+
21+
## 2.15.30
922
* Update Roslyn to 4.10.0-1.24058.1 (PR: [#6791](https://github.com/dotnet/vscode-csharp/pull/6791))
1023
* Fix error when a source generated file was present in find references or go to definition requests (PR: [#71395](https://github.com/dotnet/roslyn/pull/71395))
1124
* Remove usages of incorrectly licensed library (Microsoft.VisualStudio.LanguageServer.Protocol) for serialization of LSP json messages (PR: [#68990](https://github.com/dotnet/roslyn/pull/68990))

CONTRIBUTING.md

Lines changed: 124 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,150 @@
1-
## Local development
1+
## Table of Contents
22

3-
### Pre-requisites
3+
- [Setting Up Local Development Environment](#setting-up-local-development-environment)
4+
- [Prerequisites for Development](#prerequisites-for-development)
5+
- [Building, Running, and Testing the Repository](#building-running-and-testing-the-repository)
6+
- [Setting Up Local Language Servers](#setting-up-local-language-servers)
7+
- [Roslyn](#roslyn)
8+
- [Razor](#razor)
9+
- [Debugging Local Language Servers](#debugging-local-language-servers)
10+
- [Configuring Local Language Servers](#configuring-local-language-servers)
11+
- [Finding the `settings.json` file for your workspace](#finding-the-settingsjson-file-for-your-workspace)
12+
- [Configuring Roslyn Language Server](#configuring-roslyn-language-server)
13+
- [Configuring Razor Language Server](#configuring-razor-language-server)
14+
- [Creating VSIX Packages for the Extension](#creating-vsix-packages-for-the-extension)
15+
- [Updating the `Roslyn` Language Server Version](#updating-the-roslyn-language-server-version)
416

5-
First install:
17+
## Setting Up Local Development Environment
18+
19+
Setting up your local development environment for the vscode-csharp repository involves several steps. This guide will walk you through the process.
20+
21+
### Prerequisites for Development
22+
23+
Before you start, make sure you have the following software installed on your machine:
624

725
* Node.js ([v18.17.0 LTS](https://nodejs.org/en/blog/release/v18.17.0) is recommended).
826
* Npm (The version shipped with node is fine)
927
* .NET 7.0 SDK (dotnet should be on your path)
1028

11-
### Build and run the extension
29+
Once you have these installed, you can navigate to the cloned vscode-csharp repository to proceed with building, running, and testing the repository.
30+
31+
### Building, Running, and Testing the Repository
32+
33+
Follow these steps to build, run, and test the repository:
34+
35+
#### Building
36+
37+
1. Run `npm i` - This command installs the project dependencies.
38+
2. Run `npm i -g gulp` - This command installs Gulp globally.
39+
3. Run `gulp installDependencies` - This command downloads the various dependencies as specified by the version in the [package.json](package.json) file.
40+
4. Run `code .` - This command opens the project in Visual Studio Code.
41+
42+
#### Running
43+
44+
After completing the build steps:
45+
46+
1. Run `npm run watch` (Optional) - This command watches for code changes.
47+
2. Press <kbd>Ctrl+Shift+D</kbd> to open the Run view in VS Code and ensure `Launch Extension` is selected.
48+
3. Start debugging by pressing <kbd>F5</kbd>.
49+
50+
#### Testing
51+
52+
To run tests:
53+
54+
1. Execute `npm run test` or press <kbd>F5</kbd> in VS Code with the "Launch Tests" debug configuration selected.
55+
2. For integration tests, select either of the two 'current file' integration tests (one for roslyn and one for razor), from the drop-down and press <kbd>F5</kbd> to start debugging:
56+
- For Roslyn Server: `Launch Current File slnWithCsproj Integration Tests`
57+
- For Razor Server: `Launch Current File BasicRazorApp2_1 Integration Tests`
58+
59+
These will allow you to actually debug the test, but the 'Razor integration tests' configuration does not.
60+
61+
### Setting Up Local Language Servers
62+
63+
This section shows how to set up local Razor or Roslyn language servers for debugging with the VSCode C# extension.
64+
65+
#### Roslyn
66+
67+
1. Clone the [Roslyn repository](https://github.com/dotnet/roslyn). This repository contains the Roslyn server implementation.
68+
2. Follow the build instructions provided in the repository.
69+
70+
The server DLL is typically at `$roslynRepoRoot/artifacts/bin/Microsoft.CodeAnalysis.LanguageServer/Debug/net7.0/Microsoft.CodeAnalysis.LanguageServer.dll`, but this may vary based on the built configuration.
71+
72+
#### Razor
73+
74+
1. Clone the [Razor repository](https://github.com/dotnet/razor). This repository contains the Razor server implementation.
75+
2. Follow the build instructions provided in the repository.
76+
77+
The server DLL is typically at `$razorRepoRoot/artifacts/bin/rzls/Debug/net8.0`.
78+
79+
### Debugging Local Language Servers
80+
81+
Before running the language servers, familiarize yourself with the steps in the [Configuring Local Language Servers](#configuring-local-language-servers) section to configure either the Roslyn or Razor language servers for debugging .
82+
83+
**Note**: You would only need to configure this for the workspace you wish to debug, NOT for the repo root of vscode-csharp repo.
84+
85+
Follow these steps to enable debugging:
86+
87+
1. Press `Ctrl+Shift+D` and then `F5` to launch the extension. This will open a new VS Code instance for `vscode-csharp` repo.
88+
2. In the new VS Code instance, open the project or solution you want to debug.
89+
3. Follow instructions in [Configuring Local Language Servers](#configuring-local-language-servers) to find and configure the workspace settings for the language server you want to debug.
90+
4. Ensure the language server is fully built in Debug mode.
91+
5. Meanwhile in a Visual Studio instance open the `.sln` solution file for the language server you want to debug. Keep this instance open for use in a later step.
92+
6. Back on VS Code, press `Ctrl+Shift+P` and select `Reload Window`. This ensures the changes made in step 3 are applied.
93+
7. After reloading, a window will pop up prompting you to select or open a Visual Studio instance. Now, select the instance you opened in step 5.
94+
8. The language server will now trigger a breakpoint on `Debugger.Launch()` when it starts.
95+
96+
### Configuring Local Language Servers
97+
98+
This section provides instructions on how to debug locally built Roslyn and Razor language servers. You can do this by either directly editing the `settings.json` file of your workspace or through the VSCode settings interface.
1299

13-
To run and develop the extension do the following:
100+
#### Finding the `settings.json` file for your workspace
101+
- Open the Command Palette with `Ctrl+Shift+P` (or `Cmd+Shift+P` on macOS)
102+
- Type "Preferences: Open Workspace Settings"
103+
- Select the option that appears.
104+
- In the Workspace Settings tab, in the upper right corner, you'll see an icon that looks like a document with an arrow, which is the "Open Settings (JSON)" button.
105+
- Click on this button to open the `settings.json` file.
14106

15-
* Run `npm i`
16-
* Run `npm i -g gulp`
17-
* Run `gulp installDependencies` (this will download the various dependencies as specified by the version in the [package.json](package.json))
18-
* Open in Visual Studio Code (`code .`)
19-
* _Optional:_ run `npm run watch`, make code changes
20-
* Press <kbd>F5</kbd> to debug
107+
#### Configuring Roslyn Language Server
21108

22-
To **test** do the following: `npm run test` or <kbd>F5</kbd> in VS Code with the "Launch Tests" debug configuration.
109+
In your workspace `settings.json` file, add the following lines:
23110

24-
### Using a locally developed Roslyn server
111+
```json
112+
"dotnet.server.waitForDebugger": true,
113+
"dotnet.server.path": "<roslynRepoRoot>/artifacts/bin/Microsoft.CodeAnalysis.LanguageServer/Debug/net7.0/Microsoft.CodeAnalysis.LanguageServer.dll"
114+
```
25115

26-
https://github.com/dotnet/roslyn contains the server implementation. Follow the instructions there to build the repo as normal. Once built, the server DLL will be located in the build output directory, typically
116+
Replace <roslynRepoRoot> with the actual path to your Roslyn repository.
27117

28-
`$roslynRepoRoot/artifacts/bin/Microsoft.CodeAnalysis.LanguageServer/Debug/net7.0/Microsoft.CodeAnalysis.LanguageServer.dll`
118+
Or, in VSCode settings (`Ctrl+,`):
29119

30-
depending on which configuration is built. Then, launch the extension here and change the VSCode setting `dotnet.server.path` to point to the Roslyn dll path you built above and restart the language server.
120+
1. Search for `dotnet server`.
121+
2. Set `dotnet.server.path` to the path of your Roslyn DLL.
122+
3. Enable `dotnet.server.waitForDebugger`.
31123

32-
If you need to debug the server, you can set the VSCode setting `dotnet.server.waitForDebugger` to true. This will trigger a `Debugger.Launch()` on the server side as it starts.
124+
#### Configuring Razor Language Server
33125

34-
### Using a locally developed Razor server
126+
In your workspace settings.json file, add the following lines:
35127

36-
https://github.com/dotnet/razor contains the server implementation. Follow the instructions there to build the repo as normal. Once built, the server will be located in the build output directory, typically
128+
```json
129+
"razor.languageServer.debug": true,
130+
"razor.languageServer.directory": "<razorRepoRoot>/artifacts/bin/rzls/Debug/net8.0",
131+
"razor.server.trace": "Debug"
132+
```
37133

38-
`$razorRepoRoot/artifacts/bin/rzls/Debug/net7.0`
134+
Replace `$razorRepoRoot` with your actual values.
39135

40-
depending on which configuration is built. Then, launch the extension here and change the VSCode setting `razor.languageServer.directory` to point to the Razor executable path you built above and reload the window.
136+
Or, in VSCode settings (`Ctrl+,`):
41137

42-
If you need to debug the server, you can set the VSCode setting `razor.languageServer.debug` to true. This will trigger a `Debugger.Launch()` on the server side as it starts. You can also set `razor.server.trace` to `Debug` to get more log messages in the output window
138+
1. Search for `Razor`.
139+
2. Set `razor.languageServer.directory` to the path of your Razor DLL.
140+
3. Enable `razor.languageServer.debug`.
141+
4. Set `razor.server.trace` to `Debug`. This gives you more detailed log messages in the output window.
43142

44-
### Creating VSIXs
143+
## Creating VSIX Packages for the Extension
45144

46-
VSIXs can be created using the gulp command `gulp vsix:release:package`. This will create all the platform specific VSIXs that you can then install manually in VSCode.
145+
To package this extension, we need to create VSIX Packages. The VSIX packages can be created using the gulp command `gulp vsix:release:package`. This will create all the platform specific VSIXs that you can then install manually in VSCode.
47146

48-
## Updating the Roslyn server version
147+
## Updating the `Roslyn` Language Server Version
49148

50149
To update the version of the roslyn server used by the extension do the following:
51150
1. Find the the Roslyn signed build you want from [here](https://dnceng.visualstudio.com/internal/_build?definitionId=327&_a=summary). Typically the latest successful build of main is fine.

azure-pipelines-official.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ trigger:
33
include:
44
- main
55
- release
6+
- prerelease
67
pr: none
78

89
parameters:

azure-pipelines.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ trigger:
44
include:
55
- feature/*
66
- release
7+
- prerelease
78
- main
89

910
pr:
1011
- feature/*
1112
- release
13+
- prerelease
1214
- main
1315

1416
stages:

l10n/bundle.l10n.cs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"Could not determine CSharp content": "Nepovedlo se určit obsah CSharp.",
3232
"Could not determine Html content": "Nepovedlo se určit obsah HTML.",
3333
"Could not find '{0}' in or above '{1}'.": "Nepovedlo se najít {0} v {1} ani výše.",
34-
"Could not find Razor Language Server executable within directory '{0}'": "V adresáři {0} se nepovedlo najít spustitelný soubor jazykového serveru Razor.",
34+
"Could not find Razor Language Server executable '{0}' within directory": "V adresáři se nepovedlo najít spustitelný soubor jazykového serveru Razor {0}.",
3535
"Could not find a process id to attach.": "Nepovedlo se najít ID procesu, který se má připojit.",
3636
"Could not locate .NET Core project in '{0}'. Assets were not generated.": "V umístění {0} se nepovedlo najít projekt .NET Core. Prostředky se nevygenerovaly.",
3737
"Couldn't create self-signed certificate. See output for more information.": "Certifikát podepsaný svým držitelem (self-signed certificate) se nepovedlo vytvořit. Další informace najdete ve výstupu.",

l10n/bundle.l10n.de.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"Could not determine CSharp content": "Der CSharp-Inhalt konnte nicht bestimmt werden.",
3232
"Could not determine Html content": "Der HTML-Inhalt konnte nicht bestimmt werden.",
3333
"Could not find '{0}' in or above '{1}'.": "\"{0}\" wurde in oder über \"{1}\" nicht gefunden.",
34-
"Could not find Razor Language Server executable within directory '{0}'": "Die ausführbare Datei des Razor-Sprachservers wurde im Verzeichnis \"{0}\" nicht gefunden.",
34+
"Could not find Razor Language Server executable '{0}' within directory": "Die ausführbare Razor Language Server-Datei „{0}“ wurde im Verzeichnis nicht gefunden.",
3535
"Could not find a process id to attach.": "Es wurde keine anzufügende Prozess-ID gefunden.",
3636
"Could not locate .NET Core project in '{0}'. Assets were not generated.": "Das .NET Core-Projekt wurde in \"{0}\" nicht gefunden. Ressourcen wurden nicht generiert.",
3737
"Couldn't create self-signed certificate. See output for more information.": "Das selbstsignierte Zertifikat konnte nicht erstellt werden. Weitere Informationen finden Sie in der Ausgabe.",

l10n/bundle.l10n.es.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"Could not determine CSharp content": "No se pudo determinar el contenido de CSharp",
3232
"Could not determine Html content": "No se pudo determinar el contenido HTML",
3333
"Could not find '{0}' in or above '{1}'.": "No se pudo encontrar '{0}' en '' o encima de '{1}'.",
34-
"Could not find Razor Language Server executable within directory '{0}'": "No se encontró el ejecutable del servidor de lenguaje Razor en el directorio '{0}'",
34+
"Could not find Razor Language Server executable '{0}' within directory": "No se encontró el ejecutable del servidor de lenguaje Razor en el directorio ''{0}''",
3535
"Could not find a process id to attach.": "No se pudo encontrar un id. de proceso para adjuntar.",
3636
"Could not locate .NET Core project in '{0}'. Assets were not generated.": "No se pudo encontrar el proyecto de .NET Core en “{0}”. No se generaron recursos.",
3737
"Couldn't create self-signed certificate. See output for more information.": "No se pudo crear el certificado autofirmado. Vea la salida para obtener más información.",

l10n/bundle.l10n.fr.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"Could not determine CSharp content": "Impossible de déterminer le contenu CSharp",
3232
"Could not determine Html content": "Impossible de déterminer le contenu HTML",
3333
"Could not find '{0}' in or above '{1}'.": "Impossible de trouver '{0}' dans ou au-dessus '{1}'.",
34-
"Could not find Razor Language Server executable within directory '{0}'": "Impossible de trouver l’exécutable du serveur de langage Razor dans le répertoire '{0}'",
34+
"Could not find Razor Language Server executable '{0}' within directory": "Impossible de trouver l’exécutable du serveur de langage Razor dans le répertoire « {0} »",
3535
"Could not find a process id to attach.": "Impossible de trouver un ID de processus à joindre.",
3636
"Could not locate .NET Core project in '{0}'. Assets were not generated.": "Impossible de localiser le projet .NET Core dans '{0}'. Les actifs n'ont pas été générés.",
3737
"Couldn't create self-signed certificate. See output for more information.": "Impossible de créer un certificat auto-signé. Pour plus d’informations, consultez la sortie.",

l10n/bundle.l10n.it.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"Could not determine CSharp content": "Non è stato possibile determinare il contenuto CSharp",
3232
"Could not determine Html content": "Non è stato possibile determinare il contenuto HTML",
3333
"Could not find '{0}' in or above '{1}'.": "Non è stato possibile trovare '{0}{0}' in o sopra '{1}'.",
34-
"Could not find Razor Language Server executable within directory '{0}'": "Non è stato possibile trovare l'eseguibile del server di linguaggio Razor nella directory '{0}'",
34+
"Could not find Razor Language Server executable '{0}' within directory": "Non è possibile trovare l'eseguibile del server di linguaggio Razor '{0}' nella directory",
3535
"Could not find a process id to attach.": "Non è stato possibile trovare un ID processo da collegare.",
3636
"Could not locate .NET Core project in '{0}'. Assets were not generated.": "Non è stato possibile individuare il progetto .NET Core in \"{0}\". Gli asset non sono stati generati.",
3737
"Couldn't create self-signed certificate. See output for more information.": "Impossibile creare il certificato autofirmato. Per altre informazioni, vedere l'output.",

l10n/bundle.l10n.ja.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"Could not determine CSharp content": "CSharp コンテンツを特定できませんでした",
3232
"Could not determine Html content": "HTML コンテンツを特定できませんでした",
3333
"Could not find '{0}' in or above '{1}'.": "'{1}' 以上に '{0}' が見つかりませんでした。",
34-
"Could not find Razor Language Server executable within directory '{0}'": "ディレクトリ '{0}' 内に Razor 言語サーバーの実行可能ファイルが見つかりませんでした",
34+
"Could not find Razor Language Server executable '{0}' within directory": "ディレクトリ内に Razor 言語サーバーの実行可能ファイル '{0}' が見つかりませんでした",
3535
"Could not find a process id to attach.": "アタッチするプロセス ID が見つかりませんでした。",
3636
"Could not locate .NET Core project in '{0}'. Assets were not generated.": "'{0}' で .NET Core プロジェクトが見つかりませんでした。アセットは生成されませんでした。",
3737
"Couldn't create self-signed certificate. See output for more information.": "自己署名証明書を作成できませんでした。詳細については、出力を参照してください。",

0 commit comments

Comments
 (0)