Having specified the header this section explains how the indentation scripting itself works. The basic skeleton of the body looks like this: triggerCharacters = "{}/:;"; function indent(line, indentWidth, ch) {/ / called for each newline (ch == '\ ') and all characters specified in / / the global variable triggerCharacters. When calling Tools Align / / the variable ch is empty, i. e. ch ==' '. / / / / see also: Scripting API return -2;} The function indent() has three parameters: line: the line that has to be indented indentWidth: the indentation width in amount of spaces ch: either a newline character (ch == '\'), the trigger character specified in triggerCharacters or empty if the user invoked the action Tools Align. The return value of the indent() function specifies how the line will be indented. If the return value is a simple integer number, it is interpreted as follows: return value -2: do nothing return value -1: keep indentation (searches for previous non-blank line) return value 0: numbers & gt; = 0 specify the indentation depth in spaces Alternatively, an array of two elements can be returned: return [indent, align]; In this case, the first element is the indentation depth like above with the same meaning of the special values. However, the second element is an absolute value representing a column for alignment. If this value is higher than the indent value, the difference represents a number of spaces to be added after the indentation of the first parameter. Otherwise, the second number is ignored. Using tabs and spaces for indentation is often referred to as mixed mode.
Efter att ha specificerat huvudet, förklarar det här avsnittet hur själva indenteringsskriptet fungerar. Det grundläggande skelettet för implementeringen ser ut så här: triggerCharacters = "{} /:;"; function indent( line, indentWidth, ch) {// anropas för varje nyrad (ch == '\') och alla tecken angivna i // den globala variabeln triggerCharacters. Vid anrop av Verktyg Justera // är variabeln ch tom, dvs. ch == ''. // // se också: Programmeringsgränssnittet för skripthantering return - 2;} Funktionen indent () har tre parametrar: line: raden som ska indenteras indentWidth: indenteringsbredden i antal mellanslag ch: antingen ett nyradstecken (ch == '\'), avtryckartecknet angivet i triggerCharacters eller tom om användaren utförde åtgärden Verktyg Justera. Returnvärdet från funktionen indent () anger hur raden kommer att indenteras. Om returvärdet är ett enkelt heltal, tolkas det på följande sätt: returvärde - 2: gör ingenting returvärde - 1: behåll indentering (söker efter föregående icke tomma rad) returvärde 0: tal & gt; = 0 anger indenteringsdjupet i mellanslag Som alternativ kan ett fält med två element returneras. return [indent, align]; I detta fall är det först elementet indenteringsdjupet ovan med samma betydelse för specialvärden. Det andra elementet är dock ett absolutvärde som representerar en kolumn för justering. Om värdet är större än indenteringsvärdet, representerar skillnaden ett antal mellanslag att lägga till efter indentering av den första parametern. Annars ignoreras det andra numret. Att använda tabulator och mellanslag för indentering kallas ofta blandat läge.