有没有办法从VS中的类的快速信息中隐藏笨拙和冗长的命名空间表达式?
我不想要这个:
我想要这个:
有没有办法让类名显示得像这样清洁?目前这显然是不可读的。我在想一些像ReSharper,CodeRush,JustCode等插件。
答案 0 :(得分:8)
您可以确认您正在使用的Visual Studio版本(和任何更新)吗?我确实将Visual Sudio 2013视为您问题中的标签。
此外,是否可以在没有显示快速信息的情况下提供代码的屏幕截图,但是,突出显示您尝试显示的代码中的确切位置快速信息 for?
如其他地方所述,Resharper可用于增强智力感知。即可以选择是否使用默认的Visual Studio或Resharper,intellisense提供程序。但是,虽然Resharper增强了语法完成和参数显示,但这不会影响问题中给出的示例中的快速信息。 快速信息是一个工具提示,默认情况下,当鼠标悬停在符号或变量上时会自动显示。
在 Visual Studio 2010 中,可以编写扩展名来覆盖智能感知,以显示您自己的自定义工具提示。
在 Visual Studio 2013 中,没有内置选项以允许自定义。
Visual Studio Ultimate 2013,更新4,没有Resharper:
显示通用词典的以下快速信息:
在 Visual Studio 2015 (当前发布候选版)中,快速信息的智能感知工具提示已更改,可读性更高:
重新审视问题中给出的示例,并使用一行简单的代码作为包含另一个词典的词典的测试:
Dictionary<string, Dictionary<string, int>> dict;
在Visual Studio 2013 Ultimate,Update 4,有或没有 Resharper最新版本中,显示以下内容:
在Visual Studio 2015 RC中,有或没有 Resharper最新版本,显示以下内容:
请注意,Visual Studio 2015已更改快速信息的显示方式,并且接近所需的结果。在这种情况下,ReSharper虽然是一个出色的工具,但不会影响快速信息。
Visual Studio 2015 RC快速信息行为
要验证自定义类型与Visual Studio 2015 RC中所述的行为相同,将在新名称空间中创建一个简单类:
namespace StackAnswer
{
class MyClass
{
public int MyProperty
{
get; set;
}
}
}
使用“完全限定”名称引用该类型(即没有using语句):
Dictionary<string, Dictionary<string, StackAnswer.MyClass>> dict;
显示以下内容:
添加使用声明:
using StackAnswer;
将对类型的引用更改为“不完全限定”:
Dictionary<string, Dictionary<string, MyClass>> dict;
表示Visual Studio 2015 RC根据引用声明显示名称:
这是使用Rosyln编译器允许的可能行为。
Resharper的“快速文档”
如果使用Resharper的“快速文档”功能,该功能是通过鼠标悬停显示的不 Visual Studio 快速信息打开的,如上所述问题),命名空间确实缩短了。以下是Visual Studio 2013中的两个截图:
附加说明:有关快速信息的背景信息
Visual Assist,Visual Studio的扩展,确实具备增强并可能替换快速信息工具提示的能力 - if 内置快速信息已关闭。
然而,目前,在Visual Studio(包括2015 RC)中,关闭内置快速信息的功能仅适用于C / C ++语言;因此,目前任何工具都不可能达到原始问题中提到的与C#语言相关的确切期望行为。
(如果使用C / C ++,可以通过工具&gt;选项&gt;文本编辑器&gt; C / C ++&gt;高级&gt;自动快速信息找到。)
答案 1 :(得分:2)
我真的推荐ReSharper。您可以分别使用Parameter Info和Quick Documentation功能调整参数信息和快速信息。默认情况下,两者都隐藏名称空间,并对要显示的内容提供更精细的控制。
在网站上,您可以下载30天的演示版。