Hyppää sisältöön

Funktioluettelo-liitännäinen

Suodatettava yleiskuva nykyisen asiakirjan symboleista — funktioista, luokista, metodeista, otsikoista ja muista — telakoitavassa sivupaneelissa. Aktivoi symboli hypätäksesi editorin kohdistimen suoraan siihen.

Mistä sen löytää

Näytä ▸ Funktioluettelo avaa telakan (se alkaa piilotettuna). Luettelo päivittyy kirjoittaessasi ja seuraa aktiivista välilehteä.

Luettelon käyttäminen

  • Hyppää symboliin — kaksoisnapsauta kohtaa tai valitse se ja paina Enter. Editori vierittää symboliin, avaa sen, jos se on kokoon taitetun taiton sisällä, ja asettaa kohdistimen sinne.
  • Suodata — kirjoita yläosan ruutuun kaventaaksesi luetteloa nimen perusteella (kirjainkoosta riippumatta). Puutilassa vanhempi pysyy näkyvissä, kun jokin sen lapsista osuu.
  • Seuraa kohdistinta — kun liikut asiakirjassa, se symboli, joka ympäröi kohdistinta, korostetaan luettelossa.

Näkymävalinnat

⋮-painike (suodatinruudun vieressä) avaa näkymävalikon:

Valinta Vaikutus
Näytä puuna Sijoita jäsenet niiden säiliön alle (metodit luokan alle, luokka nimiavaruutensa alle). Kytke se pois saadaksesi litteän luettelon.
Järjestä sijainnin mukaan Asiakirjan järjestys (oletus).
Järjestä nimen mukaan Aakkosjärjestys (kirjainkoosta riippumatta).
Järjestä lajin mukaan Ryhmittele symbolilajin mukaan (luokat, funktiot …) ja sitten nimen mukaan.

Valintasi muistetaan istuntojen välillä.

Mistä yleiskuva tulee

Telakka hakee symbolit toisesta kahdesta lähteestä, jotka näkyvät paneelin alareunassa:

  • Lähde: kielipalvelin — kun tiedoston kielelle on määritetty kielipalvelin, telakka käyttää sen symboleja. Tämä on tarkka, täydellinen yleiskuva (jäsenmuuttujat, täsmällinen luokka → metodi -sisäkkäisyys, jokainen symbolilaji, jonka palvelin ilmoittaa).
  • Lähde: hahmot — muutoin telakka turvautuu alla kuvattuihin sisäänrakennettuihin hahmosääntöihin.

Tätä et määritä: hahmopohjainen yleiskuva ilmestyy heti, ja jos kielipalvelin vastaa, sitä käytetään automaattisesti. Kieli, jolla on palvelin mutta ei mukana tulevia hahmoja, saa silti yleiskuvan (palvelimelta).

Tuetut kielet

Hahmosäännöt tuottavat yleiskuvan ilman kielipalvelinta (ja ne ovat varalla, kun sellaista ei ole saatavilla):

Kieli Tunnistetut symbolit
C / C++ nimiavaruudet, luokat, tietueet, luetellut tyypit, #definet, funktiot
Python luokat, funktiot ja metodit (def, async def)
JavaScript / TypeScript luokat, funktiot, nuolifunktiovakiot, luokkametodit
Markdown otsikot (# … ######)

Luettelo heijastaa sitä kieltä, jonka editori on soveltanut tiedostoon (sen syntaksivärjäystä). Muun tyyppiset tiedostot näyttävät tekstin »Tälle tiedostotyypille ei ole symbolirakennetta.«

Hahmot ovat likimääräisiä

Hahmopohjainen yleiskuva (Lähde: hahmot) on paras yritys eikä täysi jäsennin: esimerkiksi luokkarungon jälkeen kirjoitettu vapaa funktio voi näkyä sisäkkäisenä tuon luokan alla. Tarkkaa yleiskuvaa varten määritä kielelle kielipalvelin — silloin telakka näyttää sen symbolit (Lähde: kielipalvelin).

Mukautetut sääntöjoukot

Sääntöjoukot ovat tavallisia JSON-tiedostoja, joten voit hienosäätää niitä tai lisätä kieliä ilman uudelleenkääntämistä. Mukana tuleva joukko sijaitsee sovelluksen vieressä function-list/-kansiossa (yksi *.json sääntöjoukkoa kohti); nuo tiedostot kirjoitetaan päälle päivityksessä, joten käsittele niitä vain luettavina esimerkkeinä.

Mukauttaaksesi pudota omat *.json-tiedostosi Funktioluettelo-liitännäisen datakansion rulesets/-alikansioon. Käyttäjän tiedosto, jonka languageIds sisältää kielen, ohittaa mukana tulevan sääntöjoukon tuon kielen osalta.

Sääntöjoukkotiedosto näyttää tältä:

{
    "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" }
    ]
}
Kenttä Merkitys
languageIds Yksi tai useampi editorin kielitunniste, joita sääntöjoukko koskee (esimerkiksi cpp tai python). Yksi tiedosto voi palvella useita.
caseSensitive Täsmäävätkö hahmot kirjainkoon erottavasti (oletuksena true).
rules Järjestetty sääntöluettelo; ensimmäinen riviin osuva sääntö voittaa, yksi symboli riviä kohti.
rules[].pattern ECMAScript-tyylinen säännöllinen lauseke, joka täsmätään yhteen riviin.
rules[].nameGroup Kaappausryhmä, joka sisältää symbolin nimen (oletuksena 1).
rules[].kind Symbolilaji — nimi (class, struct, enum, namespace, function, method, constant, string …) tai LSP:n SymbolKind-numero. Ohjaa ryhmittelyä ja järjestämistä.
rules[].containerGroup Valinnainen kaappausryhmä, jota käytetään symbolin säiliötietona (0 = ei mitään).