-
Notifications
You must be signed in to change notification settings - Fork 830
Show keyword descriptions in completion + refactor #9164
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
Show keyword descriptions in completion + refactor #9164
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
KevinRansom
left a comment
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.
It looks great, consider whether you want to update to include a couple of extra fsi directives?
| HashCompletion.Create("""\s*#load\s+(@?"*(?<literal>"[^"]*"?))""", [ ".fs"; ".fsx" ], useIncludeDirectives = true) | ||
| HashCompletion.Create("""\s*#r\s+(@?"*(?<literal>"[^"]*"?))""", [ ".dll"; ".exe" ], useIncludeDirectives = true) | ||
| HashCompletion.Create("""\s*#I\s+(@?"*(?<literal>"[^"]*"?))""", [ "\x00" ], useIncludeDirectives = false) | ||
| ] |
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.
have you considered:
#if, #else, #endif, and #time.
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.
All four could be interesting. Since this mainly just calls into Roslyn's file system completion it'd have to be handled a little differently though.
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.
For the first three, we'd need to look at the environment and grab MSBuild defines. #time would be just a static "on"/"off".
* Completion provider refactor * Actually show keyword descriptions in tooltips for completion * Get rid of unnecessary property * Make the keyword completion list static again * Just do it in the CompletionProvider
* Completion provider refactor * Actually show keyword descriptions in tooltips for completion * Get rid of unnecessary property * Make the keyword completion list static again * Just do it in the CompletionProvider
* Completion provider refactor * Actually show keyword descriptions in tooltips for completion * Get rid of unnecessary property * Make the keyword completion list static again * Just do it in the CompletionProvider
Before:
After:
To my knowledge this hasn't been working in all of VS 2019 and perhaps VS 2017
Also includes some refactoring:
Move keyword completion into a separate provider_since I was in the files