Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
5c159a7
Move existing images
JoeRobich Aug 26, 2025
8147161
Move wiki pages to docs folder
JoeRobich Aug 26, 2025
fbf4691
Remove out of date docs
JoeRobich Aug 26, 2025
0cc6577
Add missing doc
JoeRobich Aug 26, 2025
f76cda2
Move debugger docs and update readme
JoeRobich Aug 26, 2025
540c1af
Update links to use dotnet/vscode-csharp
JoeRobich Aug 26, 2025
f577905
Remove unused images
JoeRobich Aug 26, 2025
601ee2c
Fixup doc links to use relative paths
JoeRobich Aug 26, 2025
43aeca7
Fix filename
JoeRobich Aug 27, 2025
9234010
Update main version
siramvikram Aug 27, 2025
4c2ea65
[automated] Update main version (#8570)
dotnet-policy-service[bot] Aug 27, 2025
62f78ff
Update Debugger to 2.90.0 (#8572)
gregg-miskelly Aug 28, 2025
91ba230
Remove linux support doc
JoeRobich Aug 29, 2025
5c76df1
Fix up links to wiki
JoeRobich Aug 29, 2025
ace2a9a
Use aka.ms link for ARM32 Linux help page (#8574)
gregg-miskelly Aug 29, 2025
fd38eee
Move wiki documentation into the repo (#8569)
JoeRobich Aug 29, 2025
7251b5d
Remove UseNewFormattingEngine option
davidwengier Sep 1, 2025
092d939
Bump Razor to 10.0.0-preview.25429.2
davidwengier Sep 2, 2025
a1b528f
Update CHANGELOG.md
davidwengier Sep 2, 2025
7149607
Do not create a proxy agent if proxy url is empty string.
JoeRobich Sep 2, 2025
36c9478
Add tests
JoeRobich Sep 2, 2025
8a81fb9
Do not create a proxy agent if proxy url is empty string. (#8580)
JoeRobich Sep 3, 2025
58610bd
Fix semantic tokens when cohosting is turned off
davidwengier Sep 3, 2025
44c49db
Add automated PR creation for Roslyn Copilot updates using a gulp task
AbhitejJohn Sep 4, 2025
bbc19f8
Updating to use dotnet-bot creds instead.
AbhitejJohn Sep 4, 2025
99db45b
Bump Razor to 10.0.0-preview.25429.2 (#8579)
davidwengier Sep 5, 2025
4d71475
Fixing prettier issues.
AbhitejJohn Sep 5, 2025
82e8732
Merge branch 'main' into auto-createPR-forcomponentupdates
AbhitejJohn Sep 5, 2025
8d5c807
Addressed PR feedback. I was also tired of making prettier updates so…
AbhitejJohn Sep 5, 2025
0d65edb
Merge branch 'auto-createPR-forcomponentupdates' of https://github.co…
AbhitejJohn Sep 5, 2025
598143b
Using PAT for the bot account
AbhitejJohn Sep 5, 2025
305ee4f
Bump Razor to 10.0.0-preview.25454.5
davidwengier Sep 8, 2025
bc3b658
Update CHANGELOG.md
davidwengier Sep 8, 2025
1de8003
Update package.json
davidwengier Sep 8, 2025
36aa9bc
Perms for bot account PAT
AbhitejJohn Sep 8, 2025
3052bdf
Bump Razor to 10.0.0-preview.25454.5 (#8590)
dibarbet Sep 8, 2025
ad1f38e
Update roslyn version
dibarbet Sep 8, 2025
e83df53
Update changelog
dibarbet Sep 8, 2025
42e4cf5
Update script now knows of the roslyn language server bits as well.
AbhitejJohn Sep 8, 2025
1894a93
Update roslyn version (#8593)
dibarbet Sep 8, 2025
b1cb959
Switching to maestro bot creds.
AbhitejJohn Sep 8, 2025
5e7741a
Add automated PR creation for Roslyn Copilot updates using a gulp tas…
AbhitejJohn Sep 9, 2025
35c9f15
Update RoslynCopilot version to 18.0.701-alpha
dotnet-maestro-bot Sep 9, 2025
bce7b5e
Do now allow client to modify whitespace for auto insert edits
dibarbet Sep 6, 2025
17cc869
Update RoslynCopilot url to 18.0.701-alpha (#8597)
AbhitejJohn Sep 9, 2025
c5ab09c
Include roslyn update
dibarbet Sep 9, 2025
11bb070
Update changelog
dibarbet Sep 9, 2025
dd85854
adjust and add integration test
dibarbet Sep 9, 2025
e677e3c
Added notes on how the Roslyn Copilot bits can be updated.
AbhitejJohn Sep 9, 2025
29cb53a
Update to Contribution docs tied to Roslyn copilot bits update (#8601)
AbhitejJohn Sep 9, 2025
025c9fa
adjust logic
dibarbet Sep 10, 2025
3042772
Collect full dumps on crash
dibarbet Sep 10, 2025
4dfb71f
Wait for maximum 3000 ms for the Copilot chat API.
dbaeumer Sep 10, 2025
11cbfa5
Wait for maximum 3000 ms for the Copilot chat API. (#8606)
dibarbet Sep 10, 2025
3ec42b9
Localization result of 11cbfa5da5cd183b1e5fe7afb273eba0d3ac9654.
dotnet-bot Sep 10, 2025
637228a
Localization result based on 11cbfa5da5cd183b1e5fe7afb273eba0d3ac9654…
dotnet-policy-service[bot] Sep 10, 2025
4cca94a
Update src/lsptoolshost/autoInsert/onAutoInsert.ts
dibarbet Sep 10, 2025
b7eb4e0
Collect full dumps on crash (#8604)
dibarbet Sep 10, 2025
fbda94a
Do not allow client to modify whitespace for auto insert edits (#8588)
dibarbet Sep 10, 2025
4f92206
Merge branch 'prerelease' into merge/main-to-prerelease
dibarbet Sep 10, 2025
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
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@
"vsix/": true
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
},
"csharp.suppressDotnetRestoreNotification": true,
"typescript.tsdk": "./node_modules/typescript/lib",
Expand Down
26 changes: 24 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,28 @@
- 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.91.x
* Bump Roslyn to 5.0.0-2.25458.10 (PR: [#8588](https://github.com/dotnet/vscode-csharp/pull/8588))
* Move brace adjustment on enter to on auto insert in LSP(PR: [#80075](https://github.com/dotnet/roslyn/pull/80075))
* Avoid throwing when obsolete overload of GetUpdatesAsync is invoked with empty array(PR: [#80161](https://github.com/dotnet/roslyn/pull/80161))
* Bump patch version of MSBuild packages(PR: [#80156](https://github.com/dotnet/roslyn/pull/80156))
* Include category in Hot Reload log messages(PR: [#80160](https://github.com/dotnet/roslyn/pull/80160))
* Store client's version for open docs (PR: [#80064](https://github.com/dotnet/roslyn/pull/80064))
* Pass global properties and the binary log path via RPC to BuildHost (PR: [#80094](https://github.com/dotnet/roslyn/pull/80094))
* Don't switch runtime / design time solutions if cohosting is on (PR: [#80065](https://github.com/dotnet/roslyn/pull/80065))
* Allow Razor to get task list items for a document (PR: [#80102](https://github.com/dotnet/roslyn/pull/80102))
* Update debugger packages, move to PortableInterop IMetadataImport (PR: [#80063](https://github.com/dotnet/roslyn/pull/80063))
* Fix issue reporting diagnostic in additional file when diagnostic produced by a source generator (PR: [#80071](https://github.com/dotnet/roslyn/pull/80071))
* Always run the razor generator even in balanced mode (PR: [#79510](https://github.com/dotnet/roslyn/pull/79510))
* Bump Razor to 10.0.0-preview.25454.5 (PR: [#8590](https://github.com/dotnet/vscode-csharp/pull/8590))
* Fix extra character insertion during attribute completion in VS Code (PR: [#12177](https://github.com/dotnet/razor/pull/12177))
* Remove UseNewRazorFormattingEngine feature flag (PR: [#12160](https://github.com/dotnet/razor/pull/12160))
* Allow for weird Uris as file paths (PR: [#12155](https://github.com/dotnet/razor/pull/12155))
* Remove the feature flag for precise semantic tokens (PR: [#12149](https://github.com/dotnet/razor/pull/12149))
* Do not create a proxy agent if proxy url is empty string. (PR: [#8580](https://github.com/dotnet/vscode-csharp/pull/8580))
* Use aka.ms link for ARM32 Linux help page (PR: [#8574](https://github.com/dotnet/vscode-csharp/pull/8574))
* Update Debugger to 2.90.0 (PR: [#8572](https://github.com/dotnet/vscode-csharp/pull/8572))

# 2.90.x
* Register the CSharp context provider with Copilot Chat as well. (PR: [#8565](https://github.com/dotnet/vscode-csharp/pull/8565))
* Improve the limited activation experience (PR: [#8564](https://github.com/dotnet/vscode-csharp/pull/8564))
Expand All @@ -13,8 +35,8 @@
* Cache diagnostic analyzer computation (PR: [#80045](https://github.com/dotnet/roslyn/pull/80045))
* Generate `init` accessor for required properties inside `readonly struct`s (PR: [#80004](https://github.com/dotnet/roslyn/pull/80004))
* Allow Razor cohosting to work with non-Razor SDK projects (PR: [#79953](https://github.com/dotnet/roslyn/pull/79953))
* Update 'use expr body' to be a purely syntactic analyzer (PR: [#79979](https://github.com/dotnet/roslyn/pull/79979))
* Implement "Simplify property accessor" feature (PR: [#79754](https://github.com/dotnet/roslyn/pull/79754))
* Update 'use expr body' to be a purely syntactic analyzer (PR: [#79979](https://github.com/dotnet/roslyn/pull/79979))
* Implement "Simplify property accessor" feature (PR: [#79754](https://github.com/dotnet/roslyn/pull/79754))
* Allow Razor to hook up the source generator in misc files (PR: [#79891](https://github.com/dotnet/roslyn/pull/79891))
* Bump Razor to 10.0.0-preview.25424.9 (PR: [#8559](https://github.com/dotnet/vscode-csharp/pull/8559))
* Allow Razor cohosting to work with non-Razor SDK projects (PR: [#12118](https://github.com/dotnet/razor/pull/12118))
Expand Down
19 changes: 15 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,15 +182,26 @@ To update the version of the roslyn server used by the extension do the followin
4. Ensure that version of the package is in the proper feeds by running `gulp updateRoslynVersion`. Note: you may need to install the [Azure Artifacts NuGet Credential Provider](https://github.com/microsoft/artifacts-credprovider#installation-on-windows) to run interactive authentication.
5. Build and test the change. If everything looks good, submit a PR.

## Updating the `Roslyn` Copilot Language Server version

In order to pull in the latest version of Roslyn Copilot bits from the VS Conversations repo, follow these steps:
1. Trigger [this pipeline](https://devdiv.visualstudio.com/DevDiv/_build?definitionId=27222) which should automatically publish bits to the storage account and then create an insertion PR like [this](https://github.com/dotnet/vscode-csharp/pull/8597)
2. Build and test the change to ensure the roslyn copilot language server bits are downloaded correctly. You'll see log entries like the below in the Output->C# pane:
```
[info] Installing package 'Language server for Roslyn Copilot integration'
[info] Finished
```
More details for this are [here] (https://devdiv.visualstudio.com/DevDiv/_git/VisualStudio.Conversations?path=/src/Copilot.Roslyn.LanguageServer/README.md)

## Snapping for releases
Extension releases on the marketplace are done from the prerelease and release branches (corresponding to the prerelease or release version of the extension). Code flows from main -> prerelease -> release. Every week we snap main -> prerelease. Monthly, we snap prerelease -> release.

### Snap main -> prerelease
The snap is done via the "Branch snap" github action. To run the snap from main -> prerelease, run the action via "Run workflow" and choose main as the base branch.
![branch snap action](./docs/main_snap.png)
![branch snap action](./docs/images/main_snap.png)

This will generate two PRs that must be merged. One merging the main branch into prerelease, and the other bumps the version in main.
![generated prs](./docs/generated_prs.png)
![generated prs](./docs/images/generated_prs.png)

### Snap prerelease -> release
To snap from prerelease to release, run the same action but use **prerelease** as the workflow branch. This will generate a single PR merging from prerelease to release.
Expand All @@ -199,6 +210,6 @@ To snap from prerelease to release, run the same action but use **prerelease** a
The marketplace release is managed by an internal AzDo pipeline. On the pipeline page, hit run pipeline. This will bring up the pipeline parameters to fill out:
1. The branch will **always** be main, no matter if release a build from prerelease or release.
2. Uncheck the "test" option.
3. In "Resources", choose "dotnet-vscode-csharp [officialBuildCI]", then check only the build that should be released, and then confirm with "Use selected run". Based on the selected build, it will automatically determine if it is prerelease or release. ![release pipeline image](./docs/release_pipeline.png)
4. The pipeline parameters should then look something like the following image. Hit "Run". ![release pipeline parameters image](./docs/release_pipeline_params.png)
3. In "Resources", choose "dotnet-vscode-csharp [officialBuildCI]", then check only the build that should be released, and then confirm with "Use selected run". Based on the selected build, it will automatically determine if it is prerelease or release. ![release pipeline image](./docs/images/release_pipeline.png)
4. The pipeline parameters should then look something like the following image. Hit "Run". ![release pipeline parameters image](./docs/images/release_pipeline_params.png)
5. After a bit, the pipeline will request approval from an authorized approver before it actually uploads to the marketplace. Hit approve and it will continue.
22 changes: 11 additions & 11 deletions SUPPORT.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ For help and questions about using this project, please see the [README](https:/
### How to file an issue

We highly recommend using the C# extension's built-in command, `CSharp: Report an issue` (`csharp.reportIssue`) to create a pre-filled issue template. This will include helpful details such as local dotnet installations, installed extensions, and other information.
![csharp.reportIssue command](./docs/report_issue.png)
![csharp.reportIssue command](./docs/images/report_issue.png)

#### Collecting General Logs

Expand All @@ -22,8 +22,8 @@ The template has a section to include the `C#` output window logs. These logs ar
1. **Set the Log Level to Trace**:
- Open the `C#` output window (`View` -> `Output`).
- Set the log level to `Trace`.
![c# output window showing trace option](./docs/csharp_trace.png)

![c# output window showing trace option](./docs/images/csharp_trace.png)

2. **Reproduce the Issue**:
- Perform the actions that reproduce the issue.
Expand Down Expand Up @@ -57,8 +57,8 @@ For issues with Razor, the Razor Log output window can contain useful informatio
1. **Set the Log Level to Trace**:
- Open the `Razor Logs` output window (`View` -> `Output`).
- Set the log level to `Trace`.
![razor log output window showing trace option](./docs/razor_logs.png)

![razor log output window showing trace option](./docs/images/razor_logs.png)

2. **Reproduce the Issue**:
- Perform the actions that reproduce the issue.
Expand All @@ -81,7 +81,7 @@ Missing language features are often caused by a failure to load the project(s) o
- This information is displayed in the bottom-right corner of the VSCode window in the language status section.
- You can pin this item using the pin icon to keep it visible at all times.

![language status bar showing file active project context](./docs/language_status.png)
![language status bar showing file active project context](./docs/images/language_status.png)

3. **Verify the Solution Explorer (C# Dev Kit)**:
- If you are using C# Dev Kit, check the Solution Explorer to ensure the project is displayed with the expected references.
Expand All @@ -100,12 +100,12 @@ If you encounter issues with document classification (e.g., incorrect syntax hig
3. Click on the word or section with incorrect colorization to display the token and scope information.
- Take a screenshot of the output and include it in your issue report.

![Inspect Tokens and Scopes Output](./docs/inspect_tokens.png)
![Inspect Tokens and Scopes Output](./docs/images/inspect_tokens.png)

### Diagnostics problems

For issues with diagnostics, please provide values of the background analysis scope options, `dotnet.backgroundAnalysis.analyzerDiagnosticsScope` and `dotnet.backgroundAnalysis.compilerDiagnosticsScope`
![background analysis settings](./docs/background_analysis.png)
![background analysis settings](./docs/images/background_analysis.png)

#### Language server crashing

Expand All @@ -124,12 +124,12 @@ When investigating performance issues, we may request a performance trace of the
The C# extension has a built in command, `csharp.recordLanguageServerTrace` to help with trace collection. This command will install `dotnet-trace` as a global tool and invoke it against the language server.

1. Invoke the record language server trace command
![alt text](docs/recordTraceCommand.png)
![alt text](docs/images/recordTraceCommand.png)
2. Select the folder to save the trace.
3. Accept the default trace arguments, or change them if requested
![alt text](docs/recordTraceArgs.png)
![alt text](docs/images/recordTraceArgs.png)
4. A new terminal window will open to run the trace collection. While the trace is running, reproduce the peformance issue. When done, hit <Enter> or <Ctrl+C> in the trace window to stop the trace
![alt text](docs/recordTraceTerminal.png)
![alt text](docs/images/recordTraceTerminal.png)
5. Share the trace. Note that the trace may contain PII, so generally we will provide an email or other confidential way to share the trace with us.

## Microsoft Support Policy
Expand Down
21 changes: 19 additions & 2 deletions azure-pipelines/publish-roslyn-copilot.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
trigger: none
pr: none

variables:
# Variable group contains PAT for bot account.
- group: dotnet-vscode-insertion-variables

resources:
repositories:
- repository: 1ESPipelineTemplates
Expand Down Expand Up @@ -29,7 +33,6 @@ extends:
image: 1ESPT-Windows2022
os: windows
templateContext:
type: releaseJob
isProduction: false #change this
inputs:
- input: pipelineArtifact
Expand All @@ -38,7 +41,11 @@ extends:
destinationPath: $(Pipeline.Workspace)/artifacts

steps:
- checkout: none
- checkout: self
clean: true
submodules: true
fetchTags: false
fetchDepth: 0

- task: CopyFiles@2
displayName: 'Copy files from Zip folder to staging directory'
Expand All @@ -56,3 +63,13 @@ extends:
Destination: "AzureBlob"
storage: "$(AzStorage)"
ContainerName: "$(AzContainerName)"

- pwsh: |
npm install
npm install -g gulp
displayName: 'Install tools'

- pwsh: gulp 'publish roslyn copilot' --userName dotnet-maestro-bot --email dotnet-maestro-bot@microsoft.com --stagingDirectory '$(Build.ArtifactStagingDirectory)/staging'
displayName: 'Create component update PR'
env:
GitHubPAT: $(BotAccount-dotnet-maestro-bot-PAT)
4 changes: 2 additions & 2 deletions debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Your project is now all set. Set a breakpoint or two where you want to stop, cli
If your code was built on a different computer from where you would like to run in there are a few things to keep in mind --

* **Source Maps**: Unless your local source code is at exactly the same path as where the code was originally built you will need to add a [sourceFileMap](https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md#source-file-map) to launch.json.
* **Portable PDBs**: If the code was built on Windows, it might have been built using Windows PDBs instead of portable PDBs, but the C# extension only supports portable PDBs. See the [portable PDB documentation](https://github.com/dotnet/vscode-csharp/wiki/Portable-PDBs#how-to-generate-portable-pdbs) for more information.
* **Portable PDBs**: If the code was built on Windows, it might have been built using Windows PDBs instead of portable PDBs, but the C# extension only supports portable PDBs. See the [portable PDB documentation](./docs/debugger/Portable-PDBs.md#how-to-generate-portable-pdbs) for more information.
* **Debug vs. Release**: It is much easier to debug code which has been compiled in the `Debug` configuration. So unless the issue you are looking at only reproduces with optimizations, it is much better to use Debug bits. If you do need to debug optimized code, you will need to disable [justMyCode](https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md#just-my-code) in launch.json.

#### [Configurating launch.json for C# Debugging](debugger-launchjson.md)
Expand All @@ -76,7 +76,7 @@ See the [official documentation](https://code.visualstudio.com/docs/csharp/debug

#### Remote Debugging

The debugger supports remotely launching or attaching to processes. See [Attaching to remote processes](https://github.com/dotnet/vscode-csharp/wiki/Attaching-to-remote-processes) in the wiki for more information.
The debugger supports remotely launching or attaching to processes. See [Attaching to remote processes](./docs/debugger/Attaching-to-remote-processes.md) in the wiki for more information.

#### Exception Settings

Expand Down
23 changes: 23 additions & 0 deletions docs/How-to-run-and-debug-unit-tests.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
The C# extension currently supports running and debugging a unit test via CodeLens annotations on test methods. Just click the 'run test' or 'debug test' links:

![CodeLens](./images/unit-test-codelens.png)

### Notes

* Because `dotnet test` will run the test code in a child process, it isn't possible to configure a "unit test debugging" configuration in launch.json
* There currently isn't a VS Code command to run the current test, though there is an [issue for this in the backlog](https://github.com/dotnet/vscode-csharp/issues/421).
* You can tweak [debugging options](../debugger-launchjson.md) for unit tests by opening your VS Code settings file (ex: File->Preferences->Settings on Windows), and configuring the `"csharp.unitTestDebuggingOptions"` setting. See example below.
* If your unit tests are targeting .NET Framework instead of .NET Core, see [Desktop .NET Framework](./debugger/Desktop-.NET-Framework.md) for more information.

Example User Settings file with unit test debugging options:

```json
{
"window.zoomLevel": 0,
"csharp.unitTestDebuggingOptions": {
"sourceFileMap": {
"c:\\example\\folder\\where\\library\\was\\built": "/folder/where/my/library/is/now"
}
}
}
```
10 changes: 10 additions & 0 deletions docs/Installing-without-Internet-connectivity.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Some environments may not have access to the Internet and thus the marketplace to download extensions or dependencies dynamically. To install the C# language extension and dependencies without Internet access, the following is required:

> NOTE: It is important that if extensions offer platform-specific versions, that you ensure you are downloading/installing the matching platform pieces. Failure to do so could put your VS Code environment in a non-functional state.

* Download and install the required ASP.NET Core 9.0.8 runtime from https://dot.net/downloads
* Download the following VS Code extensions **for your specific platform**:
* [.NET Install Tool](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscode-dotnet-runtime)
* [C# language extension](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp)
* Optional extensions such as the [C# Dev Kit](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit), [MAUI](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.dotnet-maui), or [IntelliCode for C#](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.vscodeintellicode-csharp)
* Follow the documentation to [**Install from VSIX**](https://code.visualstudio.com/docs/editor/extension-marketplace#_install-from-a-vsix) in VS Code with the downloaded extension files
15 changes: 15 additions & 0 deletions docs/Reporting-Issues.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
The extension supports the command that populates the necessary information from the user's system into a new github issue and opens the preview in the user's default browser to preview and submit.

#### Report issue on GitHub
* In VSCode, navigate to the View --> Command Palette menu or press Ctrl+Shift+P.
* Select the option : `CSharp: Report an issue`. This will open the github repository issues page with a new issue with all the necessary system information.
* Fill in all the fields like "Expected Behavior", "Actual Behavior", "Steps to Reproduce".
* Paste the "C#" log (if any) and hit "Submit"

##### OmniSharp and C# log
* In VSCode, navigate to View-->Output or press Ctrl+Shift+U
* In the output pane on the right, you should see an "OmniSharp log" in the drop-down
* Paste the output from here to the "OmniSharp log" section

![OmniSharp log](./images/omnisharp_log.png)
* The C# log can also be found in the same window.
Loading
Loading