Re: Lilypond Treesitter mode for Emacs

Saul Tobin <[email protected]>
Newsgroups gmane.comp.gnu.lilypond.devel
Message-ID <CAPF+3FFrq72TsY_613T3avqZdmH1DtpgWrCCkYeiHrxDu28u+g@mail.gmail.com>
Hi Immanuel,

Thanks for your interest! Contributions are certainly welcome. One of the
most valuable things (which I probably won't have time to tackle myself)
would be to refactor lilypond-mode to derive from a base mode that includes
only the things that don't have to do with parsing (menu setup, compilation
handling, customization options). That would make it possible to either
merge lilypond-ts-mode with that base mode or derive from it, to bring in
the features of lilypond-mode that don't conflict with Treesitter stuff.

I also have pdf-tools working with point-and-click, and a kind of hacky
implementation of 2-page view. I didn't merge that stuff into
lilypond-ts-mode because most of my code is workarounds for shortcomings of
pdf-tools that will hopefully be remedied properly by future pdf-tools
releases. For now, I think it's better to keep lilypond-ts-mode agnostic to
the user's choice of PDF viewer. I'm not opposed to merging in code to set
up point-and-click for users who choose to configure PDF preview within
Emacs using pdf-tools, but integrating features from lilypond-mode should
probably come first, since lilypond-mode includes a mechanism for choosing
a PDF viewer.

Saul

On Wed, Jan 29, 2025 at 2:24 AM Immanuel Litzroth <
[email protected]> wrote:

> If you need help with the lilypond elisp code I would be interested.
> I'm using emacs also to do lilypond editing and have preview & clicking
> working using pdf-tools.
> Greetz,
> Immanuel
>
>
> On Wed, Jan 29, 2025 at 2:59 AM Saul Tobin <[email protected]>
> wrote:
>
>> 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
>>
>
>
> --
> -- A man must either resolve to point out nothing new or to become a slave
> to defend it. -- Sir Isaac Newton
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.