Kotlin support, auto import quick fix, and better completion

Today is a big day for Datalore! There are two major features we are excited to talk about: support for the Kotlin IPython kernel and indices for the Python standard library that allow us to enable the auto-import quick-fix. We have also improved Python code completion. It now looks nicer and automatically inserts parentheses for function calls.

Kotlin support

Did you know that Jupyter notebooks aren’t only for Python? Indeed, the name itself gives that away, because Jupyter is an abbreviation for Julia, Python, and R. But perhaps you didn’t know that it supports another awesome language: Kotlin. Kotlin is the language developed by JetBrains, and it isn’t just for mobile and server-side software development. The wide range of scientific libraries (kotlin-statistics, kmath, krangl, lets-plot, and others) proves that you can do data science in Kotlin too. With the help of the Kotlin kernel for IPython/Jupyter, it was already possible to use Kotlin in plain Jupyter notebooks.

Now you can edit Kotlin Jupyter notebooks collaboratively in Datalore. Just choose the IPython kernel and the Kotlin language when you create a new notebook using the “New notebook dialog”.

If you want to make your work public, you can publish a read-only version of your notebook at view.datalore.io. Here is a published example of a notebook that shows the usage of the Lets-Plot library in Kotlin:


Auto-import quick-fix

The automatic import quick-fix is a feature that is easy to overlook in JetBrains IDEs like PyCharm because it is so convenient that having it available feels natural. But it is quite tricky to implement because it requires you to maintain the index for the whole Python standard library. We’ve now managed to implement it in Datalore.

Improved Python code completion

Thanks to the distinctive icons for different types of completion items, such as classes, functions, variables, etc., code completion is now nicer and more useful. We’ve also made an additional minor, but very handy, improvement: for function calls, code completion now inserts the parentheses automatically and places the caret inside them.

As always, we are eager for your feedback. Please don’t hesitate to write to us in the comments or post on our forum.