denisb a écrit :
Le 25/03/10 10:31, Simon Camerlo a écrit :
Depuis quand ces espaces sont significatifs ??
depuis l'utilisation de cette fonctionnalité précise dans ce
*plugin* précis.
ici nous sommes dans une syntaxe particulière.
si, pour spip, un critère de boucle, c'est :
un champ sql - un opérateur - une valeur
(oui je sais, sauf certains critères particuliers :
par ..., inverse, et quelques autres clairement documentés)
le *plugin* bonux utilise une toute autre syntaxe pour les
critères de ses boucles à lui.
Oui, c'est pour ça que je poste ces remarques sur la zone, pas sur spip-dev.
Il est à mon avis important que les squelettes étendant les instructions du langage de squelette respectent la grammaire de base dudit langage, sinon on ne s'y retrouve plus.
J'ai d'autre-part suivi de nombreuses discussions qui parlaient d'intégrer la plupart des fonctionnalités de bonux dans le core pour al prochaine release, donc...
Et enfin, je milite pour la transformation de la boucle CONDITION et de la boucle POUR en <CONDITION{#TOTO |=={1}}> et <POUR{#GET{mon_tableau}}>, ça allègerait beaucoup la syntaxe <troll> et spip en a besoin </troll> 
<div class="#GET{toto} tutu">
Génère parfois une erreur "filtre tutu introuvable" alors même qu'il n'y
a pas le pipe d'introduction d'un filtre...
oui. c'est encore autre chose.
#GET{toto} 'mange' l'espace qui le suit (tout comme #ENV{toto})
si : #SET{toto, abc}
alors : #GET{toto} 123
produira : abc123
au lieu de : abc 123
*SAUF* si on écrit (comme on le devrait) : [(#GET{toto})] 123
voire : [(#GET{toto}) ]123
ou : [(#GET{toto}) 123]
(ces 2 dernières écritures *conditionnant* l'affichage de l'espace
ou de l'espace puis 123 à l'existence de toto)
Bien sûr, c'est le contournement que j'utilise pour éviter ça.
Cependant on est typiquement dans le cas d'un alourdissement inutile de la syntaxe qui nuit à la facilité de prise en main de spip (j'essaie autant que possible de promouvoir spip pour ses immenses qualités, mais la plupart des développeurs à qui j'essaie de le présenter font la grimace, poussent des cris, tombent dans les vapes voire se suicident quand je leur montre ça. J'exagère à peine 
Dans mon expérience personnelle (3 ans de spip sur des projets assez importants), le triple parenthésage est inutile dans 99% des cas où je suis obligé de l'utiliser dans le code de mes squelettes.
Un simple (au pire double) parenthésage suffirait dans la plupart des cas. Combien de vos expressions commencent par [(# et se terminent par })] ?
Une meilleure stratégie d'utilisation des séparateurs "naturels" que sont # et | me semble possible pour éviter d'infliger ça quand ce n'est pas absolument nécessaire.
M'enfin, c'est un vieux serpent de mer qui ressort au printemps, je renvoie les gens intéressés à une proposition de syntaxe alternative que j'avais faite sur la liste dev il y a un an...
A bientôt
Simon