8.3.7 Top-level completion
since Haxe 3.2.0
Top-level completion displays all identifiers which the Haxe Compiler knows about at a given compilation position. This is the only completion method for which we need a real position argument in order to demonstrate its effect:
class Main {
static public function main() {
var a = 1;
}
}
enum MyEnum {
MyConstructor1;
MyConstructor2(s:String);
}
If this file is saved to Main.hx, the completion can be invoked using the command haxe --display Main.hx@63@toplevel
. The output looks similar to this (we omit several entries for brevity):
<il>
<i k="local" t="Int">a</i>
<i k="static" t="Void -> Unknown<0>">main</i>
<i k="enum" t="MyEnum">MyConstructor1</i>
<i k="enum" t="s : String -> MyEnum">MyConstructor2</i>
<i k="package">sys</i>
<i k="package">haxe</i>
<i k="type" p="Int">Int</i>
<i k="type" p="Float">Float</i>
<i k="type" p="MyEnum">MyEnum</i>
<i k="type" p="Main">Main</i>
</il>
The structure of the XML depends on the k
attribute of each entry. In all cases the node value of the i
nodes contains the relevant name.
local
,member
,static
,enum
,global
: Thet
attribute holds the type of the variable or field.global
,type
: Thep
attribute holds the path of the module which contains the type or field.