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 <
immanuel.litzr...@gmail.com> 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 <saul.james.to...@gmail.com>
> 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
>

Reply via email to