Issue 1375: Scheme engravers support in engraver-init.ly and documentation

This is sort of basic.  For one thing, registered engravers will bleed
into the following sessions for now.  For another,
ly:register-translator is very rigid about the format of the
translator description.  Then there still is only support for Scheme
engravers (rather than other translators).

Documentation for the feature itself is basically non-existent, so are
regtests.  As long as the feature is in a state where more than
internal use is not advisable, that's tolerable.


Consists of commits:

Register scheme engravers

This registers Measure_counter_engraver and Span_stem_engraver
to make them documented and callable like C++ engravers.


Create Translator_creator class

Previously, translators were created by copying from a context-less
instantiation of the translator containing its documentation.  This had
several unpleasant consequences, the most problematic likely being the
inability to register Scheme engravers because their documentation would
be identical to all other Scheme engravers.

A new Translator_creator class takes over the task of creating
Translator instances when called with a context argument.

As a result of joining the mechanisms for Scheme engravers and C++
engravers, ly:translator-name and ly:translator-description are
reimplemented in a manner resembling object properties.


Let Translator constructor take a Context argument

This is the first step towards constructing rather than cloning translators
when creating contexts.  On its own, it does not make sense, but the change
is large and mostly mechanical, so keeping it separate from the actually
difficult parts makes sense.

http://codereview.appspot.com/316190043


---

** [issues:#1375] Enhancement: Scheme engravers support in engraver-init.ly and 
documentation**

**Status:** Started
**Created:** Sun Oct 31, 2010 03:34 AM UTC by Anonymous
**Last Updated:** Sat Jan 28, 2017 12:33 AM UTC
**Owner:** David Kastrup


*Originally created by:* *anonymous

*Originally created by:* [v.villenave](http://code.google.com/u/v.villenave/)
*Originally owned by:* [[email protected]](http://code.google.com/u/[email protected]/)

Since the 2.13.11, we've had the ability of implementing engravers using Scheme 
only.  However, this currently has two limitations: such engravers may not be 
directly \consisted in engraver-init.ly, and no proper documentation support 
has been implemented.

Read for example the following discussion, where an engraver had to be 
rewritten in C++ just because of these limitations:
[http://lists.gnu.org/archive/html/lilypond-devel/2010-10/msg00541.html](http://lists.gnu.org/archive/html/lilypond-devel/2010-10/msg00541.html)


---

Sent from sourceforge.net because [email protected] is 
subscribed to https://sourceforge.net/p/testlilyissues/issues/

To unsubscribe from further messages, a project admin can change settings at 
https://sourceforge.net/p/testlilyissues/admin/issues/options.  Or, if this is 
a mailing list, you can unsubscribe from the mailing list.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Testlilyissues-auto mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/testlilyissues-auto

Reply via email to