JeremieGimenez
Apparemment, dans ce moteur de forum, la librairie utilisée pour la coloration syntaxique se nomme "highlightjs" (voir : https://discuss.flarum.org/d/23229-highlightjs).
Sinon, selon mes tests, pour avoir une coloration syntaxique à-peu-près correcte pour les scripts FileMaker, on peut utiliser le langage PHP, balise BBCode : [ code=php ]
Attention toutefois, pour les commentaires sur plusieurs lignes, il faut remplacer le caractère "#" par les balises " / * " et " * / " (sans les espaces) en début et fin de commentaire respectivement.
De même, pour les versions française des codes (ou autres langues j'imagine), il faut prendre soin de supprimer toutes les apostrophes "'" dans les lignes de code (ça passe dans les commentaires).
Voici un exemple de script (texte récupéré via les plugin MBS, voir : https://www.monkeybreadsoftware.com/filemaker/).
Voir comment, par exemple, l'action de script "Actualiser l'objet" est modifiée en "Actualiser objet" pour éviter justement des erreurs dans la coloration syntaxique dues à la présence de l'apostrophe.
# Paramètre : fournir le nom de l'objet sur le modèle actif
/*
Liste (
"object_to_go_1|object_to_go_2" ; // goto object
"object_to_refresh_1|object_to_refresh_2" // refresh object
)
*/
Définir variable [ $params ; Valeur: Obtenir ( ParamètreScript ) ]
Définir variable [ $goto_list ; Valeur: Substituer ( SupprimerEspace ( ObtenirValeur ( $params ; 1 ) ) ; "|" ; "¶" ) ]
Définir variable [ $actu_list ; Valeur: Substituer ( SupprimerEspace ( ObtenirValeur ( $params ; 2 ) ) ; "|" ; "¶" ) ]
Définir variable [ $goto_nbr ; Valeur: DecompteValeurs ( $goto_list ) ]
Définir variable [ $actu_nbr ; Valeur: DecompteValeurs ( $actu_list ) ]
#
Définir variable [ $actu_nro ; Valeur: 0 ]
Boucle
Définir variable [ $actu_nro ; Valeur: $actu_nro + 1 ]
Fin de boucle si [ $actu_nro > $actu_nbr ]
Actualiser objet [ Nom objet : ObtenirValeur ( $actu_list ; $actu_nro ) ]
Fin de boucle
#
Définir variable [ $goto_nro ; Valeur: 0 ]
Boucle
Définir variable [ $goto_nro ; Valeur: $goto_nro + 1 ]
Fin de boucle si [ $goto_nro > $goto_nbr ]
Aller à objet [ Nom objet : ObtenirValeur ( $goto_list ; $goto_nro ) ]
Fin de boucle
#
Fin de script [ Résultat de texte: 1 ]
En revanche, pour les codes des fonctions et autres formules de calcul, on peut utiliser le JS (JavaScript) en plus du PHP (avec une coloration un peu différente pour chacun), balise BBCode : [ code=js ]
/*
Fonction qui retourne la date actuelle formatée : AAMMJJsSepHHMMSS (YYMMDDsSepHHMMSS)
*/
Definir (
[
_date = Obtenir ( DateActuelle )
;
_time = Obtenir ( HeureActuelle )
;
_annee = Fin ( "00" & Annee ( _date ) ; 2 )
;
_mois = Fin ( "00" & Mois ( _date ) ; 2 )
;
_jour = Fin ( "00" & Jour ( _date ) ; 2 )
;
_heure = Fin ( "00" & Heures ( _time ) ; 2 )
;
_mins = Fin ( "00" & Minutes ( _time ) ; 2 )
;
_secs = Fin ( "00" & Secondes ( _time ) ; 2 )
] ;
_annee & _mois & _jour & sSep & _heure & _mins & _secs
)
Ce n'est évidemment pas l'idéal, mais ça peut déjà aider à la lecture des codes FileMaker…
Enfin, on peut voir si on ne pourrait pas développer, avec l'aide de toute la communauté, les définitions des langages Fmp pour cette librairie (voir : https://highlightjs.readthedocs.io/en/latest/language-guide.html)
😉