(转)在Visual Studio中彻底禁用IntelliSense

以下内容适用于VS2005SP1及更高版本。


工具-〉宏-〉宏资源管理器,
在宏资源管理器窗口右击宏结点,选择新建宏项目。
选择宏项目,命名为Intellisense,然后添加,
将自动添加的Module1重命名为IntellisenseModule。
右击IntellisenseModule选择编辑,
在新窗口中粘贴下面的代码:

Imports System

Imports EnvDTE

Imports EnvDTE80

Imports EnvDTE90 //我的是2008的,所以默认会有该项

Imports System.Diagnostics

Enum ISENSE_FLAGS

    ISENSE_NORMAL = 0       'normal (Intellisense On)

    ISENSE_NOBG = &H1       'no bg parsing (Intellisense Updating Off - although NCB file will be opened r/w and repersisted at shutdown)

    ISENSE_NOQUERY = &H2    'no queries (don't run any ISense queries)

    ISENSE_NCBRO = &H4      'no saving of NCB (must be set before opening NCB, doesn't affect updating or queries, just persisting of NCB)

    ISENSE_OFF = &H7        'no bg parsing, no queries, no saving of NCB, ncb will still be opened, however

End Enum

Public Module IntellisenseModule

    Sub Intellisense_NoUpdate()

        DTE.Properties("TextEditor", "C/C++ Specific").Item("IntellisenseOptions").Value = ISENSE_FLAGS.ISENSE_NOBG Or ISENSE_FLAGS.ISENSE_NCBRO

    End Sub

    Sub Intellisense_Off()

        DTE.Properties("TextEditor", "C/C++ Specific").Item("IntellisenseOptions").Value = ISENSE_FLAGS.ISENSE_OFF

    End Sub

    Sub Intellisense_On()

        DTE.Properties("TextEditor", "C/C++ Specific").Item("IntellisenseOptions").Value = ISENSE_FLAGS.ISENSE_NORMAL

    End Sub

    Sub Intellisense_Status()

        Dim x

        x = DTE.Properties("TextEditor", "C/C++ Specific").Item("IntellisenseOptions").Value

        Dim result

        If x = ISENSE_FLAGS.ISENSE_NORMAL Then

            result = "Intellisense On"

        ElseIf x = ISENSE_FLAGS.ISENSE_OFF Then

            result = "Intellisense Off"

        Else

            If x And ISENSE_FLAGS.ISENSE_NOBG Then

                result = "No background parsing. "

            End If

            If x And ISENSE_FLAGS.ISENSE_NOQUERY Then

                result = result + "No Intellisense queries in IDE. "

            End If

            If x And ISENSE_FLAGS.ISENSE_NCBRO Then

                result = result + "No saving of NCB file. "

            End If

        End If

        MsgBox(result)

    End Sub

    Sub DeleteNcbAndReload()

        Dim name

        Dim namesln

        namesln = DTE.Solution.FullName()

        If Len(namesln) > 4 Then

            name = Left(namesln, Len(namesln) - 4) & ".ncb"

            If MsgBox("This may take a while. Closing solution, deleting " & name & ", and reopening solution.", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then

                DTE.Solution.Close()

                Kill(name)

                MsgBox("NCB deleted", MsgBoxStyle.OkOnly)

                DTE.Solution.Open(namesln)

            End If

        Else

            MsgBox("No solution is currently loaded.", MsgBoxStyle.OkOnly)

        End If

    End Sub

End Module

文件-〉关闭并返回,
右击Intellisense宏选择设为记录项目。
工具-〉自定义-〉工具栏-〉新建,
输入一个你喜欢的名称。
命令选项卡-〉类别-〉宏,
将Intellisense开头的五个拖放至刚才新建的工具栏内。
在按钮上右击可以重命名并更改图标。

各个按钮的功能:
Intellisense On 恢复正常状态,开启Intellisense;
Intellisense Off 绝大多数Intellisense功能关闭,与重命名feacp.dll效果几乎相同;
Intellisense NoUpdate 禁止Intellisense数据库的自动更新;
Intellisense Status 显示当前的Intellisense设置状态;
DeleteNcbAndReload 关闭解决方案,删除ncb文件,重载解决方案。

注意事项:

实践证明,NoUpdate比Off选项更好;

各按钮的修改是永久的,与解决方案无关;
当没有解决方案载入时,修改是无效的。


转自:http://hi.baidu.com/coolypf/item/d12955e7a15affb52f140bfb

你可能感兴趣的:((转)在Visual Studio中彻底禁用IntelliSense)