Hyppää sisältöön

Koodinpätkä-liitännäinen

Kirjoita lyhyt etuliite, paina ++tab++, ja se laajenee kokonaiseksi rakenteeksi — for-silmukaksi, luokkarungoksi, Markdown-taulukoksi — ja kohdistin on valmiina ensimmäisessä täytettävässä kentässä. Tab/Shift+Tab kiertävät kenttiä, Esc lopettaa. Liitännäinen tarjoaa myös toiminnon Tiedosto ▸ Uusi mallipohjasta… kokonaisten tiedostojen luomiseen.

Koodinpätkän laajentaminen

  1. Kirjoita koodinpätkän etuliite (vaikkapa for C++-tiedostossa).
  2. Paina ++tab++. Etuliite korvataan koodinpätkän rungolla — yhtenä kumoamisaskeleena — ja ensimmäinen kenttä valitaan valmiina ylikirjoitettavaksi.
  3. Paina ++tab++ hypätäksesi seuraavaan kenttään, ++shift+tab++ palataksesi taaksepäin.
  4. Viimeisen kentän jälkeen ++tab++ asettaa kohdistimen koodinpätkän loppusijaintiin. ++esc++ päättää istunnon milloin tahansa ja jättää tekstin sellaisena kuin se on kirjoitettu.

Jos kohdistinta edeltävä sana ei ole koodinpätkän etuliite, ++tab++ sisentää tavalliseen tapaan — näppäin lainataan vain, kun on jotain laajennettavaa. Täydennysluettelon ollessa auki ++tab++ kuuluu luettelolle.

Monirivinen laajennus perii sen rivin sisennyksen, jolla sen kirjoitit, ja sen rivinvaihdot noudattavat asiakirjan käytäntöä (CRLF/LF).

Koodinpätkät täydennysluettelossa

Koodinpätkien etuliitteet näkyvät myös automaattisen täydennyksen luettelossa pienellä kuvakkeella merkittyinä, jotta ne erottuvat tavallisista sanoista. Kun hyväksyt koodinpätkäkohdan, se laajenee heti ja kenttäistunto alkaa — sama kuin etuliitteen kirjoittaminen ja ++tab++-painallus.

Mitä koodinpätkä voi sisältää

Merkintä Merkitys
$1 … $9 Sarkainpysäkkikenttiä, joissa käydään numerojärjestyksessä (riippumatta niiden sijainnista rungossa).
${1:oletus} Kenttä, jolla on aloitussisältö, valittuna kun siinä käydään.
$0 Mihin kohdistin päätyy viimeisen kentän jälkeen (oletuksena koodinpätkän loppu).
$FILENAME Asiakirjan tiedostonimi (tyhjä tallentamattomille puskureille).
$DATE Tämän päivän päivämäärä ISO-muodossa (2026-07-06).
$SELECTION Teksti, joka oli valittuna, kun koodinpätkä laukaistiin.
$CLIPBOARD Leikepöydän nykyinen teksti.
\$ Kirjaimellinen dollarimerkki.

Kaikki virheellisesti muotoiltu lisätään kirjaimellisesti epäonnistumisen sijaan. Rungossa toistuva kenttänumero säilyttää vain ensimmäisen esiintymänsä elävänä kenttänä.

Koodinpätkien hallinta

Asetukset ▸ Koodinpätkät luettelee jokaisen koodinpätkän — sekä mukana tulevat joukot että omasi. Siellä:

  • Lisää… luo uuden koodinpätkän: etuliite, laajuus (pilkuin erotetut kielitunnisteet, kuten cpp, c; tyhjä tai * koskee kaikkialla), kuvaus ja runko.
  • Muokkaa… muokkaa omia koodinpätkiäsi. Mukana tulevan koodinpätkän muokkaaminen luo oman kopiosi, joka menee edelle mukana tulevaa (sama etuliite ja laajuus).
  • Poista poistaa omat koodinpätkäsi (mukana tulevia ei voi poistaa — varjosta ne sen sijaan).

Mukana tulee joukot kielille C/C++, Python, JavaScript/TypeScript ja Markdown sekä kaksi yleiskäyttöistä apuria (date, clip). Koodinpätkäsi tallennetaan JSONina liitännäisen datakansioon (snippets/user.json); voit myös pudottaa sinne lisää *.json-tiedostoja — muoto vastaa mukana tulevia tiedostoja:

{
    "language": ["cpp", "c"],
    "snippets": [
        {
            "prefix": "for",
            "description": "indexed for loop",
            "body": ["for (${1:int i = 0}; ${2:i < count}; ${3:++i})", "{", "\t$0", "}"]
        }
    ]
}

Rungot ovat rivitaulukoita. Koodinpätkäkohtainen "scopes"-taulukko ohittaa tiedostotason "language"-oletuksen.

Tiedostomallit

Tiedosto ▸ Uusi mallipohjasta… avaa valitsimen tiedostorungoista — C++-lähdetiedosto main-funktiolla, otsikkotiedosto sisällytysvahdilla, Python-skripti, Markdown-asiakirja, HTML-sivu. Valittu mallipohja avautuu uutena, tallentamattomana asiakirjana, jossa sen muuttujat ($DATE, $CLIPBOARD …) on jo korvattu; kenttämerkinnät tiivistyvät oletusteksteikseen.

Mallipohjat ovat myös JSON-tiedostoja (templates/*.json, sekä mukana tulevia että liitännäisen datakansiossa):

{
    "templates": [
        {
            "name": "Python script",
            "suggestedName": "script.py",
            "body": ["#!/usr/bin/env python3", "", ""]
        }
    ]
}

Rajoitukset

  • Toistuvaa kenttänumeroa ei peilata (kenttään 1 kirjoittaminen ei päivitä toista $1-kenttää); myöhemmät esiintymät ovat tavallista tekstiä.
  • Sisäkkäisiä paikkamerkkejä (${1:${2:x}}) ei tueta; sisäteksti otetaan kirjaimellisesti.
  • $FILENAME on tyhjä tallentamattomissa puskureissa.