Yet another clue. If instead of trying to complete on variable `s'--whose
declared type is Server--and instead try to complete on an object literal
for that type, Analyzer completion works. That is, if instead of this:
Server s = new Server();
s. <-- try to complete here
I do this:
(new Server()). <-- try to complete here
This seems to work. Interestingly, if I try to complete on the type, but
not on a new object literal of that type, instead of getting just the class
variables (static variables and methods in Java-speak), completion "works",
but it gives the wrong results. For example:
Server. <-- try to complete here
This SHOULD only complete class (or "static") variables and methods. It
should filter out instance variables and methods, but it does not. This
may be a separate problem.
Presumably, these things work perfectly in C++ (though I haven't checked),
since CEDET and Semantic seem to have the most robust support for C/C++.
In the syntax and semantics, Java is a pretty close match to C++, so I'm
sort of surprised this doesn't work.