This document discusses remixing language tooling by creating a functional interface for language services. It proposes defining individual language services like parsing, analyzing and completing as standalone functions. This makes the interface technology agnostic and allows reusing existing tooling. It demonstrates implementing such services by combining parser generators, analysis frameworks and other reusable components without having to build everything from scratch. The overall approach aims to accelerate creation of customized IDEs.
Related topics: