前面讲过如何在eclipse中配置R语言的开发环境插件,这两天写了几句代码发现一些自带的函数没有高亮显示,也没有自动补全,对于经常用eclipse做开发的童鞋来说很不习惯啊。于是网上搜了下+自己研究了下,搞定。
代码高亮问题
找到你设置的工作空间文件夹,然后依次打开workspace.metadata.plugins\org.eclipse.core.runtime.settings\,找到de.walware.statet.r.ui.prefs这个文件(如果没有这个文件,见最后),在里面找找看有没有以”text_R_rDefault.Custom2.items=”为开头的语句,如果有的话,只需把你准备实现高亮的词语加到等号后面就可以了(用逗号把这些词语隔开)。保存之后进入Eclipse,选择Winow菜单中的Preferences对话框,顺次展开StatET->Source Editors->R Identifier Groups,在右边的框中选中Custom 1(注意,配置文件中对应的是Custom2,确实是个bug),如果下面的列表框中出现了你刚才添加进去的词语,就说明配置成功了。接下来,只要在R Syntax Coloring对话框中找到Custom 1这一项,然后应用你自定义的高亮方式就可以了。需要注意的是新加入的词语不能与StatET中已有的重复,否则可能会出错。
添加之后,还得设置这些添加的词语以哪种方式展示,如果默认的话就没有效果。如下图设置,StatET->Source Editors->R Syntax Coloring,展开你添加的Custom 1,右边自定义格式,例如颜色加粗等。
手动一个一个添加肯定是比较麻烦的。下面这段代码是搜索所有安装的包的函数,并将这些函数输出到out.txt,就可以自己添加到相应的文本(如上配置文件)里面以实现高亮。
# date:2012-4-26 |
代码提示自动补全问题
首先依然是打开Winow菜单中的Preferences对话框,然后顺次展开StatET->Source Editors->R Templates,右边框中的列表就是在编辑窗口中按”Alt+/”会出现的提示模板。点击New可以输入自定义的函数,如果只是要实现单词补全的话,就在Name和Pattern中填入函数名就行了,Description就是在出现的下拉供选择的提示函数中相应的描述,例如在Java中会显示API Doc。
看到图中可以导入导出,试着添加一个然后导出发现先其模版是按照这样的模式
<templates> |
现在需要的就是将所有的函数按照这样的格式写下来即可,导入之后就可以了。用python写个脚本简单完成此功能。
# coding=UTF-8 |
以上代码将之前安装的包中的函数以固定的格式输出到r.functions.templetes.xml,然后在上图中StatET->Source Editors->R Templates,导入即可实现。效果如下图
其实这样导入后,eclipse自动将这些配置写到了上面的那个配置文件de.walware.statet.r.ui.prefs(直接在这里添加也可以,不过建议不使用这种方式)。注意导入的时候可能会出错,原因是因为templetes.xml中一些函数包含类似”<-“这样的符号,得去掉,或者转义吧。我直接去掉。上面python中前面几句就是过滤到之类的函数。
在这里可以下载我的环境中生成的自动补全的函数列表。最好是你自己用上面的R script和python代码跑一遍得到你要用到的函数。