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). |