LINQPad auto-completion is too aggressive for lamba expressions
LINQPad auto-completion sometimes gets in the way rather than helping. For example, I'm connected to a database with tables Supplier and Entity. I type:
Supplier.Join((s
I want "(s" to be the start of a lambda parameter expression, but LINQPad pops up the auto-completion list at this point. VS doesn't. If I then type "," it auto-completes "s" to "sbyte". This is really annoying, as I have to remember to press Escape to avoid it and I have to do this after every lambda parameter. It makes typing lambda signatures quite frustrating.
Supplier.Join((s
I want "(s" to be the start of a lambda parameter expression, but LINQPad pops up the auto-completion list at this point. VS doesn't. If I then type "," it auto-completes "s" to "sbyte". This is really annoying, as I have to remember to press Escape to avoid it and I have to do this after every lambda parameter. It makes typing lambda signatures quite frustrating.
Comments
(The reason for this is that there's a bug in Roslyn where it's unable to bind the call to .Join methods in this situation, and so the signature is not recognized as containing a delegate type.)
VS2019 now has options to control the auto-completion. Finally after several massively irritating years where Vs thinks any selection from the entire universe is better than anything I can think of to type myself - what a huge relief when they finally fixed it so you aren't forced to accept an autocomplete on space.
I frequently use a single character for a lambda argument, but no - hit space and lord knows what's gonna show up.
Just recently purchased a pro - license for LINQPad which so far is awesome.
Imagine the joy I now feel to have the dreaded auto complete greedy monster back
Please Joe, can this be fixed - like in VS able to choose tab as the auto completion trigger instead of space?
In Edit | Preferences > Advanced, there's the option "Show completion list after typing a letter". Have you tried setting this to false?
(When you need a list, you can then press Ctrl+Space.)