Che*_*eso 9 c# emacs emacs-speedbar
我已经使用了emacs很长一段时间,但我还没有跟上一堆功能.其中一个是speedbar,我现在只是简单地研究过.另一个是imenu.这两个都在in-emacs-how-can-can-between-functions-in-the-current-file中被提及 ?
使用imenu,我可以跳转到我正在使用的模块中的特定方法.但是在我获得选择(使用自动完成)方法名称的选项之前,我必须协商一个解析层次结构.
它是这样的.我键入M-x imenu然后我可以选择Using或Types.Using选项允许我跳转到C#文件顶层的任何using语句(类似于Java模块中的import语句,对于那些不了解C#的人来说).不是很有帮助.我选择类型.然后我必须选择命名空间和类,即使源模块中只有一个.那时我可以在变量,类型和方法之间进行选择.如果我选择方法,我最终会得到可供选择的方法列表.我遍历的层次结构看起来像这样;
Using
Types
Namespace
Class
Types
Variables
Methods
method names
Run Code Online (Sandbox Code Playgroud)
只有在我达到第5级后才能选择我真正想要跳到的东西:一种特殊的方法.
Imenu对源模块似乎很聪明,但有点难以使用.我做错了吗?
http://cedet.sf.net上的 CEDET 工具在“contrib”区域中包含一个可以解析 C# 代码的 C# 解析器。然后,CEDET 支持 speedbar 和 imenu 的专用接口,这将以代码组织方式而不是标签类型组织方式塑造您的菜单结构。例如,在 C++ 中,代码如下:
namespace foo {
class bar {
int somemethod();
}
}
Run Code Online (Sandbox Code Playgroud)
会给你一棵树,其中“foo”下有“bar”,“bar”下有“somemethod”,所以如果你知道你的结构,你只需要按名称展开到你想要的标签。