使emacs自动完成Ruby方法

时间:2010-04-17 02:40:04

标签: ruby emacs

有没有办法让emacs像Eclipse和NetBeans那样提取ruby方法的自动完成功能?那就是我输入文件。并按下Eclipse中的CTRL-space我将获得一个File方法列表。与变量相同。我已经安装了自动完成插件,ruby-mode,rinari和cedet,但到目前为止它将完成局部变量和方法名称,但不会是原生的。

3 个答案:

答案 0 :(得分:8)

我认为你需要像RSense这样的东西。您可能也喜欢更通用的auto complete mode

答案 1 :(得分:2)

我不熟悉ruby,但如果用“本机方法”表示某些系统库中的内容,则有几种选择可以扩展CEDET来完成工作。

如果某些地方有ruby文件,其中包含所有代码,并且ruby支持某种“include”或“import”语句,那么您需要将该位置添加到ruby的包含路径中。这可能需要更改ruby源代码以添加新的系统包含路径。您可以在semantic-c.el中查看示例。您可能还需要覆盖函数semantic-tag-include-filename以将include转换为可查找的文件名。

如果没有包含,并且只有一些ruby解释器知道所有这些东西,那么你将需要编写一个完整的ruby“omniscient”数据库,类似于semanticdb-el.el。它需要一种方法来查询ruby中的各种事物并将它们作为答案返回。

欢迎任何此类增强功能回到CEDET贡献区的红宝石支持中。

答案 2 :(得分:0)

Ruby是一种解释型语言,因此很难做某些事情,例如自动完成。你怎么知道对象类型是什么,如果没有定义的话?因此,预制解决方案是有限的或不存在的。甚至Netbean / Eclipse中的自动完成也只适用于类方法(如果我没弄错的话)。