-
Notifications
You must be signed in to change notification settings - Fork 111
[Epic] Extensibility API #98
Description
I believe a lot of recent feature requests are quite good and some from well-recognized developers in the community, which means SharpIDE started to gain popularity and momentum beyond just a few guys.
It would be beneficial for everyone if there is a standard set of extension API exposed, so that language-specific features (language server, debugger adapters, unit test providers, visual designers) can be supported by their respective extensions and extension authors.
This can free each one from asking the same/similar questions in this main repo, which focuses on IDE shell and C# language support.
Based on the availability of open-source components right now, very soon people can extend SharpIDE to many more languages than @MattParkerDev alone can achieve.
- Language services related
- [WIP] VS for Windows language extension compatibility test #99, T4/reStructuredText
- Integration with AXSG toolset to enable XAML language support #97, XAML
- F# - syntax highlighting #96/Compatibility for F# #18, F# language
- Compatibility for VB.net #60, VB.NET
- Javascript & Html Syntax Highlighting #33, JS/HTML
- Unit testing ✨ Test Explorer #80
- AI tooling Copilot Integration #78
- Editor color theme Allow users to fully customize the editor theme #74
Since you have developed the C# support first, it is time to perform refactoring against some good examples of other IDE products and end up with a set of standard API surfaces.
I strongly suggest that some designs follow Visual Studio (LSP, unit test, color theme file format) first, so likely extension authors find similarity and might easily port their VS extensions over. #99 shows that some extensions might not even need a single line of change.
Once we finish VS for Windows extensibility API, we might move on to support some VS Code extensions (very simple language extensions of course, as complex ones require TS/VS Code API which SharpIDE won't support).