GSoC: Second Update

3 Minutes
Jul 03, 2019

Between last exams and our first pull requests on GitHub.

First, lets get the most important thing out of the way: We got our first pull request on GitHub 🎉. Thanks to GitHub user Lakshminarayana Nekkanti for having enough interest in the project to fix a few bugs and raise some issues. More on that down below.

And what have I been up to these past weeks? I still had to finish some exams in university before I could focus a 100% on Dartboard. Nevertheless I still had some time to fix a few bugs and review the PRs on GitHub.

First Testing

While developing the first features of the plugin, manual testing couldn't really be done by more people than me. In the past week however Lars (@vogella) took some time to extensively test the existing features. In doing so he discovered some issues with the user experience, especially in the first steps a new user needs to take get up and running.

Bug Fixes - Plugin

Executing a Dart file was done in the main thread which caused the IDE to freeze completely during the execution of the program. This was problematic for programs that took longer to execute or continuously running programs like webservers or a Flutter app for example. See eclipse/dartboard#50.


Errors in the Dart program output are printed to the error stream of a process by default. But our Dart terminal only showed the normal input stream coming from the Dart process. To circumvent this I added the error stream to the Dart terminal. Any errors that happen during compilation or at runtime are now printed to the terminal and shown in red. See eclipse/dartboard#44.


Lakshminarayana Nekkanti added the ability to use the New context menu of eclipse to create Dart files and projects. He also added validation of the entered Dart SDK on the preference page, while the user types a path in. This results in instant feedback when modifying the Dart SDK location.

Instant Dart SDK location validation

Again, thank you Lakshminarayana!

Bug Fixes - LSP4E

Whenever a file is saved, the LSP4E plugin sends a notification to the language server, that the file was saved. This is useful for language servers that need to execute a task upon saving of a file (for example recompiling or analyzing the file). The Dart analysis server however, does not need this notification and does advertise this at the first connection with a client. LSP4E ignored this until now and sent the notification anyways, resulting in an error raised by the analysis server which was also shown to the user.

I added a check to LSP4E that checks if the language server actually supports the notification and only sends it if it does. This resolved the error in the analysis server.

See Bug 548210.

Theming

The default theme of TM4E is rather light and a little hard to read. Thus we changed the theme that is used by default in Dartboard to another variant of the Eclipse editor theme.

Eclipse Light theme

The new theme does not seem to be quite finished yet. It will require some polishing in the TM4E project.

Wrap up

That's it for the past two weeks. Even though I still had to finish some exams in university I could use the project as some alternation to studying which was very refreshing.

Also it's awesome to see interest from all over the world by fixing bugs and submitting issues.

Links

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