tintoy / msbuild-project-tools-vscode

VS Code extension for MSBuild intellisense (including PackageReference completion).
MIT License
82 stars 16 forks source link

Also provide features as extension to `redhat.vscode-xml` #108

Closed josh-hemphill closed 7 months ago

josh-hemphill commented 1 year ago

The redhat.vscode-xml extension already has so many niceties for handling XML, including formatting, renaming, etc. It'd be really nice to be able to use this for all the MSBuild highlighting/completions, and inherit all the nice XML stuff from redhat.vscode-xml.

redhat.vscode-xml has a system for extending it for other uses, it looks like it'd be a good bit of work, but it seems like the easiest path to the best DX.

I'd be happy to help in any way I can.

tintoy commented 1 year ago

Interesting idea; I guess the tricky part is that their extension is written in TypeScript. I guess it's theoretically possible to call one language server from another although I've not seen any examples of this in the wild...

tintoy commented 1 year ago

I'll have a think about it this evening after work and see what could be done 🙂

josh-hemphill commented 1 year ago

Pretty sure Volar(Vue Language Server)'s takeover-mode proxies to the respective language servers; frustratingly Volar currently requires disabling the built-in Typescript extension whenever you open a new Vue project because they use the same Typescript language server and end up walking over each other otherwise.

tintoy commented 1 year ago

It sounds like it could be possible to define additional languages that pass through to the XML language server which then passes through to the MSBuild language server (I wouldn't want to break compatibility with the existing language definition but as a second option it could work).

I haven't really worked with Java in quite some time but if you're comfortable with it we could try writing a plug-in that passes some @messages through to the MSBuild language service...