Reputation: 1511
In Visual Studio 2019, it likes to try to guess where it should put the semicolon when you hit it. Often it will jump to a completely different line or insert newlines. Every time it does anything besides append it as the next character, this is extremely disruptive, and I have to go back and fix what it broke. This is akin to the disruptive "Automatic brace completion" which always puts braces where I don't want them, but can be turned off. I can't find anywhere to turn off the semicolon behavior. Is there any way to turn this feature off?
Most of the time when the semicolon misbehaves, it's because I hit it by mistake, but rather than hitting backspace, I now have a bigger mess to clean up. And I've never had a situation where it did something extra that I wanted it to do.
Some examples, with * being the cursor location:
// between a ) and ;
Foo()*;
// inserts an extra space
Foo();* ;
// before an existing semicolon:
return null*;
// moves the old semicolon to the next line:
return null;*
;
// pressing semicolon in the middle of a multi-line function call:
string path = Path.Combine(
"C:\\",
"b"*
"filename.txt");
// moves the cursor to the end of the block and inserts a "; " before ";":
string path = Path.Combine(
"C:\\",
"b"
"filename.txt");* ;
Upvotes: 6
Views: 1043
Reputation: 1511
Visual Studio 16.10 adds a new configuration option to control this:
Text Editor -> C# -> Intellisense -> Automatically complete statements on semicolon
With that checked, I get the problematic behavior described in the question. When I uncheck that option, it works as it did before.
Upvotes: 5