Uh oh!
There was an error while loading. Please reload this page.
VS: Some further QuickInfo improvements - #14995
Conversation
majocha
commented
Mar 28, 2023
This needs some cleanup, probably fixing tests / baselines. If this looks acceptable I'll follow up in this PR. |
psfinaki
commented
Mar 29, 2023
@majocha this looks promising! I few thoughts:
Thanks for your effort, all the recent quick info changes are amazing, we might want to write a blog post about them. :) |
majocha
commented
Mar 29, 2023
Added some before screenshots 🙂 |
majocha
commented
Mar 29, 2023
I'm wondering what to do with the tests. The problem is, as they stand now, they only effectively exercise the GetToolTip method from the compiler service, and not the actual editor part. OTOH there's a lot of them and they are valuable. |
psfinaki
commented
Mar 29, 2023
majocha
commented
Mar 29, 2023
I don't know the details as I've never seen VS on mac, but at some point there was an effort to make the rendering of VS visuals cross platform. From that time come all the |
That's probably happening in Aah, that |
Thanks :) As for MacOS, good to know that we have at least some efforts for some special handling there. |
majocha
commented
Apr 5, 2023
I salvaged the tests. |
majocha
commented
Apr 6, 2023
OK reduced diff, this is good when green. |
majocha
commented
Apr 6, 2023
majocha
commented
Apr 6, 2023
Also fixed old ugly hack that was plain wrong code and sometimes interfered with nice text wrapping. |
majocha
commented
Apr 6, 2023
This is green, so I update the branch and it is ready. |
psfinaki
commented
Apr 6, 2023
majocha
commented
Apr 6, 2023
@psfinaki, exactly my thinking. Params are hidden again now. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
psfinaki
commented
Apr 6, 2023
Alright, LGTM, merging. @majocha thanks! |
vzarytovskii
commented
Apr 14, 2023
We have CPP VS perf tests failing by latest insertion. This is the only pr which touched VS, might be related to changes in tooltip styling, forcing VS to load us in non-F# projects. Something similar happened before:. I am reverting the insertion right now, we will investigate further next week. |
FSharp.Core is loaded when C++ is showing a tooltip in microsoft.visualstudio.vc.ni! VCCompletion.SetTooltipContentFromJson. It uses standard Microsoft.VisualStudio.Text.Adornments.ClassifiedTextElement in the content. These are “view model” classes used to create remotable and crossplat rich tooltip content, and they require IViewElementFactory exported MEF component that can convert them to WPF UIElement for display. Microsoft.VisualStudio.Text.Adornments.ClassifiedTextElement already has built-in IViewElementFactory in the editor, which uses standard VS theme, but in this pr wr also export our own IViewElementFactory also targeting Microsoft.VisualStudio.Text.Adornments.ClassifiedTextElement, which effectively means we are subscribing to style any ClassifiedTextElement used in any tooltip in any language. It’s supported by IViewElementFactory, but the expectation is that we should target your own custom “view model” type instead of standard Microsoft.VisualStudio.Text.Adornments.ClassifiedTextElement in your IViewElementFactory, this way convertor will only be loaded and called when a tooltip to be shown contains that custom type. |
majocha
commented
Apr 14, 2023
Ay, thanks for the detailed write up. This is salvageable, the culprit is fdcbe04. I'll fix it after the weekend. |
vzarytovskii
commented
Apr 14, 2023
No rush, we can look into it next week too :) |
majocha
commented
Apr 16, 2023
@vzarytovskii
Yep, the documentation can be terse sometimes and it's invaluable to have the right people to talk to :) |





before:

after:

before:

after:

before:


after:
before:

after:

I removed a lot of code that was putting together signature and implementation docs in quickinfo. I think in light of #14711 and #14920 that is no longer needed and any such functionality should belong to the service, not the client anyway.