4

我注意到,在 Visual Studio 2017(15.2、26430.6)和 C++ 文件中,导航栏中的函数列表以区分大小写的方式排序(见下图)。在 Visual Studio 2010 中并非如此。

另一方面,解决方案资源管理器和类视图都显示使用不区分大小写的顺序排序的函数和方法。

是否有任何选项、配置文件、免费插件等可用于更改此行为?以这种方式检查文件非常困难。

到目前为止,我发现的唯一东西,但不是免费的,是Supercharge 插件,它似乎提供了自己的导航栏。


  1. 在 Visual Studio 2017 中

    在此处输入图像描述

  2. 在 Visual Studio 2010 中打开相同的项目

    在此处输入图像描述

注意:我对如何解决这个问题感兴趣,而不是对代码样式建议、混合大小写指南、减少每个文件的函数数量等感兴趣。我知道这不是最佳实践,但项目就是这样,我有来处理它。


更新:我今天早上已经升级到 VS 2017 15.2 (26430.12),这个问题仍然存在。

4

2 回答 2

2

这个问题确实是在一年半前报告给微软的,但是昨天这个问题被关闭为Won't fix,所以似乎没有官方的解决方案可供它使用。

在这里您可以找到错误报告和关闭问题的原因。

于 2018-11-30T15:30:54.947 回答
1

这确实感觉像是一种回归(可能与引入 SQLite 作为 IntelliSense 数据库后端有关?) - 您应该提交一个错误,但是您与 Microsoft 的协议允许。FWIW,一些逆向工程表明,在 VS 2017 中,排序是由 SQLite 数据库引擎完成的。在打开数据库连接时,VS 安装它自己的排序规则(通过https://sqlite.org/c3ref/create_collat​​ion.html),它调用并在需要按符号名称排序时WORD显式使用它(即查询在其文本中) ORDER BY i.name COLLATE WORD,就像那个组合框一样。collat​​ion 函数的实现将 UTF-8 字符转换为 UTF-32,并在对数学符号等进行一些特殊的大小写之后,最终对其进行序数比较。在我看来是故意的。

于 2017-05-30T23:58:16.803 回答