Zásuvný modul Seznam funkcí¶
Filtrovatelný přehled symbolů aktuálního dokumentu — funkcí, tříd, metod, nadpisů a dalších — v ukotvitelném postranním panelu. Aktivací symbolu skočíte kurzorem editoru rovnou na něj.
Kde to najdete¶
Zobrazit ▸ Seznam funkcí otevře dok (na začátku je skrytý). Seznam se během psaní obnovuje a sleduje aktivní kartu.
Práce se seznamem¶
- Skok na symbol — dvojklikněte na položku, nebo ji vyberte a stiskněte Enter. Editor se na symbol posune, rozloží jej, pokud sedí uvnitř složené oblasti, a umístí tam kurzor.
- Filtrování — psaním do pole nahoře zúžíte seznam podle názvu (bez ohledu na velikost písmen). Ve stromovém režimu zůstává nadřazená položka viditelná, když odpovídá kterýkoli z jejích potomků.
- Sledování kurzoru — jak se pohybujete po dokumentu, zvýrazní se v seznamu symbol, který kurzor obklopuje.
Volby zobrazení¶
Tlačítko ⋮ (vedle filtrovacího pole) otevře nabídku zobrazení:
| Volba | Účinek |
|---|---|
| Zobrazit jako strom | Vnoří členy pod jejich kontejner (metody pod třídu, třídu pod její jmenný prostor). Vypněte pro plochý seznam. |
| Seřadit podle pozice | Pořadí v dokumentu (výchozí). |
| Seřadit podle názvu | Abecedně (bez ohledu na velikost písmen). |
| Seřadit podle druhu | Seskupí podle druhu symbolu (třídy, funkce, …) a pak podle názvu. |
Vaše volby se pamatují mezi relacemi.
Odkud přehled pochází¶
Dok čerpá symboly z jednoho ze dvou zdrojů, uvedeného v zápatí na spodku panelu:
- Zdroj: jazykový server — je-li pro jazyk souboru nastaven jazykový server, použije dok jeho symboly. Tohle je přesný, úplný přehled (členské proměnné, precizní vnoření třída → metoda, každý druh symbolu, který server hlásí).
- Zdroj: vzory — jinak se dok vrátí k vestavěným pravidlům se vzory popsaným níže.
Nic se k tomu nenastavuje: přehled ze vzorů se objeví okamžitě, a když odpoví jazykový server, použije se automaticky. Jazyk, který má server, ale žádné dodávané vzory, přehled přesto dostane (od serveru).
Podporované jazyky¶
Pravidla se vzory vytvoří přehled bez jakéhokoli jazykového serveru (a jsou záložním řešením, když žádný není k dispozici):
| Jazyk | Rozpoznávané symboly |
|---|---|
| C / C++ | jmenné prostory, třídy, struktury, výčty, #define, funkce |
| Python | třídy, funkce a metody (def, async def) |
| JavaScript / TypeScript | třídy, funkce, konstanty se šipkovými funkcemi, metody tříd |
| Markdown | nadpisy (# … ######) |
Seznam odráží jazyk, který editor souboru přiřadil (jeho obarvování syntaxe). Soubory jiných typů zobrazí »Pro tento typ souboru není přehled symbolů.«
Vzory jsou přibližné
Přehled ze vzorů (Zdroj: vzory) je nejlepší možný odhad, nikoli plnohodnotný parser: například volná funkce napsaná za tělem třídy se může zobrazit vnořená pod onu třídu. Pro přesný přehled nastavte pro daný jazyk jazykový server — dok pak zobrazí jeho symboly (Zdroj: jazykový server).
Vlastní sady pravidel¶
Sady pravidel jsou obyčejné soubory JSON, takže je můžete upravovat nebo přidávat jazyky bez
nového sestavení. Dodávaná sada je vedle aplikace ve složce function-list/ (jeden
*.json na sadu pravidel); tyto soubory se při aktualizaci přepisují, proto s nimi zacházejte
jako s příklady jen ke čtení.
Pro přizpůsobení vložte vlastní *.json do podsložky rulesets/ v datovém adresáři
modulu Seznam funkcí. Uživatelský soubor, jehož languageIds daný jazyk obsahuje, dodávanou
sadu pravidel pro tento jazyk přebije.
Soubor sady pravidel vypadá 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 nebo více id jazyků editoru, pro které sada pravidel platí (například cpp, python). Jeden soubor jich může obsloužit několik. |
caseSensitive |
Zda vzory rozlišují velikost písmen (výchozí true). |
rules |
Uspořádaný seznam pravidel; vyhrává první pravidlo, které řádku odpovídá, jeden symbol na řádek. |
rules[].pattern |
Regulární výraz ECMAScriptu porovnávaný s jedním řádkem. |
rules[].nameGroup |
Zachycená skupina, která nese název symbolu (výchozí 1). |
rules[].kind |
Druh symbolu — název (class, struct, enum, namespace, function, method, constant, string, …) nebo číslo SymbolKind podle LSP. Řídí seskupování a řazení. |
rules[].containerGroup |
Volitelná zachycená skupina použitá jako podrobnost o kontejneru symbolu (0 = žádná). |