Batch Forum Index
RegisterSearchFAQMemberlistUsergroupsLog in
Reply to topic Page 1 of 1
Coloration Syntaxique
Author Message
Reply with quote
Post Coloration Syntaxique 
Salut à tous Mr. Green


I) INTRODUCTION

    La Coloration Syntaxique ne fonctionne plus depuis déjà un bon bout de temps.
    En particulier, il y a un problème avec le site http://dos9.org/ qui héberge GeShi.

    Afin de ne plus avoir de problèmes, la Coloration Syntaxique a été directement intégrée dans le forum avec highlightjs.
    Pour ne pas perturber l'affichage du forum, cette nouvelle coloration a été calquée sur l'ancienne avec plus ou moins la même coloration et comprend les mêmes fonctionnalités (dont on en reparlera un peu plus bas)

    Par conséquent, voici le "thème" utilisé pour la coloration syntaxique du Batch :
    Code:
    [lang=css][scroll].hljsbatch .hljs{display:block;overflow-x:auto;padding:.5em;color:#ddd !important;background:#282c34}.hljsbatch .hljs-operator{color:#F92672}.hljsbatch .hljs-pattern-match{color:#F92672}.hljsbatch .hljs-pattern-match .hljsbatch .hljs-constructor{color:#61aeee}.hljsbatch .hljs-function{color:#61aeee}.hljsbatch .hljs-function .hljsbatch .hljs-params{color:#A6E22E}.hljsbatch .hljs-function .hljsbatch .hljs-params .hljsbatch .hljs-typing{color:#FD971F}.hljsbatch .hljs-module-access .hljsbatch .hljs-module{color:#7e57c2}.hljsbatch .hljs-constructor{color:#e2b93d}.hljsbatch .hljs-constructor .hljsbatch .hljs-string{color:#9CCC65}.hljsbatch .hljs-comment,.hljsbatch .hljs-quote{color:#23AB00 !important;font-style:italic}.hljsbatch .hljs-doctag,.hljsbatch .hljs-formula{color:#c678dd}.hljsbatch .hljs-section,.hljsbatch .hljs-name,.hljsbatch .hljs-selector-tag,.hljsbatch .hljs-deletion{color:#e06c75}.hljsbatch .hljs-meta{color:#FF1300 !important;} .hljsbatch .hljs-subst{color:#FFEB00 !important;}.hljsbatch .hljs-literal{color:#56b6c2}.hljsbatch .hljs-string,.hljsbatch .hljs-regexp,.hljsbatch .hljs-addition,.hljsbatch .hljs-attribute,.hljsbatch .hljs-meta-string{color:#98c379}.hljsbatch .hljs-built_in, .hljsbatch .hljs-keyword,.hljsbatch .hljs-class .hljsbatch .hljs-title{color:#0086FF !important;}.hljsbatch .hljs-attr,.hljsbatch .hljs-variable,.hljsbatch .hljs-template-variable,.hljsbatch .hljs-type,.hljsbatch .hljs-selector-class,.hljsbatch .hljs-selector-attr,.hljsbatch .hljs-selector-pseudo{color:#FF7F00 !important;}.hljs-number{color:#CE00FF !important;}.hljsbatch .hljs-symbol,.hljsbatch .hljs-bullet,.hljsbatch .hljs-link,.hljsbatch .hljs-selector-id,.hljsbatch .hljs-title{color:#61aeee}.hljsbatch .hljs-emphasis{font-style:italic}.hljsbatch .hljs-strong{font-weight:bold}.hljsbatch .hljs-link{text-decoration:underline}


    Le thème "atom-one-dark-reasonable" est appliqué pour les autres langages.


II) UTILISATION

  • 1. Langage :


      Comme déjà dis plus haut, cette nouvelle Coloration Syntaxique reprend les fonctionnalités de la Coloration Syntaxique installer par DarkBatcher ( https://batch.xoo.it/t5095-Coloration-syntaxique.htm )
      Pour utiliser la colorisation du JavaScript (par exemple), juste après la balise
      , il faut mettre [lang=javascript]
      Et de manière générale, [lang=votre language]

      Langage par défaut : batch

      Liste des langages : apache, autoit, bash, batch, coffeescript, cpp, cs, css, diff, go, http, ini, java, javascript, json, kotlin, less, lua, makefile, xml, markdown, nginx, objectivec, perl, php, plaintext, powershell, properties, python, ruby, rust, scss, shell, sql, swift, typescript, vbscript, yaml



  • 2. Scroll :

      Si vous souhaitez activer le scroll, juste après [lang=votre language] (si vous l'avez mis), il faut mettre : [scroll]

      Le Scroll est désactivé par défaut




  • 3. Téléchargement :

      Pour faciliter encore plus la navigation et l'utilisation du forum. Il est possible d'ajouter un bouton download qui télécharge le script sous le nom du fichier indiqué.
      Il faut rajouter après [scroll] (si vous l'avez mis sinon après [lang=votre language] (si vous l'avez mis)) ceci : [download=votre_fichier.bat]



  • 4. Ordre :

      Comme vous l'aurez remarqué, il y a un ordre bien précis :
      • [lang=votre language] : 1er position
      • [scroll] : 2ème position
      • [download=votre_fichier.bat] : 3ème position

      Exemple valide :
      Quote:
      1. [lang=votre language][scroll][download=votre_fichier.bat]
      2. [scroll][download=votre_fichier.bat]
      3. [download=votre_fichier.bat]
      4. [lang=votre language][download=votre_fichier.bat]
      5. [scroll]
      6. [lang=votre language]


      Petite précision: Pour que cela marche, il faut mettre aucun caractère pas même un saut de ligne entre la balise
      et les "paramètres", c'est-à-dire que ceci ne fonctionnera pas :
      Code:
      [code]
      [scroll]/* votre code */[/code]


  • 4. Codepen et GitHub :


      Vous pouvez aussi rajouter des iframes Codepen et GitHub Mr. Green
      Par contre, vous ne pouvez mettre qu'une seule iframe par balise code
      Voici comment procéder :
      Quote:
      [https://codepen.io/yuanchuan/full/YzXrjZE]

      Quote:
      [https://github.com/Flammrock/flammrock.github.io/blob/master/engine3D.html]

      De manière général :
      Quote:
      [http://domain.tld/path]


      Attention : cela ne fonctionnera uniquement avec les domaines Codepen et GitHub



  • 4. Exemples :

      Voici quelques exemples (ne pas copier, pour éviter des bugs d'affichage, j'utilise des caractères légèrement différents) :
      Code:
      [lang=plaintext]// Exemple 1 (JavaScript, Avec Scroll)
      [code][lang=javascript][scroll]var ma_variable = "salut";[/code]

      // Exemple 2 (le language batch sera utilisé par défaut, Avec Scroll)
      [code][scroll]/* votre code */[/code]

      // Exemple 3 (le language batch sera utilisé par défaut, Sans Scroll)
      [code]@echo off

      echo;salut

      exit[/code]

      rem une iframe codepen :
      [code][https://codepen.io/yuanchuan/full/YzXrjZE][/code]

      rem affichage d'un script hébergé sur GitHub :
      [code][https://github.com/Flammrock/flammrock.github.io/blob/master/engine3D.html][/code]




III) EXEMPLE
    Voici un exemple pour que vous voyez un peu ce que ça peut donner :
    Code:
    [scroll][download=multithread_example.bat]@echo off
    setlocal enabledelayedexpansion
     
    rem on initialise le multi-threading
    set Thread.Current=%~1
    if not "%~1"=="" goto %1
    set Thread=call :Thread
    set ThreadCaller="%~f0"
     
    rem on ajoute un thread (mais on l'exécute pas)
    %Thread%.New mon_premier_Thread
    %Thread%.New mon_deuxieme_Thread
     
    rem on exécute tout les threads
    %Thread%.StartAll
     
     
    pause>nul&exit
    :mon_premier_Thread
     
    rem Initialisation du thread, cette partie est exécutée une seule fois au lancement du thread
    rem on peut donc initialiser nos variables ici
    set n=0
     
    rem Cette partie tournera en boucle, on est pas obligé de la mettre,
    rem cela dépend de ce que vous voulez faire ;)
    for /l %%i in () do (
     
      rem Votre CODE ICI
     
     
      rem exemple de code, ici on affiche les nombres paires
      set /a n+=2
      echo;!n! > CON
     
    )
     
     
     
    pause>nul&exit
    :mon_deuxieme_Thread
     
    rem Initialisation du thread, cette partie est exécutée une seule fois au lancement du thread
    rem on peut donc initialiser nos variables ici
    set n=1
     
    rem Cette partie tournera en boucle, on est pas obligé de la mettre,
    rem cela dépend de ce que vous voulez faire ;)
    for /l %%i in () do (
     
      rem Votre CODE ICI
     
     
      rem exemple de code, ici on affiche les nombres impaires
      set /a n+=2
      echo;!n! > CON
     
    )
     
     
    pause>nul&exit
    :Thread.New
      set ThreadStack=!ThreadStack! "%~1"
    Exit /b
    :Thread.SendMessage
      pushd %temp%
      set Thread.m=
      for /f "tokens=1,* delims= " %%i in ('echo;%*') do set Thread.m=%%j
      (
        echo;!Thread.m!
      )> "thread.%~1.temp"
      popd
    Exit /b
    :Thread.N
    for /l %%i in () do rem
    Exit /b
    :Thread.getMessage
      pushd %temp%
      set %~2=
      if exist "thread.%~1.temp" (
        set /p %~2= < thread.%~1.temp
       del /q thread.%~1.temp >nul 2>&1
      )
      popd
    Exit /b
    :Thread.UI
      %* > CON
    Exit /b
    :Thread.StartAll
      set ThreadExec=
      set ThreadNb=0
      for %%i in (!ThreadStack!) do (
        set "ThreadExec=!ThreadExec! __AND__ !ThreadCaller! %%~i"
       set /a ThreadNb+=1
      )
      if "!ThreadNb!"=="1" set ThreadExec=!ThreadExec! __AND__ !ThreadCaller! Thread.N
      set ThreadExec=!ThreadExec:~9!
      set ThreadExec=!ThreadExec:__AND__=^|!
      %ThreadExec%
    Exit /b

    Source: https://batch.xoo.it/t6175-Multi-Thread-pure-batch.htm





Si vous remarquez des bugs d'affichage, ou tout autres problèmes concernant la Coloration Syntaxique : merci de m'en faire part Okay
Si vous avez des suggestions, des idées d'améliorations merci de les partager ici Mr. Green




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visit poster’s website
Post Publicité 
PublicitéSupprimer les publicités ?


Display posts from previous:
Reply to topic Page 1 of 1
  



Index | Getting a forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch