def tweak_string(self, directed=True, grob=False) -> str: r""" Gets LilyPond grob override \tweak string. .. container:: example >>> override = abjad.LilyPondGrobOverride( ... grob_name='Glissando', ... property_path='style', ... value=abjad.SchemeSymbol('zigzag'), ... ) >>> override.tweak_string() "- \\tweak style #'zigzag" .. container:: example >>> override = abjad.LilyPondGrobOverride( ... grob_name='RehearsalMark', ... property_path='color', ... value='red', ... ) >>> override.tweak_string(directed=False) '\\tweak color #red' .. container:: example LilyPond literals are allowed: >>> override = abjad.LilyPondGrobOverride( ... grob_name='TextSpann', ... property_path=('bound-details', 'left-broken', 'text'), ... value=abjad.LilyPondLiteral(r'\markup \upright pont.'), ... ) >>> override.tweak_string(directed=False) '\\tweak bound-details.left-broken.text \\markup \\upright pont.' """ from abjad.indicators.LilyPondLiteral import LilyPondLiteral if directed: result = [r"- \tweak"] else: result = [r"\tweak"] if grob: property_path = (self.grob_name,) + self.property_path else: property_path = self.property_path string = ".".join(property_path) result.append(string) if isinstance(self.value, LilyPondLiteral): assert isinstance(self.value.argument, str) string = self.value.argument else: string = Scheme.format_embedded_scheme_value(self.value) result.append(string) return " ".join(result)
def override_format_pieces(self) -> typing.Tuple[str, ...]: r""" Gets LilyPond grob override \override format pieces. .. container:: example >>> override = abjad.LilyPondGrobOverride( ... lilypond_type='Staff', ... grob_name='TextSpanner', ... once=True, ... property_path=( ... 'bound-details', ... 'left', ... 'text', ... ), ... value=abjad.Markup(r'\bold { over pressure }'), ... ) >>> for line in override.override_format_pieces: ... line ... '\\once \\override Staff.TextSpanner.bound-details.left.text = \\markup {' ' \\bold' ' {' ' over' ' pressure' ' }' ' }' """ result = [] if self.once: result.append(r'\once') result.append(r'\override') result.append(self._override_property_path_string()) result.append('=') string = Scheme.format_embedded_scheme_value(self.value) value_pieces = string.split('\n') result.append(value_pieces[0]) result[:] = [' '.join(result)] result.extend(value_pieces[1:]) return tuple(result)
def format_pieces(self) -> typing.Tuple[str, ...]: r""" Gets LilyPond context setting ``\set`` or ``\unset`` format pieces. """ result = [] if not self.is_unset: result.append(r"\set") else: result.append(r"\unset") if self.lilypond_type is not None: string = f"{self.lilypond_type}.{self.context_property}" result.append(string) else: result.append(self.context_property) result.append("=") string = Scheme.format_embedded_scheme_value(self.value) value_pieces = string.split("\n") result.append(value_pieces[0]) result[:] = [" ".join(result)] result.extend(value_pieces[1:]) return tuple(result)
def format_pieces(self) -> typing.Tuple[str, ...]: r""" Gets LilyPond context setting ``\set`` or ``\unset`` format pieces. """ result = [] if not self.is_unset: result.append(r"\set") else: result.append(r"\unset") if self.lilypond_type is not None: string = f"{self.lilypond_type}.{self.context_property}" result.append(string) else: result.append(self.context_property) result.append("=") string = Scheme.format_embedded_scheme_value(self.value) value_pieces = string.split("\n") result.append(value_pieces[0]) result[:] = [" ".join(result)] result.extend(value_pieces[1:]) return tuple(result)