Preskočiť na obsah

Zásuvný modul Útržky

Napíšte krátku predponu, stlačte ++tab++ a rozvinie sa na celú konštrukciu — cyklus for, kostru triedy, tabuľku v Markdowne — s kurzorom pripraveným na prvom mieste, ktoré treba vyplniť. Tab/Shift+Tab prechádzajú medzi poľami, Esc prácu ukončí. Zásuvný modul poskytuje aj Súbor ▸ Nový zo šablóny… na vytvorenie celých súborov.

Rozvinutie útržku

  1. Napíšte predponu útržku (napríklad for v súbore v jazyku C++).
  2. Stlačte ++tab++. Predpona sa nahradí telom útržku — ako jediný krok späť — a vyberie sa prvé pole, pripravené na prepísanie.
  3. Klávesom ++tab++ skočíte na ďalšie pole, klávesmi ++shift+tab++ sa vrátite späť.
  4. Za posledným poľom umiestni ++tab++ kurzor na koncovú pozíciu útržku. Klávesom ++esc++ ukončíte prácu s útržkom kedykoľvek a text ostane taký, ako ste ho napísali.

Ak slovo pred kurzorom nie je predponou útržku, ++tab++ odsadzuje ako obvykle — kláves sa požičiava iba vtedy, keď je čo rozvíjať. Kým je otvorené vyskakovacie okno dopĺňania, patrí ++tab++ tomuto oknu.

Viacriadkové rozvinutie prevezme odsadenie riadka, na ktorom ste ho napísali, a jeho konce riadkov sa riadia konvenciou dokumentu (CRLF/LF).

Útržky vo vyskakovacom okne dopĺňania

Predpony útržkov sa objavujú aj vo vyskakovacom okne automatického dopĺňania, označené malou značkou, aby sa odlíšili od bežných slov. Prijatím položky s útržkom sa útržok okamžite rozvinie a začne sa práca s poľami — rovnako ako pri napísaní predpony a stlačení ++tab++.

Čo môže útržok obsahovať

Token Význam
$1 … $9 Polia so zastávkami tabulátora, navštevované v číselnom poradí (bez ohľadu na ich polohu v tele).
${1:predvolené} Pole s počiatočným obsahom, ktorý sa pri návšteve vyberie.
$0 Miesto, kde kurzor skončí po poslednom poli (predvolene koniec útržku).
$FILENAME Názov súboru dokumentu (pri neuložených bufferoch prázdny).
$DATE Dnešný dátum vo formáte ISO (2026-07-06).
$SELECTION Text vybraný v čase vyvolania útržku.
$CLIPBOARD Aktuálny text v schránke.
\$ Doslovný znak dolára.

Čokoľvek zle zapísané sa vloží doslovne, namiesto aby sa vyvolala chyba. Z indexu poľa, ktorý sa v tele opakuje, ostane živým poľom iba jeho prvý výskyt.

Správa útržkov

Predvoľby ▸ Útržky vypisujú každý útržok — dodávané sady aj vaše vlastné. Odtiaľ môžete:

  • Pridať… nový útržok: predponu, rozsah (id jazykov oddelené čiarkami, napríklad cpp, c; prázdna hodnota alebo * platia všade), opis a telo.
  • Upraviť… svoje útržky. Úpravou dodávaného útržku vznikne vaša vlastná kópia, ktorá má pred dodávanou prednosť (pri rovnakej predpone a rozsahu).
  • Odstrániť svoje útržky (dodávané odstrániť nemožno — namiesto toho ich prekryte).

Dodávané sady existujú pre C/C++, Python, JavaScript/TypeScript a Markdown, plus dvaja univerzálni pomocníci (date, clip). Vaše útržky sa uchovávajú ako JSON v dátovom priečinku zásuvného modulu (snippets/user.json); môžete tam vložiť aj ďalšie súbory *.json — formát zodpovedá dodávaným súborom:

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

Telá sú polia riadkov. Pole "scopes" pri konkrétnom útržku prekryje predvolený "language" na úrovni súboru.

Šablóny súborov

Súbor ▸ Nový zo šablóny… otvorí výber kostier súborov — zdrojový súbor v C++ s funkciou main, hlavičku s ochranným makrom, skript v Pythone, dokument Markdown, stránku HTML. Zvolená šablóna sa otvorí ako nový neuložený dokument s premennými ($DATE, $CLIPBOARD, …), ktoré sú už dosadené; tokeny polí sa zredukujú na svoj predvolený text.

Aj šablóny sú súbory JSON (templates/*.json, dodávané aj v dátovom priečinku zásuvného modulu):

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

Obmedzenia

  • Opakovaný index poľa sa nezrkadlí (písanie do poľa 1 neaktualizuje druhé $1); neskoršie výskyty sú obyčajným textom.
  • Vnorené zástupné výrazy (${1:${2:x}}) nie sú podporované; vnútorný text sa berie doslovne.
  • $FILENAME je v neuložených bufferoch prázdne.