企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
Haxe编译器丰富的类型系统(第3章)使得IDEs和编辑器难以提供精确的完成信息。在类型推断(第3.6节)和宏(第9章)之间,需要大量的工作来反复需要的处理。这就是为什么Haxe编译器带有一个内置的完成模式供第三方软件使用。 所有完成使用 `--display file@position[@mode]` 编译器参数触发。需要的参数为: * file:要检查完成的文件。必须是一个 .hx 文件的绝对或相对路径。它不遵守任何类路径或库。 * position:指定文件中要检查完成的字节位置(不是字符位置)。 * mode:使用的完成模式(查看下面的介绍)。 我们研究如下的完成模式细节: * 字段访问(第8.3.2节):提供一个可以被在一个指定类型上访问的字段列表。 * 调用参数(第8.3.3节):报告当前被调用的函数的类型。 * 类型路径(第8.3.4节):列出子包、子类型和静态字段。 * 使用(第8.3.5节):列出所有编译的文件中所有指定类型、字段或者变量的出现。(模式:usage) * 位置(第8.3.6节):报告指定类型、字段或变量被定义的位置。(模式:position) * 顶级(第8.3.7节):列出所有在指定位置有效的标识符。(模式:toplevel) 由于Haxe是一个非常快的编译器,依赖普通编译器的完成调用通常就足以胜任。对于较大的项目,Haxe提供一个确保只有那些实际上发生了变化,或者它们的依赖关系有任何变化的文件才会被重新编译的服务模式(第8.3.8节)。 **接口上的一般注意事项** * 如果被提到的文件在感兴趣的位置包含一个 | 字符,position参数可以被设置为0 。这对于演示和测试是非常有用的,因为它允许我们忽略一个真实的IDE不得不去做的字节计数处理。本节的例子使用了这个特性。注意,这只在 | 所在的地方不是有效的语句时可用,例如,在一个点号之后(.|)和开口的括号( (| )之后。 * 输出是经过HTML转义的,所以 &,< 和 > 符号分别变成 `&amp;`, `&lt`; 和 `&gt;` 。 * 否则任何文档输出是被加工的,意味着长文档可能包括包括换行和制表符,因为它们确实在源文件中。 * 当在完成模式运行,编译器不现实错误,而是尝试忽略它们或者从错误之中恢复。如果一个致命错误发生而被完成,Haxe 编译器打印错误消息而不是完成的输出。任何非XML的输出都可以被看作是一个致命错误的消息。