CodeProse: Leveraging Editor Services for Literate Programming
Assigned to Gustav Haitz.
Literate programming blends the borders between source code and documentation. The goal of existing tools like Docco and Scribble is to create a uniform reading experience for documentation and code.
Scala XRay (sxr) and its successor “browse” allow generating HTML documents which contain source code annotated with static information such as inferred types and binding information.
In a browse fork we started to combine the annotated sources with the literate programming style of a complementing presentation of comments and source code. However the implementation is highly coupled to the Scala compiler which hinders reuse and due to the complexity of the Scala compiler architecture impedes maintance.
This bachelor thesis proposal sets out to develop a literate programming tool with source code annotations of compile time information in features similar to our fork above. The tool developed in the thesis will be called “CodeProse”. The dependencies to the Scala compiler should be removed and replaced with a distinct interface to an existing editor service such as “ensime”. By reusing ensime or a similar tool for information retreival of the source code “CodeProse” will be more robust with regard to changes of the Scala compiler internals and more flexible in supporting other languages in the future.