-
Notifications
You must be signed in to change notification settings - Fork 832
Improve completion after method/property override #17292
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
Conversation
support static member override completion support get completions from generic base type for interface implementation and obj expr
support dotnet#16562 for C# style extension method
more type completion after colon override completion after `member` in interface or object expreesion interface name completion after `interface` class or interface name completion after `new` of object expression
format code
static thing completion show in short name
…ent-90/fsharp into completion-after-op-improve
❗ Release notes required
|
|
Thanks for this, looking forward to have this in the editor! Need to think a bit if this can have any perf traps or penalties, overall - good change and testing. |
Fix completion for same signature slot in different type/interface Fix parameter name generation Adjust code
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So there are quite a few FCS compiler changes here but I cannot see any potential dangers - at the same time, the new functionality is really cool.
@brianrourkeboll maybe you can also take a look at the FCS files, I think you've done some changes there recently.
LGTM, thanks!
|
Can't wait for this PR and the other completions-related PR to land so I can try them out in FSAC :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The parser changes and tests look mostly good to me. There's a bit of inconsistency in the resulting node ranges, please see the comment.
|
(Converted to draft until the parser recovery is adjusted) |
|
Wish there was a way to disable member body completions. It's impossible to use tab to complete member identifiers without it dumping placeholder bodies that I personally find utterly useless and disruptive, and have to manually delete every time. A toggle to revert to #15731 would be ideal. |
|
Or at least make the override completion two-step. Tab for identifier ( + params?), another tab for body. |
|
That'd be cool, but I am not sure VS supports such a flow. |
|
Also, body completions are less relevant nowadays, LLMs pretty much handle it. |
Description
Improve completion after method/property override.
Complete the parameter list of the overriden method and call base method or throw



NotImplementedExceptionComplete the parameter list of the overriden property and call base method or throw


NotImplementedExceptionCompletion list will exclude implemented members when triggered in an interface implementation, but not when triggered in an object expression (as cannot get the type of an obj expr from
GetExprTypingForPosition, it just returns the type of interface or the super class)newin object expressionFixes # (issue, if applicable)
Checklist