Haxe provides its own
completion server for other IDEs to use. It is my understanding that the @:noCompletion compiler metadata basically prevents the completion server from providing code completion (or code hints) for the associated field. In a sense, this also adds another layer of privacy to the codebase by controlling what a user views as "accessible" to him. These "hidden" fields
can be used without error, of course. It's just that nothing aside from the source code would point to their existence. An example use case of the @:noCompletion metadata is to hide getter and setter methods, reducing both code hint clutter and chances of the fields being accessed.
A lot of the metadata listed in the Manual is self-explanatory. Those that seem mysterious should be observed with some context. A simple
search of GitHub repositories will provide lots of examples.