Programming Languages and Software Technology

Implementing the language server protocol for Koka

The Language Server Protocol (LSP) defines a protocol used between an editor or IDE and a language server that provides language features like auto complete, go to definition, find all references etc. The Language Server Protocol has to be implemented once for every programming language and once for every editor, instead of once for every combination of programming language and editor, thus reducing a m x n problem to a m + n problem.

Koka is a research programming language which has a unique way of tracking effects in its type system. (Try the interactive Koka tutorial on:

The goal of this thesis is the implementation of a language server for Koka. The capabilities that the language server provides will be determined in the course of the writing of the thesis.

The implementation language is Haskell.

Further Information


David Binder

Jonathan Brachthäuser