Visual Studio 2019 IntelliSense 已更改(如何获取先前的行为?)
Visual Studio 2019 IntelliSense changed (how to get prior behavior?)
自从我切换到 VS 2019(从 2017 年开始)以来,我很确定我的 IntelliSense 体验有所下降。我在“工具”->“选项”下查找设置...但没有找到任何有用的信息。
问题是这样的:假设我有一个变量 kvp,它有一个 属性 键,我可以键入 "key.",滚动到 "Key" 属性(如果这还没有 selected),然后输入“;”完成声明。
但这不再有效了。相反,它现在忽略了我 selected 和我得到的
键.;
获得 selected 属性 的唯一方法是明确地按回车键。当我将第一个字符键入 select 所需的选项时也是如此:当按下 ; 时它只留下我已经输入的内容并添加;紧随其后,忽略我在弹出菜单中 select 编辑的内容。
发生了什么事以及如何恢复正确的行为?
我使用的是预览版,但我已经进行了几次更新,但它没有改进,所以我猜这是设计或默认行为造成的。
这是我为 Perry 编写的一些代码。这只是一个例子,问题(或者我认为是问题的)发生在任何对象变量上。
private static void AddBlockNodes(TreeNode node, IDictionary<string, Block> blocks)
{
foreach (KeyValuePair<string, Block> kvp in blocks)
{
string name = kvp.Key;
Block block = kvp.Value;
TreeNode childNode = new TreeNode(name);
childNode.Tag = block;
node.Nodes.Add(childNode);
AddBlockNodes(childNode, block.Subblocks);
}
}
it just leaves what I already typed and adds the ; immediately behind
it, ignoring what I selected in the popup menu.What happened and how
do I get the proper behavior back?
这是一个非常不正常的行为,我已经安装了 Visual Studio 16.6.0 Preview 2.1 并在我这边测试了你的代码,它运行良好。
键入变量 kvp.
,然后键入 select 属性 Key
并按预期键入。过程中我没有遇到失踪属性Key
您可以尝试这些步骤来解决您的问题:
建议
1) 通过 Tools
-->Import and Export Settings
-->Reset all settings
重置所有设置
2)关闭VS Instance,进入项目路径,删除.vs
存储一些Intellisense设置的隐藏文件夹,bin
,obj
文件夹,然后再次重新启动您的项目。不知你是否将旧项目迁移到VS2019预览版,我认为你应该完成这一步。
3) 如果您在“扩展”-->“管理扩展”下禁用任何第三方扩展,以防它们导致此行为。
4)删除C:\Users\xxx\AppData\Local\Microsoft\VisualStudio.0_xxx(16.0 is VS2019)\ComponentModelCache
下的所有组件缓存
5)尝试在VS2019预览版中新建一个工程,测试新平台是否存在此问题,如果有效,我认为是你的问题项目本身。或者您可以尝试将您的项目迁移到新项目中。
希望对您有所帮助。
自从我切换到 VS 2019(从 2017 年开始)以来,我很确定我的 IntelliSense 体验有所下降。我在“工具”->“选项”下查找设置...但没有找到任何有用的信息。
问题是这样的:假设我有一个变量 kvp,它有一个 属性 键,我可以键入 "key.",滚动到 "Key" 属性(如果这还没有 selected),然后输入“;”完成声明。
但这不再有效了。相反,它现在忽略了我 selected 和我得到的
键.;
获得 selected 属性 的唯一方法是明确地按回车键。当我将第一个字符键入 select 所需的选项时也是如此:当按下 ; 时它只留下我已经输入的内容并添加;紧随其后,忽略我在弹出菜单中 select 编辑的内容。
发生了什么事以及如何恢复正确的行为?
我使用的是预览版,但我已经进行了几次更新,但它没有改进,所以我猜这是设计或默认行为造成的。
这是我为 Perry 编写的一些代码。这只是一个例子,问题(或者我认为是问题的)发生在任何对象变量上。
private static void AddBlockNodes(TreeNode node, IDictionary<string, Block> blocks)
{
foreach (KeyValuePair<string, Block> kvp in blocks)
{
string name = kvp.Key;
Block block = kvp.Value;
TreeNode childNode = new TreeNode(name);
childNode.Tag = block;
node.Nodes.Add(childNode);
AddBlockNodes(childNode, block.Subblocks);
}
}
it just leaves what I already typed and adds the ; immediately behind it, ignoring what I selected in the popup menu.What happened and how do I get the proper behavior back?
这是一个非常不正常的行为,我已经安装了 Visual Studio 16.6.0 Preview 2.1 并在我这边测试了你的代码,它运行良好。
键入变量 kvp.
,然后键入 select 属性 Key
并按预期键入。过程中我没有遇到失踪属性Key
您可以尝试这些步骤来解决您的问题:
建议
1) 通过 Tools
-->Import and Export Settings
-->Reset all settings
2)关闭VS Instance,进入项目路径,删除.vs
存储一些Intellisense设置的隐藏文件夹,bin
,obj
文件夹,然后再次重新启动您的项目。不知你是否将旧项目迁移到VS2019预览版,我认为你应该完成这一步。
3) 如果您在“扩展”-->“管理扩展”下禁用任何第三方扩展,以防它们导致此行为。
4)删除C:\Users\xxx\AppData\Local\Microsoft\VisualStudio.0_xxx(16.0 is VS2019)\ComponentModelCache
5)尝试在VS2019预览版中新建一个工程,测试新平台是否存在此问题,如果有效,我认为是你的问题项目本身。或者您可以尝试将您的项目迁移到新项目中。
希望对您有所帮助。