是否有任何 ColdFusion IDE/IDE 插件允许您执行类似于 Visual Studio 的转到定义和查找用法的操作(其中一些详细信息位于 this page 上)?
例如,在一个 .cfc
我可能拥有的文件:
<cfset variables.fooResult = CreateObject(
"component",
"Components.com.company.myClass").fooMethod()>
而在
myClass.cfc
我有:<cffunction name="fooMethod" access="public">
<!-- function body -->
</cffunction>
如果我将光标设置在
.fooMethod
上在第一个文件中,转到定义操作应该将我置于 myClass.cfc
中该方法的声明中.目前我正在使用 CFEclipse用于 Eclipse 的插件以查看一些旧的 ColdFusion。
最佳答案
CFEclipse 没有这个功能,部分原因是 CFML 是一种动态语言,在解析方面有相当多的复杂性。
在大多数情况下,您可以使用正则表达式搜索来获得大部分信息。
功能定义
要查找函数定义,大多数情况下搜索...
(name="|ion )methodname
...就足够了,而且比以下更彻底的形式更快:
(<cffunction\s+name\s*=\s*['"]|\bfunction\s+)methodname
函数调用
要查找函数调用,只需执行以下操作:
methodname\s*\(
虽然反对你可能需要更彻底,包括:
['"]methodname['"]\s*\]\s*\(
...如果使用了括号表示法。
您可能还想检查 cfinvoke用法:
<cfinvoke[^>]+?method\s*=\s*['"]methodname
当然,如果您的代码是:
<cfset meth = "methodname" />
<cfinvoke ... method="#meth#" />
...也没有任何其他形式的动态方法名称。
如果您真的需要彻底查找所有实例,最好单独搜索方法名称(或包装为
\bmethodname\b
),并手动遍历使用它的任何变量的代码。
关于ColdFusion IDE 等效于 Visual Studio 的 "go to definition"和 "find usages",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18702016/