让emacs自动完成Ruby方法

4
有没有一种方法可以让emacs像Eclipse和NetBeans一样自动补全ruby方法?就是说,如果我在Eclipse中键入File.并按下CTRL空格键,我将获得File方法列表。变量也是如此。我已经安装了自动完成插件、ruby-mode、rinari和cedet,但到目前为止它只会完成本地变量和方法名称,而不是原生的名称。
3个回答

8

我已经安装了自动完成插件,但似乎没有办法按照我想要的方式进行 Ruby 自动完成。我会看一下 RSense。 - Mad Wombat

2
我不熟悉Ruby,但如果您所说的“native methods”是指某个系统库中的东西,则有几种扩展CEDET以完成工作的选项。
如果有包含所有代码的Ruby文件,并且如果Ruby支持某种“include”或“import”语句,则需要将该位置添加到Ruby的包含路径中。这可能需要更改Ruby源代码以添加新的系统包含路径。您可以在semantic-c.el中看到示例。您还可能需要覆盖函数semantic-tag-include-filename以将包含转换为可查找的文件名。
如果没有包含文件,只有一些知道所有这些内容的Ruby解释器,那么您将需要编写一个完整的Ruby“全知”数据库,类似于semanticdb-el.el。它需要一种查询Ruby各种事物并将其作为答案返回的方法。
欢迎在CEDET的贡献区中回传此类增强功能到Ruby支持。

我对Emacs和Ruby都太新了,不足以编写这样的东西。我希望能有一个现成的解决方案。 - Mad Wombat

0

Ruby是一种解释性语言,这使得某些事情变得困难,例如自动完成。如果未定义对象类型,您将如何知道它是什么?因此,预制的解决方案是有限或不存在的。即使在Netbean / Eclipse中的自动完成也只能适用于类方法(如果我没有记错的话)。


Ruby有类型,只是它们是后期绑定的,因此IDE自动完成需要猜测。 - Matt Briggs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接