Subject: Bug de Frescobaldi ?

From: Vincent Gay <[email-masked]>
Date: Mon, 18 Oct 2021 10:53:54 +0200

Bonjour,

sur cette page consacrée à la fonction double-mark 
<https://lsr.di.unimi.it/LSR/Snippet?id=977> on trouve vers la fin une 
section appelée

% Some more functions for tweaking a broken RehearsakMark

la fonction set-mark-y-dir permet de définir la direction des markups ce 
qui m'est particulièrement utile. Selon l'exemple donné elle s'utilise 
ainsi :

\set-mark-y-dir #`( (,left . ,DOWN) (,center . ,DOWN) (,right . ,UP) )

Cela fonctionne parfaitement (lilypond 2.22.1) si ce n'est que 
Frescobaldi lisant quelque-chose commençant par \set  s'attend à un 
signe égal avant l'argument et perd tous ses moyens tant en matière 
d’indentation que d’autocomplétion. Une manière simple de contourner le 
problème est de rebaptiser la fonction en supprimant le set en question, 
par exemple mark-y-dir.

J'utilise Frescobaldi 3.1.3 sous Archlinux.
Cela vaut-il la peine de faire un rapport de bug ?

Bonne journée à toutes et à tous.

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/  -http://photos.vintherine.org/

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 18 Oct 2021 14:26:02 +0200

Le 18/10/2021 à 10:53, Vincent Gay a écrit :
> la fonction set-mark-y-dir permet de définir la direction des markups 
> ce qui m'est particulièrement utile. Selon l'exemple donné elle 
> s'utilise ainsi :
> d’indentation que d’autocomplétion. Une manière simple de contourner 
> le problème est de rebaptiser la fonction en supprimant le set en 
> question, par exemple mark-y-dir.
>

C'est une bonne idée. Le suivi des bogues de l'outil
interne qui se charge de l'analyse syntaxique se fait
ici :

https://github.com/frescobaldi/python-ly/issues

Si vous êtes suffisamment à l'aise en anglais, je
vous invite à y ouvrir une page (je peux aussi le
faire si vous préférez).

Cordialement,
Jean

---

From: Vincent Gay <[email-masked]>
Date: Mon, 18 Oct 2021 17:42:07 +0200

> vous invite à y ouvrir une page (je peux aussi le
Je qualifierai mon niveau d'anglais d'assez moyen. Voici ce que je 
propose (pour correction) :

-----------------------

If Frescobaldi encounters a function whose name starts with 
\set-[anything-you-want] it expects an equal sign before an argument. If 
it doesn't find it, it loses all its indentation, autocompletion and 
syntax coloring capabilities. Here is a minimal compilable example:

\version "2.22.1"

rs = {
   \once \override Rest.stencil = 
#ly:percent-repeat-item-interface::beat-slash
   \once \override Rest.thickness = #0.48
    r4
}
set-comp = #(define-music-function (count) (integer?)
               #{
                 \override Rest.stencil = 
#ly:percent-repeat-item-interface::beat-slash
                 \override Rest.thickness = #0.48
                 \repeat unfold $count { r4 }
                 \revert Rest.stencil
               #}
               )

\set-comp #24
\repeat volta 2
{
c'4 4 4 4
}

The problem appears after the line \set-comp #24, the Frescobaldi editor 
doesn't offer any help to the code input anymore.

If you change the name of the function (e.g. setcomp without hyphen) 
everything becomes normal again.

-- 
Vincent Gay
Envoyé depuis mon saxo-phone :)
https://myrealbook.vintherine.org/ - http://photos.vintherine.org/

---

From: Jean Abou Samra <[email-masked]>
Date: Mon, 18 Oct 2021 19:49:58 +0200

Le 18/10/2021 à 17:42, Vincent Gay a écrit :
> \set-[anything-you-want] it expects an equal sign before an argument. 
> If it doesn't find it, it loses all its indentation, autocompletion 
> and syntax coloring capabilities. Here is a minimal compilable example:
>
>
> \version "2.22.1"
>
> rs = {
> The problem appears after the line \set-comp #24, the Frescobaldi 
> editor doesn't offer any help to the code input anymore.
>

Cela me semble très bien. Vous savez, la communauté LilyPond
(comme celle de presque tout logiciel libre) est fortement
internationale et rassemble de nombreuses personnes qui ont
appris l'anglais comme vous et moi. Bien qu'il soit
naturellement pratique de savoir s'exprimer avec finesse,
personne ne vous demandera de parler l'anglais de
Shakespeare. (Du reste, l'aisance modérée que je possède
aujourd'hui moi-même a été très largement acquise
à travers LilyPond et autres logiciels).

À la rigueur, comme il s'agit uniquement d'un problème
de Frescobaldi, on pourrait raccourcir le code d'une
manière ou d'une autre, par exemple

\version "2.22.1"

set-bn = \set Score.currentBarNumber = \etc

{
   c'1 \break
   \set-bn 5
   \repeat unfold 4 { c'1 }
}

Merci !
Jean

---

From: Vincent Gay <[email-masked]>
Date: Mon, 18 Oct 2021 21:57:27 +0000 (UTC)

Ah ça c'est un code minimal. Extra, je poste demain. Merci Jean

18 oct. 2021 19:50:02 Jean Abou Samra <[email-masked]>:

>>> faire si vous préférez). Je qualifierai mon niveau d'anglais d'assez moyen. Voici ce que je propose (pour correction) :
>> 
>> -----------------------
>> 
>> If Frescobaldi encounters a function whose name starts with \set-[anything-you-want] it expects an equal sign before an argument. If it doesn't find it, it loses all its indentation, autocompletion and syntax coloring capabilities. Here is a minimal compilable example:
>> 
>> 
>> \version "2.22.1"
>> 
>> rs = {
>>   \once \override Rest.stencil = #ly:percent-repeat-item-interface::beat-slash
>>                 \override Rest.stencil = #ly:percent-repeat-item-interface::beat-slash
>> The problem appears after the line \set-comp #24, the Frescobaldi editor doesn't offer any help to the code input anymore.
>> 
>> If you change the name of the function (e.g. setcomp without hyphen) everything becomes normal again.
> 
>

---

From: Vincent Gay <[email-masked]>
Date: Tue, 19 Oct 2021 10:00:00 +0200

Rapport de bug : https://github.com/frescobaldi/frescobaldi/issues/1400
<https://github.com/frescobaldi/frescobaldi/issues/1400>