Eclipse模板中的条件语句
Eclipse模板可以在你编写代码时自动插入文本和变量。当你使用${variable}这种格式的变量时,它的值会自动填入。
我想问的是,是否可以根据条件向这些模板添加部分内容。比如说,你能不能有一个方法定义的模板,它会填入多个变量,并且只在这些变量有值的时候才添加它们的本地定义?
def method(${var1}, ${var2}, ${var3}):
self.${var1} = ${var1}
self.${var2} = ${var2}
self.${var3} = ${var3}
那么,${var2}和${var3}这两个本地变量只有在它们在方法定义中有定义时才会存在吗?
这个问题主要是针对使用PyDev进行Python开发的,但其他语言的答案也很欢迎。
2 个回答
1
在Eclipse编辑器的模板中,目前还做不到这个。
你可以定义自定义的变量解析器,来生成你想要的内容。不过,我觉得这可能无法满足你的需求。
一个变量解析器可以返回空字符串"",但你基本上需要把整个模板都放在解析器里;这样在其他模板中就不太好重复使用了。
抱歉,我看不出有什么方法可以做到这一点(不过我也希望能有这样的功能)。
2
在最新的夜间版本(也就是1.5.4)中,可以通过Jython脚本在Pydev里实现这个功能。
想了解更多信息,可以去这里查看:http://pydev.org/download.html。
简单来说,你可以在脚本中定义一个变量,然后用Jython编程来设置它的样子(而且在创建变量后,你可以随时更新模板缓存)。
默认情况下,有一些变量已经被定义好了,你可以在这里找到:http://github.com/aptana/Pydev/blob/master/plugins/org.python.pydev.jython/jysrc/pytemplate_defaults.py。
这个模块里有关于如何操作的注释(你也可以把这个模块当作一个例子来使用)。