WIP 2

Lots of work are based on [IntelliJ Dart Plugin](https://github.com/JetBrains/intellij-plugins/tree/master/Dart).