dotnet / dotnet/vscode-csharp

[3rd party] Detecting solution/project changes

Open
#5,805 7 comments 0 reactions 1 assignee Claimed by @dibarbet View on GitHub
Feature Request Triaged
Dominant language
TypeScript
Stars
3.1k
Forks
737
Avg merge
18h 40m
Merged PRs (30d)
31

Description

## Environment data

C# Extension version: 2.0.212

## Issue

The new (2.x) C# extension `exports` are incompatible with the previous (1.x) extension. Any extension that depends on the `exports` will not work anymore [1].

With the current (1.x) C# extension it was possible to access `eventStream` from the `exports`. This is used to be notified when the active project change, e.g.

```csharp
omnisharp.eventStream.subscribe((e: BaseEvent) => {
if (e.type === EventType.WorkspaceInformationUpdated) {
changeActiveProject((e).info.MsBuild);
}
});
```

and this let our extension update itself while keeping **in sync** with the C# extension. Sadly this member was removed from the exports in 2.x [2].

What would be the _right_ way to be notified when a different project/solution is loaded ?

[1] Unless you disable (or uninstall) C# Dev Kit and set `useOmnisharp` to `true`. This is fine as a [temporary workaround](https://platform.uno/docs/articles/get-started-vscode.html?tabs=windows%2Candroiddebug#c-dev-kit-compatibility) but it fragment the ecosystem since you can only use one of the two (CDK or Uno) extensions simultaneously.

[2] Even if it still present and used internally by the C# extension. Howver it only seems to work (for project changes) when used with OmniSharp.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.