Editor and IDE support for a Java-like language

Technologies like tree-sitter (https://tree-sitter.github.io/tree-sitter/) and the Language Server Protocol (LSP, https://microsoft.github.io/language-server-protocol/) make it possible to implement cross-editor and cross-IDE support for programming languages, including semantic editing features like syntax coloring, smart indentation, outline folding, finding definitions and usages of language elements, as well as lightweight refactoring like renaming of identifiers.

The scope of this thesis is to implement cross-editor support for the modeling language ABS (https://abs-models.org).  A formal grammar (implemented in ANTLR) is available for ABS.  You will choose the technologies and toolkits you want to use to implement an LSP server and/or tree-sitter grammar, and demonstrate your implementation across at least two editors (e.g., NeoVim, Emacs, IntelliJ IDEA, Visual Studio Code).  Ideally, you would implement a way to create an LSP server directly from an ANTLR grammar (not mandatory).

For this thesis, a course in compiler construction and/or interest and experience in parsing and programming language semantics is highly recommended.

Emneord: Programming, LSP, IDE, Editor, emacs
Publisert 9. aug. 2024 10:08 - Sist endret 12. aug. 2024 10:20

Veileder(e)

Omfang (studiepoeng)

60