Kotlin Development in VS Code

Kotlin is a really sweet language. It is the perfect thing in between a “super-powerful and but difficult language” like Rust or Modern C++, and a “super-easy but that seems to be designed in the 80s” like Go. With the upcoming release on Kotlin Native, then, you can even ditch the JVM!

However, while IntelliJ is a great IDE, often I do not like to rely on big IDEs — especially when VSCode works perfectly well for 90% of my use cases. Therefore, it is time to see if and how I can use Kotlin in VS Code (and see what is missing).

Install Kotlin “Standalone”

Obviously, the first step is to install the stand-alone version of the Kotlin compiler. Instructions are here but if you do not want to spend extra clicks the basic instructions are:

  • If you are using MacOS and Homebrew, then just run brew install kotlin.
  • If you are using Ubuntu, just run sudo snap install --classic kotlin.
  • Otherwise, just download the zip and unpack it whenever you want (and add the folder to PATH).

For projects, both Gradle and Maven are compatible with Kotlin. However, I assumed that you have them installed for your standard JDK experience.

Kotlin Language Support in VSCode

The absolutely required extension is Kotlin Language. This extension adds syntax coloring, code folding and a very basic support to the language. It is very basic but it works well.

Another plugin is called just Kotlin. It is still in “preview” but it seems to work fine. It is more “powerful” than the previous one: it also adds a basic IntelliSense support (code completion, signature helps, _go to _ definition and more).

Another highly suggested extension is Code Runner. This is not a Kotlin-specific extension but it does the job of compiling and running the application with a simple code combination.

However, I do not really get it. At the moment Kotlin support is very basic and it is nothing that this line does not do:

1
kotlinc foo.kt -include-runtime -d foo.jar && java -jar foo.jar

So, instead, if you do not want this extension just for Kotlin, you can use the integrated task runner. Create a task.json file and write this in it:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "kotlinc test.kt -include-runtime -d foo.jar && java -jar foo.jar"
        }
    ]
}

If your Kotlin project is a Maven project, then there is already a preset in VSCode. Go with it.

Other Useful Extension

In the VSCode Extension Store there is also a debugger called — without much imagination — Kotlin Debugger. I do not use it but, from what I have seen, it works fine.

Conclusions and State of the Environment Evaluation

My impression is that Kotlin support in VSCode is evolving, it is fine, but it is not there yet. The experience is worse than with IntelliJ (of course, you may say) but it is also a bit worse than VSCode experience with other languages.

I’ll come back to this in the future! VSCode is my editor of choice and I will not give up on it so easy. :)

Header Image
I needed to trust my gut feelings: Kotlin and Android

In this year top-5 promising languages list, I put Kotlin in fifth place among the languages that you should definitely check in 2017. This week Google I\O announced that Kotlin is now an officially …

Read
Header Image
Any news from Clojure front?

Some days ago, I was cleaning my Code folder from old snippets and test projects when I found an old Clojure package I did to test some Clojure feature. I remember that I kept the project sleeping in …

Read
Header Image
Most Promising Programming Languages of 2017

Another year, another 5 promising programming languages you should keep an eye on in 2017. As usual, I’d like to write the warning I put here every year: in this list, you will not find programming …

Read
comments powered by Disqus