简体   繁体   中英

How to disable undesirable auto-complete with Visual Studio + ReSharper?

I'm using Visual Studio 2010 and ReSharper 5.

I define this at the top of a .cs file.

#if X86
using size_t = System.Int32;
#else
using size_t = System.Int64;
#endif

Then I can use size_t and know that it is a native integer, 32 bits if compiled as a 32 bit assembly, and 64 bits if compiled as a 64 bit assembly. (for those that are curious, the alternatives are always use Int64, or branch at runtime on IntPtr.Size == 4 and have two versions of the code. I prefer this solution.)

However, if I type size_t and hit space, it will be automatically converted to Int64 (or Int32 if X86 is defined). Obviously that's undesirable.

I went into ReSharper options and went to Environment \\ Intellisence \\ Completion behavior and disabled all the checkboxes under "Automatically complete single item with:".

It still happens, is there anything else I can try?

I ran into a similar issue (using VS2013 and Resharper 8.2).

To stop the undesirable auto-completion on every "space" hit, I had to disable IntelliSense completion on "space" both within VS and R# options:

  1. VS > Tools > Options > Text Editor > C# > IntelliSense > "Committed by pressing the space bar" checkbox
  2. VS > Resharper > Options > Environment > IntelliSense > Completing Characters > C# "Complete on space" checkbox

Cheers!

One solution would be to toggle to suggestion completion mode for intellisense. The default key binding for the toggle is Ctrl+Alt+Space . When in suggestion mode, it will only change what you type if you explicitly choose a value to change to. You can read more about it here:

http://blogs.msdn.com/b/zainnab/archive/2012/05/01/9943045.aspx

In the VS2017 menu hierarchy the suggestion mode can be found under:

Edit -> Intellisense -> Toggle Completion Mode

Additionally when the suggestion mode is enabled, it is visually indicated by the following button (and can also be enabled/disabled by clicking the button):

Visual Studio 2017 建议模式按钮

To turn IntelliSense options OFF by default

On the Tools menu, click Options.

Select the Text Editor folder.

Select the folder for the language you want to customize IntelliSense.

In the General property page, clear check boxes for IntelliSense features that you do not want:

Auto list members applies to List Members

Parameter information applies to Parameter Info

您可以使用转义键取消当前的智能感知建议。

In VS 2019 and ReSharper 2020 toggling completion mode doesn't solve the issue - suggestions are applied when spacebar is hit. To have it working one has to go to:

Extensions -> ReSharper -> Options... -> IntelliSense -> Completing Characters

and uncheck Complete on space for a respective programming language

ReSharper IntelliSense 设置

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM