Lilypond Treesitter mode for Emacs
Saul Tobin <[email protected]>
| Newsgroups | gmane.comp.gnu.lilypond.devel |
|---|---|
| Message-ID | <CAPF+3FFKW9yn5qDh=UnO4MfO2DPti8UPbkkUiMh9dO3AW_0kfQ@mail.gmail.com> |
Hi all, I've been working for a few months on a Lilypond major mode for Emacs using Treesitter: https://github.com/shevvek/lilypond-ts-mode. I had mentioned this in issue 6743 earlier, but it's now far enough along that it feels worth sharing on the list. Currently, lilypond-ts-mode supports: * Reasonably complete parser-based highlighting for Lilypond code, with Scheme mode highlighting for embedded Scheme. Most word lists are populated at runtime. * Indentation support for arbitrarily nested Scheme and Lilypond code blocks. * Geiser implementation with Lilypond as the Guile backend, allowing full access to the Lilypond runtime Scheme API from Emacs. * Autodoc support for music functions, markup functions, and Lilypond exported primitives, usable in both Scheme and Lilypond code. * Autocompletion support for \-escaped words, and type-aware autocompletion within Lilypond property expressions. In the near future I plan to add interactive Lilypond code evaluation and structured navigation support. So far, it lacks all the UX niceties of lilypond-mode, like menus, compilation commands, customization group options, etc. Hopefully some folks find this interesting/useful! Feedback is welcome. Saul