Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>Dsc scripting helperNew to Visual Studio Code? Get it now.
Dsc scripting helper

Dsc scripting helper

Gide (Gestion Intégré de Documents Electroniques)

|
2 installs
| (1) | Free
DSC language support for SCROLL survey scripting (syntax highlighting, validation, snippets)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DSC snippets pour VSCode

Simplifie le développement en DSC

Explication

Cette extension permet d'ajouter des raccourcis spécifique au language DSC. Elle permet aussi le formatage à la sauvegarde et la vérification des variables

Une fois l'extension installée, il suffit de taper n'importe quel snippet (précédé d'un // dans la catégorie Features) dans son dsc puis d'appuyer sur entrée. Le curseur se placera automatiquement à la place du $1. Pour passer au $2, $3... il suffit d'appuyer sur tab.
Les snippets ne sont pas sensibles à la casse.

Features

QUESTIONS

//TEXT
TEXT[256];
//OPENTEXT, OPENT
OPENTEXT[4096];

PARTIE QUESTIONS

//OTH
OTH : TEXT[128] REQUIRED : 'size=20',
//Autre
Autre, précisez@NS$:@NS$" + OTH : TEXT[128] REQUIRED : 'size=20',
//specify
Please, specify@NS$:@NS$" + OTH : TEXT[128] REQUIRED : 'size=20',
//bdcomscout, scoutbdcom
90 'ROM',
91 'tagglo not recorded'
//bdcomqst, qstbdcom
COM "Quel est le code postal de votre commune de résidence principale ?" : TEXT[5] REQUIRED : 'size=6, maxlength=5'

COMBIS "Sélectionnez votre commune de résidence :" : {
  99999 "Autre commune"
} REQUIRED : 'dropdown=yes'

tagglo "Taille d'agglomération" : {
  1 "Moins de 2 000 habitants",
  2 "2 000 à 20 000 habitants",
  3 "20 000 à 100 000 habitants",
  4 "Plus de 100 000 habitants",
  5 "Agglomération parisienne"
}

uda5 "Région UDA 5" : {
  1 "Région Parisienne",
  2 "Nord Ouest",
  3 "Nord Est",
  4 "Sud Ouest",
  5 "Sud Est",
  6 "ROM"
}

NEWPAGE

//NP
NEWPAGE();
$1;
ENDPAGE();
//NPA
NEWPAGE();
ASK($1);
ENDPAGE();
//NPAUTOGRID
NEWPAGE("pglayout=mode5");
ASK($1, "display=autogrid");
ENDPAGE();
//NPMESSAGE
NEWPAGE();
MESSAGE("$1");
ENDPAGE();
//NPNOTE
NEWPAGE('javascript=module_note.js,jscript=note(false)')
    BEGINCANVAS(c,'bclass=qbody qnote')
        ASK($1,'highlight=no,transpose=yes')
    ENDCANVAS(c)
        FOR i=0 TO 10 DO {
            SETBLOCK(c:0,i,0,i,'class=case-echelle case_'+i)
        }
    DISPLAYCANVAS(c)
ENDPAGE()
//NPNOTEI
NEWPAGE("javascript=module_note.js,jscript=slimgrid(768:99):note(true)")
    BEGINCANVAS(c,'bclass=qbody slimgrid qnote')
        ASK($1,'highlight=no')
    ENDCANVAS(c)
        SETBLOCK(c:0,0,0,11,'class=colheading qhidden')
        FOR i=0 TO 10 DO {
            SETBLOCK(c:1,i+1,COUNT(GETQARRAY($1,0)),i+1,'class=case-echelle case_'+i)
        }
    DISPLAYCANVAS(c)
ENDPAGE()

CANVAS

//BEGINCANVAS
BEGINCANVAS(c)
    $1
ENDCANVAS(c)
    SETBLOCK(c:$2)
DISPLAYCANVAS(c)
//SETBLOCK
SETBLOCK(c:$1,$2,$3,$4,'$5')

FOR

//FOR
FOR $1=$2 TO $3 DO {
    $4
}
//FOREACH
FOREACH $1 IN lst_$2 DO {
    $3
}

CHECK

//CHECK
CHECK: {
    IF $1 THEN WARNING($2,"$3")
}
//warning
WARNING($1, "$2");

IF/ELSE

//IF
IF $1 THEN {
    $2
}
//ELIF, ELSEIF, ELSE
ELSE IF $1 THEN $2
//AND
AND;
//IFt
IF test==1 THEN {
    NEWPAGE()
        MESSAGE('TEST ONLY','class=test')
        ASK($1,'disabled=yes')
    ENDPAGE()
}

FUNCTIONS

//GETCATTR
GETCATTR($1, $2, "$3", "");
//GETQATTR
GETQATTR($1, "$2");
//GETQLIST
GETQLIST($1);
//GETQARRAY
GETQARRAY($1, 0);
//STR_REPLACE
s = STR_REPLACE($1, $2, $3, $4);
//SETQATTR
SETQATTR($1, "$2", "$3");
//SETQLIST
SETQLIST($1, $2);
//RESETQLIST
RESETQLIST($1);
//SETQARRAY
SETQARRAY($1, $2, $3);
//RESETQARRAY
RESETQARRAY($1, $2);
//SETQMAXSEL
SETQMAXSEL($1, $2);
//RESETQMAXSEL
RESETQMAXSEL($1);

FUNCTIONS (to declare)

//function
FUNCTION $1 RETURNS ${2|INTEGER,STRING|}

où $1 peut être CHECKALLQUOTA, CHECKQUOTA, getbdcom, GETQUOTA, INCALLQUOTA, INCQUOTAFULL, QUOTAASSIGNVALUE, QUOTAASSIGNVALUEP, SETQTEXT, STR_TOLOWER, STR_TOUPPER, xGETANSWER, xGETLABEL, xSETQDICTLABEL, xSETDIMLABEL, xSETQTEXT, ou un autre nom de fonction

//CHECKALLQUOTA
IF CHECKALLQUOTA()==0 THEN { qstatus=4 ; k=INCQUOTAFULL() ; STOP(urlqf) }
//CHECKQUOTA
CHECKQUOTA("QT_$1");
//GETQUOTA
GETQUOTA("QT_$1");
//INCALLQUOTA
k = INCALLQUOTA();
//INCQUOTAFULL
IF CHECKALLQUOTA()==0 THEN { qstatus=4 ; k=INCQUOTAFULL() ; STOP(urlqf) }
//QUOTAASSIGNVALUE
k = QUOTAASSIGNVALUE("QT_$1", $2, $3, $4);
//QUOTAASSIGNVALUEP
k = QUOTAASSIGNVALUEP("QT_$1", $2);
//SETQTEXT
SETQTEXT($1, "$2");
//STR_TOLOWER
STR_TOLOWER($1);
//STR_TOUPPER
STR_TOUPPER($1);
//xSETQDICTLABEL
xSETQDICTLABEL("$1", $2, "$3");
//xSETDIMLABEL
xSETDIMLABEL("$1", $2, $3, "$4");

DIVERS

//pgl, mode5
"pglayout=mode5";
//qnotes
qnotes = "$1";
//anchor
anchor = "yes";
//xchoice
xchoice = "yes";
//shufflechoices
shufflechoices = yes;
//shuffleitems
shuffleitems = yes;
//slimgrid
display=slimgrid:classrows=true:active=$1
//img
@IMG:$1$

LISTS

//lst_note_0_10
lst_note_0_10 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
//lst_yesno
lst_yesno = { 1 "Yes", 2 "No" }
//lst_ouinon
lst_ouinon = { 1 "Oui", 2 "Non" }

PARTIE ROUTE

//ANSWER
ANSWER($1);
//bdcomrte, rtebdcom
IF CLEANMODE()==0 THEN {
  NEWPAGE("javascript=bdcom.js,jscript=bdcom('COM':'"+TOSTRING(COM)+"':'COMBIS':'"+TOSTRING(COMBIS)+"')")
    ASK(COM)
    ASK(COMBIS)
    CHECK: {
      IF((COM=~'^[0-9]{5}$') AND ANSWER(COMBIS)) THEN {
        IF(getbdcom(COM,COMBIS) <> 1) THEN WARNING(COM,"Le code postal saisi n'est pas valide.")
      }
    }
  ENDPAGE()

  IF test==1 THEN {
    NEWPAGE()
      MESSAGE('TEST ONLY','class=test')
      ASK(uda5,'disabled=yes')
      ASK(tagglo,'disabled=yes')
    ENDPAGE()
  }

  IF uda5 IN {6} THEN { scout=90$1 ; qstatus=3 ; STOP(urlso) } // uda5=ROM
  IF NOANSWER(uda5) OR NOANSWER(tagglo) THEN { scout=91$2 ; qstatus=3 ; STOP(urlso) } // uda5/tagglo not recoded

} ELSE {
  NEWPAGE()
    ASK(uda5)
  ENDPAGE()
}
//MESSAGE
MESSAGE("$1", "class=$2");
//SHUFFLE
SHUFFLE($1);
//SUBLIST
SUBLIST($1, $2, $3);

SIG

//SIG_DEFWEIGHT
@[SIG_defweight=$1]
//SIG_FIXED
@[SIG_fixed='$1']
//SIG_NOANSWER
@[SIG_noanswer='$1%']
//SIG_RANGES
@[SIG_ranges='[$1,$2]=$3']
//SIG_WEIGHT
@[SIG_weight=$1]
//SIG_XDOMAIN
@[SIG_xdomain='$1%']
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft