-
Notifications
You must be signed in to change notification settings - Fork 797
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP and Blocked] Inline hints for F# #10295
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
6f5ecfc
to
88664d6
Compare
What about hints for multi-line piping? Could come in handy when doing a complex transformation of a collection with group bys, collects, etc., or piping values of combined monads like Async and Result. |
Pipeline hints might be nice, but we'll see. I don't want to introduce too much scope creep into this one since it's a pretty big PR already. |
Co-authored-by: Chet Husk <baronfel@users.noreply.github.com>
Holding off on this one. Wiring up settings is going to require more plumbing of APIs through our Roslyn external access layer. |
Is there no way to release this in VS preview as an experimental feature with the only setting being on/off for now? |
There is, but there would be no toggle. It's annoying to code with unless you have a quick keyboard toggle. |
Looking forward to seeing this in VSMac! |
thoughts on slicing off the FCS parts of this so that FSAC can get at this? |
I think it should be pretty simple to do. In fact, I think some of what's in here is already in FCS now (more or less), so that would reduce the diff for sure. I won't speak for @vzarytovskii or @KevinRansom but I think it's quite reasonable to split those changes out. |
I've actually been experimenting with your editor-level work in FSAC/Ionide this evening, and I can say it works brilliantly! The big gap is methods and their parameters, because that's where you added all the supporting infrastructure. |
Oh yeah, 100% agree, we should probably split it into smaller parts. |
Link to ionide version is here for those that want to see what it looks like |
@cartermp Do you think you could bring this up-to-date? It's a good feature |
Yep, defer to @baronfel's work here |
Example showing type and parameter hints (functions and methods):
Note the following behavior:
let
-bound will have a type hint, but otherlet
-bound F# functions will notGeneral checklist:
SynExpr.Typed
... or something along those lines[x; y; rest]
in a list pattern. They
andrest
are already implied by whateverx
is. I guess we can make a call on if that matters or it's better to just show it for each thing. The latter is less work of course. Maybe if the value is a literal we shouldn't show it either?let ranchItUp x : string = string x
Out of scope
_
in a pattern (Nope - this can be done orthogonally and also support quickinfo)