Code completion is, no doubt, one of the most useful features of any IDE. This is why IntelliJ IDEA offers it in so many flavors: Basic Completion, Smart Completion, Second Completion, Second Smart Completion, Statement Completion, and Hippie Completion.
Each of these completion types already uses different algorithms and heuristics, but we'd like take them even further with machine learning, w