有没有一种像在C#等语言中对对象进行的那样"折叠"VS2008中函数和值的方法?浏览数百行嵌套的函数定义非常耗时且令人沮丧。
因此,官方答复是不支持此功能。然而,在我与F#团队实习期间,我编写了一个原型实现该功能的版本。由于F#团队有其他更重要的事情要做,因此这个版本从未经过适当测试,并且没有包含在最终版本中。
该功能的代码实际上仍然存在于F#中,并且可以通过将以下内容添加到devenv.exe.config
文件中来启用该功能:
<appSettings>
<add key="fsharp-regions-enabled" value="true" />
</appSettings>
显然,这不完全是你想要的,因为你只能折叠模块和类型定义,但它仍然可能有用 - 在F#中决定要折叠哪些内容很困难,因为F#有很多嵌套声明...
顺便说一下:我是否提到过这未经过测试,可能会导致Visual Studio崩溃或甚至折叠宇宙?
在Visual Studio 2008中,没有这个功能,因为语言服务不支持大纲视图。在Visual Studio 2010中也没有此功能。但是,编辑器支持自定义大纲的概念。
不幸的是,这是完全手动的过程。
我带来了适用于我自己的东西,也许会引起你的兴趣。我使用 VS2008+RockScroll(在我的电脑上可行)。
当我需要处理大量嵌套函数时,它真的很有帮助,因为我能更清晰地看到整个情况。此外,我在函数主体开头添加注释,例如:
// Start of bigFunctionWithLoadsOfNestedFunctions
当双击它时,它会在缩略图视图中以红色突出显示let-bound定义和函数的真实起始点。请参见: http://img338.imageshack.us/img338/1060/40105807.png