Funksjonsliste-programtillegget¶
En oversikt over det gjeldende dokumentets symboler — funksjoner, klasser, metoder, overskrifter og mer — som kan filtreres, i et dokkbart sidepanel. Aktiver et symbol for å føre redigererens markør rett dit.
Hvor du finner det¶
Vis ▸ Funksjonsliste åpner panelet (det begynner skjult). Listen oppdateres mens du skriver, og følger den aktive fanen.
Å bruke listen¶
- Hopp til et symbol — dobbeltklikk på en post, eller merk den og trykk Enter. Redigereren ruller til symbolet, folder det ut hvis det ligger inne i en sammenfoldet fold, og setter markøren der.
- Filtrer — skriv i feltet øverst for å snevre inn listen etter navn (uten forskjell på store og små bokstaver). I tremodus blir en forelder værende synlig når bare ett av barna dens matcher.
- Følg markøren — mens du beveger deg rundt i dokumentet, uthevet det symbolet markøren står inne i, i listen.
Visningsvalg¶
Knappen ⋮ (ved siden av filterfeltet) åpner visningsmenyen:
| Valg | Virkning |
|---|---|
| Vis som tre | Legg medlemmer under det de hører til (metoder under en klasse, en klasse under navnerommet sitt). Slå det av for å få en flat liste. |
| Sorter etter posisjon | Dokumentets rekkefølge (standard). |
| Sorter etter navn | Alfabetisk (uten forskjell på store og små bokstaver). |
| Sorter etter type | Gruppert etter symboltype (klasser, funksjoner …), og deretter etter navn. |
Valgene dine huskes mellom øktene.
Hvor oversikten kommer fra¶
Panelet henter symboler fra en av to kilder, vist i bunnteksten nederst i panelet:
- Kilde: språkserver — når en språkserver er satt opp for filens språk, bruker panelet symbolene dens. Det er den nøyaktige og fullstendige oversikten (medlemsvariabler, presis nøsting av klasse → metode, hver symboltype tjeneren melder om).
- Kilde: mønstre — ellers faller panelet tilbake på de innebygde mønsterreglene som er beskrevet nedenfor.
Dette setter du ikke opp: den mønsterbaserte oversikten kommer fram med det samme, og svarer en språkserver, brukes den av seg selv. Et språk som har en tjener, men ingen medfølgende mønstre, får likevel en oversikt (fra tjeneren).
Språk som støttes¶
Mønsterreglene lager en oversikt uten noen språkserver (og er det som faller tilbake på når en ikke er tilgjengelig):
| Språk | Symboler som gjenkjennes |
|---|---|
| C / C++ | navnerom, klasser, strukturer, enumerasjoner, #define-er, funksjoner |
| Python | klasser, funksjoner og metoder (def, async def) |
| JavaScript / TypeScript | klasser, funksjoner, konstanter med pilfunksjoner, klassemetoder |
| Markdown | overskrifter (# … ######) |
Listen speiler det språket redigereren har brukt på filen (syntaksfargingen dens). Filer av andre typer viser «Ingen symboloversikt for denne filtypen.»
Mønstre er omtrentlige
Den mønsterbaserte oversikten (Kilde: mønstre) er et beste forsøk og ikke en fullstendig parser: en fri funksjon som er skrevet etter en klassekropp, kan for eksempel bli vist nøstet under den klassen. Vil du ha en presis oversikt, så sett opp en språkserver for språket — da viser panelet symbolene dens (Kilde: språkserver).
Egne regelsett¶
Regelsettene er alminnelige JSON-filer, så du kan justere dem eller legge til språk uten
å bygge på nytt. Det medfølgende settet ligger ved siden av programmet i en
function-list/-mappe (én *.json per regelsett); de filene overskrives ved en
oppdatering, så behandl dem som skrivebeskyttede eksempler.
Vil du tilpasse dem, så legg dine egne *.json-filer i undermappen rulesets/ i
Funksjonsliste-programtilleggets datamappe. En brukerfil der languageIds inneholder et
språk, overstyrer det medfølgende regelsettet for det språket.
En regelsettfil ser slik ut:
{
"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" }
]
}
| Felt | Betydning |
|---|---|
languageIds |
Én eller flere av redigererens språk-id-er som regelsettet gjelder for (for eksempel cpp eller python). Én fil kan betjene flere. |
caseSensitive |
Om mønstrene matcher med forskjell på store og små bokstaver (true som standard). |
rules |
En ordnet liste av regler; den første regelen som matcher en linje, vinner, ett symbol per linje. |
rules[].pattern |
Et regulært uttrykk i ECMAScript-stil som matches mot én enkelt linje. |
rules[].nameGroup |
Den fangstgruppen som inneholder symbolets navn (1 som standard). |
rules[].kind |
Symboltypen — et navn (class, struct, enum, namespace, function, method, constant, string …) eller et SymbolKind-tall fra LSP. Styrer grupperingen og sorteringen. |
rules[].containerGroup |
En valgfri fangstgruppe som brukes som symbolets opplysning om hva det hører til (0 = ingen). |