Treppimine03. Mar '14

Sissejuhatus

Treppimine (indentation) tähendab üldjuhul programmeerimiskeele juhtimisstruktuuride nihutamist paremale teatud sammu võrra.

C

Võtame näiteks C-s kirjutatud funktsiooni abs, süntaktiliselt on korrektne see ühele reale kirjutada:

int abs(x) { if (x < 0) { return -x; } else { return x; } };

Isegi kogenud programmeerijal on seda valus lugeda kuna pole täpselt aru saada missugune koodijupp käima läheb kui if lause tõeseks osutub ja missugune siis kui see on väär.

Java

Java samamoodi ei nõua treppimist, samas soovituslikud Java koodimistavad näevad ette et trepitakse nelja tühiku kaupa:

int abs(x) {
    if (x < 0) {
        return -x;
    } else {
        return x;
    }
}

Python

Python on üks vähestest programmeerimiskeeltest mille süntaks tugineb treppimisele. Sulge pole vaja, selle asemel kasutatkse koolonit tähistamaks uue bloki algust ning selle sisu peab olema trepitud sissepoole. Sissepoole trepitud koodi lõpp tähistab ka bloki lõppu:

def abs(x):
    if x < 0:
        return -x
    else:
        return x

Tänapäeval on soovitatud kasutada nelja tühikut koodi treppimiseks, nii nagu Java keeleski.

Treppimine tekstiredaktorites

Paljudes tekstiredaktorites saab ↹ ehk Tab ehk tabulaatori nuppu kasutada koodi sisse treppimiseks, see tähendab paremale nihutamiseks. Enamikes on ka seadistatud Shift-Tab mis trepib koodi väljapoole ehk nihutab vasakule. Paljudes saab hiire või Shift-← ↑→↓ nuppude abil valida mitu rida ning neid samaagselt Tab või Shift-Tab abil sisse-välja treppida.

Mõned tekstiredaktorid trepivad tabulaatori sümboli kaupa, see tähdendab et nelja tühiku (' ') asemel on üks tabulaatori sümbol ('\t') mis lihtsalt võtab nelja sümboli jagu ruumi.

lauri@localhost ~ $ echo -en "\t1. tab\n" > spaghetti
lauri@localhost ~ $ echo -en "    2. spaces\n" >> spaghetti

Tabulaatori laius ei ole defineeritud, käsureal on tabulaatori laiuseks tavaliselt 8 sümbolit (tab width 8):

lauri@localhost ~ $ cat spaghetti
        1. tab
    2. spaces

Käsurea tööriistaga expand saab tabulaatorid asendada tühikutega:

lauri@localhost ~ $ expand -t 4 < spaghetti
    1. tab
    2. spaces
Java coding conventions C indentation best practices Python