Emacs自动完成Qooxdoo?

3
我正在使用Qooxdoo和emacs与js2-mode(非常好的工具)开始一个项目,但我有一个小问题:没有自动完成支持Qooxdoo框架类。目前我已经启用了auto-complete-mode,但当我需要记住框架类时它并没有帮助。
备注: - 我正在使用emacs 24。 - 如果需要,我可以放弃auto-complete-mode并改用company-mode。
谢谢!
编辑:为了使这个工作起来,我写了一个小脚本从框架/源/类目录中获取类名:
find . -iname '*.js' -print0 | while read -d $'\0' file
do
  grep '^qx.Class.define(".*",$' $file | sed 's/qx\.Class\.define("\(.*\)",/\1/' >> ~/.emacs.d/ac-dict/js2-mode
done

在那之后,我按照sanityinc的回答操作,一切都如预期般正常工作。谢谢!


不错的脚本,但你应该只使用文件名,因为qx/...路径与文件名具有1:1的关系,例如路径qx/util/ResourceManager.js包含类qx.util.ResourceManager。这样会更容易一些。同时记得-prune qx/test,因为你不希望单元测试类影响你的字典。- 干得好! - ThomasH
@thomash 很好的观点。如果我有空闲时间,我想在接下来的几周里制作一个改进版本(当前版本在输入“qx.something”时无法自动完成)。然后我会在这里发布链接并向qooxdoo团队发送一封邮件。 - Rafael Ibraim
1个回答

3
您可以使用基于主要模式的用户自定义词典来实现此操作。首先,请确保您的'ac-sources包括'ac-source-dictionary。然后,创建一个文件,其中包含框架类名称列表,并将其保存为~/.emacs.d/ac-dict/js(或~/.emacs.d/ac-dict/js2-mode)。
在您的~/.emacs中设置以下变量(或者如果您使用该方案,则为~/.emacs.d/init.el):
(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")

重启 Emacs 后,.js 文件中的自动补全候选项应该包括你的类名。


好主意!我会尝试一下并稍后发布结果。谢谢! - Rafael Ibraim

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