Preskočiť na obsah

Zásuvný modul Zoznam funkcií

Filtrovateľná osnova symbolov aktuálneho dokumentu — funkcií, tried, metód, nadpisov a ďalších — v ukotviteľnom bočnom paneli. Aktivovaním symbolu presuniete kurzor editora rovno na neho.

Kde ho nájdete

Zobraziť ▸ Zoznam funkcií otvorí panel (na začiatku je skrytý). Zoznam sa počas písania obnovuje a sleduje aktívnu kartu.

Práca so zoznamom

  • Skok na symbol — dvakrát kliknite na položku alebo ju vyberte a stlačte Enter. Editor sa posunie na symbol, rozbalí ho, ak sa nachádza vnútri zloženej oblasti, a umiestni tam kurzor.
  • Filtrovanie — písaním do poľa navrchu zúžite zoznam podľa názvu (bez ohľadu na veľkosť písmen). V stromovom režime ostáva nadradená položka viditeľná, kým zodpovedá ktorákoľvek z jej podriadených.
  • Sledovanie kurzora — ako sa pohybujete po dokumente, zvýrazňuje sa v zozname symbol, ktorý kurzor obklopuje.

Možnosti zobrazenia

Tlačidlo ⋮ (vedľa filtrovacieho poľa) otvorí ponuku zobrazenia:

Možnosť Účinok
Zobraziť ako strom Vnorí členy pod ich kontajner (metódy pod triedu, triedu pod jej menný priestor). Vypnutím získate plochý zoznam.
Zoradiť podľa pozície Poradie v dokumente (predvolené).
Zoradiť podľa názvu Abecedne (bez ohľadu na veľkosť písmen).
Zoradiť podľa druhu Zoskupí podľa druhu symbolu (triedy, funkcie, …) a potom podľa názvu.

Vaše voľby sa pamätajú medzi reláciami.

Odkiaľ osnova pochádza

Panel čerpá symboly z jedného z dvoch zdrojov, ktorý uvádza v päte v spodnej časti panela:

  • Zdroj: jazykový server — keď je pre jazyk súboru nastavený jazykový server, panel používa jeho symboly. Je to presná, úplná osnova (členské premenné, presné vnorenie triedy → metódy, každý druh symbolu, ktorý server hlási).
  • Zdroj: vzory — inak sa panel vráti k vstavaným pravidlám so vzormi opísaným nižšie.

Nemusíte nič nastavovať: osnova podľa vzorov sa objaví okamžite, a ak odpovie jazykový server, použije sa automaticky. Jazyk, ktorý má server, ale nemá dodávané vzory, osnovu aj tak dostane (od servera).

Podporované jazyky

Pravidlá so vzormi vytvoria osnovu bez akéhokoľvek jazykového servera (a slúžia ako záloha, keď server nie je k dispozícii):

Jazyk Rozpoznávané symboly
C / C++ menné priestory, triedy, štruktúry, výpočtové typy, #define, funkcie
Python triedy, funkcie a metódy (def, async def)
JavaScript / TypeScript triedy, funkcie, konštanty so šípkovými funkciami, metódy tried
Markdown nadpisy (# … ######)

Zoznam zodpovedá jazyku, ktorý editor súboru priradil (jeho farebnému zvýrazňovaniu syntaxe). Súbory iných typov zobrazia „Pre tento typ súboru nie je k dispozícii osnova symbolov.“

Vzory sú približné

Osnova podľa vzorov (Zdroj: vzory) je najlepším odhadom, nie plnohodnotným parserom: napríklad voľná funkcia napísaná za telom triedy sa môže zobraziť vnorená pod touto triedou. Ak chcete presnú osnovu, nastavte pre daný jazyk jazykový server — panel potom zobrazí jeho symboly (Zdroj: jazykový server).

Vlastné sady pravidiel

Sady pravidiel sú obyčajné súbory JSON, takže ich môžete upraviť alebo pridať jazyky bez opätovného zostavenia. Dodávaná sada sa nachádza vedľa aplikácie v priečinku function-list/ (jeden súbor *.json na sadu pravidiel); tieto súbory sa pri aktualizácii prepisujú, takže s nimi zaobchádzajte ako s príkladmi iba na čítanie.

Ak si chcete niečo prispôsobiť, vložte vlastný súbor *.json do podpriečinka rulesets/ v dátovom priečinku zásuvného modulu Zoznam funkcií. Používateľský súbor, ktorého languageIds obsahuje daný jazyk, prekryje pre tento jazyk dodávanú sadu pravidiel.

Súbor so sadou pravidiel vyzerá takto:

{
    "languageIds": ["cpp", "c"],
    "caseSensitive": true,
    "rules": [
        { "pattern": "^\\s*class\\s+([A-Za-z_]\\w*)", "kind": "class" },
        { "pattern": "^\\s*(?:async\\s+)?def\\s+([A-Za-z_]\\w*)", "kind": "function" }
    ]
}
Pole Význam
languageIds Jedno alebo viac id jazykov editora, pre ktoré sada pravidiel platí (napr. cpp, python). Jeden súbor môže slúžiť viacerým.
caseSensitive Či vzory rozlišujú veľkosť písmen (predvolene true).
rules Usporiadaný zoznam pravidiel; vyhráva prvé pravidlo, ktoré riadku zodpovedá, jeden symbol na riadok.
rules[].pattern Regulárny výraz v štýle ECMAScript porovnávaný s jedným riadkom.
rules[].nameGroup Zachytávajúca skupina s názvom symbolu (predvolene 1).
rules[].kind Druh symbolu — názov (class, struct, enum, namespace, function, method, constant, string, …) alebo číslo SymbolKind podľa LSP. Riadi zoskupovanie a zoraďovanie.
rules[].containerGroup Voliteľná zachytávajúca skupina použitá ako podrobnosť o kontajneri symbolu (0 = žiadna).