GSoC: First Update

3 Minutes
Jun 20, 2019

My first weeks of Google Summer of Code where filled with organizational things concerning the move of the project the eclipse foundation.

Moving to the Eclipse Foundation

Dartboard is now officially an Eclipse Foundation project. Its project site can be found here: Dartboard Project Page

The move consisted of making sure that all files had the correct licensing and that we where actually allowed to use all the libraries we where depending on. That took quite some time in which I could not really develop any new features. It also required me to erase any past commits from the repository. This is due to the review process only reviewing the current state of the code.

But after the project was transferred to the Foundation's GitHub organization, I was ready to code!

New Features

In the last week I mainly worked on getting the existing code up-to-date. There where still quite some short comings which I had to fix.

Launch Configurations

I also added the ability to launch Dart™ projects via a launch configuration:

Dart Syntax highlight

This also works for every *.dart file. For me this is very handy as I can just run any Dart file with default settings without having to configure it first. Internally this just passes the file to the Dart command line tool which then executes it. The output is shown in the Dart terminal.

Project Natures

Eclipse Plugin APIs allow to define Project Natures. Basically it lets a user assign a "Nature" to a project based on which a plugin can make decisions on what to show in context menus or do in operations.

I implemented a Dart Project Nature that lets me show the Run as Dart Program entry from above only on Dart projects. It was quite a hassle to set this up correctly inside the plugin as it seems like documentation on this feature is quite outdated.

Bug Fixing

While cleaning up the code base I discovered errors in the Dart language server. This was due to a mistake in LSP4E, the connector for the language server protocol to the Eclipse IDE. I provided a patch and it was merged by the LSP4E team.

Java 8 Support

Initially we planned on using Java 11 as the base requirement for the plugin. But since there actually was a user requesting Java 8 support (at least for the build), we reevaluated this and decided to downgrade to Java 8. This meant that I had to refactor the code to use Java 8, which turned out to be quite quick. But I had to use some workarounds for features that where not available in Java 8.

Conclusion for the First Weeks

While I do have to balance out my last weeks of university and Google Summer of Code at the same time, I did enjoy the first few weeks and felt very productive. There's still some more things to do for this first third of the program, but I feel like I am on the best of ways to reach my goals.

I will update this blog more frequently about the progress the next coming weeks.

Links

Dart and the related logo are trademarks of Google LLC. We are not endorsed by or affiliated with Google LLC.