Home

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.

Comments

  • Which version of VS are you running? I'm running VS2015 14.0.24720.00 Update 1 and VS auto-completes the "s" to "sbyte" in the same way.

    (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.)
  • You're right, VS 2015 Update 2 does the same. I have R# 2016.1.2 and its auto-completion doesn't do this. When I turned off R# and went back to VS auto-completion it acted the same as LINQPad.
  • 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 :smiley:

    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.)

Sign In or Register to comment.