Rendu des blocs de code

Bonjour à tous, bonjour ,

Voici quelques points qui semblent être améliorables :

  • Rendu d'un bloc de code une fois le message soumis :
    • Le placement des numéros de lignes, qui n'est pas aligné avec la ligne correspondante
    • Les retours à la ligne ne sont pas toujours supportés (exemple : pas de langage)
    • La coloration syntaxique
    • La couleur de fond
    • Les barres de défilement quand le texte est large et/ou haut
      • Idéalement la barre horizontale ne devrait pas apparaître si le texte fait moins de 80 caractères de large
    • Le rendu n'est pas le même pendant la rédaction et à l'affichage une fois le message posté.
  • Rendu pendant l'édition du message
    • Le rendu n'est pas le même dans le preview (tant que le message n'est pas soumis) et une fois le message soumis.
    • Ce serait super si on avait la coloration syntaxique également pendant qu'on rédige le code (mais là j'en demande peut être beaucoup).
  • Langages supportés par l'éditeur :
    • Voir si le langage est parmi ceux qui ont une catégorie sur le forum et sans doute supprimer ceux qui sont vraiment exotiques.
    • Inversement, que chaque langage ayant un forum dédié soit supporté par l'éditeur.

Snippets :

Aucun langage : le retour à la ligne n'est pas fait. À cause de ce bug, j'ai tendance à mettre les blocs de texte (genre réponse de terminal) en XML pour avoir des retours à la ligne qui marchent

ligne1 mot1 mot2 mot3
ligne2 mot4 mot5 mot6
ligne3 mot7 mot8 mot9
ligne longue longue longue longue longue longue longue longue longue longue longue longue longue longue longue longue longue longue

Apache : à la rédaction On et off sont colorés dans le "preview" lorsqu'on rédige le message, mais pas une fois le message soumis. Ce bug s'applique plus généralement à tout mot clé coloré mais pas en gras, quelque soit le langage.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ASM : Il n'y a pas de forum assembleur (et je pense que plus grand monde), donc ça me paraît exotique

section .text
    global _start

_start:
    mov rax, 60       ; Numéro du syscall sys_exit (60)
    xor rdi, rdi      ; Code de retour 0 (succès)
    syscall           ; Appel au noyau Linux

Bash : même remarque que pour apache

#!/bin/bash

# Vérifie si une URL est en HTTP et affiche la version HTTPS correspondante
url="${1:-http://example.com}"

if [[ "$url" =~ ^http:// ]]; then
    url="${url/http:\/\//https:\/\/}"
    echo "Redirection vers : $url"
else
    echo "Déjà en HTTPS ou URL invalide : $url"
fi

Basic : la coloration discutable dans le preview (à comparer avec une réponse gemini "génère un snippet en basic). 

10 REM Redirige une URL HTTP vers HTTPS
20 URL$ = "http://exemple.com"
30 IF LEFT$(URL$, 7) = "http://" THEN
40     URL$ = "https://" + MID$(URL$, 8)
50     PRINT "Redirection vers : "; URL$
60 END IF

Paradoxalement, le langage Visual Basic qui a son forum n'est pas dans la liste. Alors est-ce que les gens doivent utiliser VBScript ou Basic). Ici, un bloc Visual basic rendu avec Basic. Peut-être faudrait il simplement renommer dans l'éditeur "VBScript" en "VBScript / VB".

Dim url As String = "http://exemple.com"
If url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) Then
    url = "https://" & url.Substring(7)
End If

CoffeeScript : Ici encore un langage pas listé dans le forum (et à mon avis assez exotique !)

url = "http://exemple.com"
if url.startsWith "http://"
  url = "https://" + url.slice 7

C : Même problème que pour Visual Basic : l'éditeur support C++ et C#, mais pas C alors qu'il a un forum dédié. Peut-être faudrait-il simplement renommer dans l'éditeur "C++" en "C / C++".

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(){
    char url[256] = "http://exemple.com";
    if (strncmp(url, "http://", 7) == 0) {
        char new_url[256];
        snprintf(new_url, sizeof(new_url), "https://%s", url + 7);
        strcpy(url, new_url);
    }
    return 0;
}

C++

#include <string>

int main(){
    std::string url = "http://exemple.com";
    if (url.starts_with("http://")) {
        url.replace(0, 7, "https://");
    }
    return 0;
}

J'arrête les exemples ici, car c'est un peu fastidieux, mais dans l'absolu, il faudrait faire le même exercice pour chaque langage restant.

Merci par avance, et comme d'habitude, tous mes encouragements aux développeu.{r,se}.s !

1 réponse

  1. Modérateur

    Bonsoir,

    Il y a quelques semaines j'ai pensé que l'on avait perdu cette balise code. Elle est revenue, pas meilleures qu'avant.

    D'abord cet intitulé Langue à la place de Langage depuis des années.

    Pas fichu d'aligner N° et ligne.

    On a vraiment besoin d'un type indéfini opérationnel, avec une police fixe, qui conserve tous les blancs successifs et les sauts de ligne.

    Et cette litanie de langages sans grand intérêt. Il n'y a même pas le Cobol ;-)


    0