Summary of my Summer of Code 2019
This post is a summary of my Summer of Code 2019. My project was to bring Dart development support to the Eclipse IDE. To do so I created a plugin that consumes the Dart analysis server using LSP4E. It also provides syntax highlighting using TM4E and many more features listed below.
The following list showcases the most significant features of the plugin I (and other contributors) added during GSoC 2019.
Running Dart programs directly from Eclipse - eclipse/dartboard#1
Dart preference page - eclipse/dartboard#10
First class Pub support - eclipse/dartboard#107
pubspec.yaml
file$ pub get
manuallyCreating new Dart projects and files - eclipse/dartboard#115
Usage of the Dart logo - eclipse/dartboard@a23fc1f
Import existing Dart projects directly into the workspace (+ automatic dependency synchronization) - eclipse/dartboard#116
During development I encountered many issues with the libraries and tools I was using. As I was already aware I took the time to fix them directly and provide a patch or PR for the corresponding library.
A NullPointerException
in LSP4E's SymbolsModel#getChildren
Adjusted the Eclipse Light syntax theme in TM4E to match the classic Eclipse theme better
Using the quick access menu in Eclipse resulted in an Exception. This was caused by LSP4E not adhering to the LSP spec. - Issue: Bug 548155 - Fix: Change 143723
The textDocument/didSave
notification is not supported by the Dart analysis server but LSP4E sent it anyway and this resulted in an error
Another NPE in TM4E's ThemeContribution
I have completed all of my goals I set in the initial proposal for GSoC. However a few things and features have come up during development that I plan on taking care of in the near future.
$ flutter
command suite, instead of the default SDK
Other things that could be enhanced include:
$ webdev
command line tools
I hope to be able to work on them but community contributions are always welcome.
A full list of commits and issues can be found on the project's GitHub repository. Installation instructions can also be found there.
In the early days, Lakshminarayana Nekkanti has joined the project as a committer. He has been extremely helpful since by fixing bugs in the Eclipse platform that have been open for years (Bug 513034) and contributing a lot of features and knowledge to the plugin. Thank you, Lakshminarayana!
I would also like to thank Lars Vogel who has been my Mentor and helped tremendously when I was unsure what to do.