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: The- tattribute holds the type of the variable or field.
- global,- type: The- pattribute holds the path of the module which contains the type or field.