Älykäs koodin viimeistely - Intelligent code completion

Älykäs koodin täydennys on kontekstitietoinen koodin täydennysominaisuus joissakin ohjelmointiympäristöissä, mikä nopeuttaa sovellusten koodausprosessia vähentämällä kirjoitusvirheitä ja muita yleisiä virheitä. Yritetään yleensä tehdä automaattisen täydennyksen ponnahdusikkunoita kirjoittaessasi, kyselemällä toimintojen parametreja ja syntaksivirheisiin liittyviä kyselyvinkkejä. Älykäs koodin täydennys ja siihen liittyvät työkalut toimivat dokumentaationa ja selvennyksenä muuttujien nimille, toiminnoille ja menetelmille heijastusta käyttämällä .

Ominaisuus näkyy monissa ohjelmointiympäristöissä. Toteutukset sisältävät "Automaattinen täydennys +" in Atom , ja IntelliSense vuonna Visual Studio Code . Termi on alun perin suosittu "valintaluettelo", ja jotkut toteutukset viittaavat siihen edelleen sellaisenaan.

Yleiskatsaus

Älykäs koodin täydennys, joka on samanlainen kuin muut automaattiset täydennysjärjestelmät , on kätevä tapa käyttää toimintojen kuvauksia ja erityisesti niiden parametriluetteloita. Ominaisuus nopeuttaa ohjelmistokehitystä vähentämällä näppäimistön syöttöä ja tarvetta nimien tallentamiseen. Sen avulla käyttäjät voivat myös viitata harvemmin ulkoiseen dokumentaatioon, koska vuorovaikutteinen dokumentointi monista aktiivisen laajuuden symboleista (eli muuttujista ja funktioista) näkyy dynaamisesti työkaluvihjeiden muodossa .

Älykäs koodin viimeistely käyttää automaattisesti luotua muistin tietokantaa luokista, muuttujien nimistä ja muista rakenteista, jotka ovat antaneet tietokoneen koodin määrittelyt tai viitteet. IntelliSense "klassinen" toteutus toimii havaitsemalla merkkejä , kuten pisteitä (tai muita erotinmerkkejä kielestä riippuen). Kun käyttäjä kirjoittaa yhden näistä merkeistä heti sen entiteetin nimen jälkeen, jossa on yksi tai useampi käytettävissä oleva jäsen (kuten sisällytettyjä muuttujia tai toimintoja), IntelliSense ehdottaa vastaavuuksia ponnahdusikkunassa. Käyttäjä voi joko hyväksyä ehdotuksen kirjoittamalla lausekkeen viimeistelymerkin ( Tab ↹tai ↵ Enter) tai kielikohtaisen merkin (kuten puolipiste C ++: lle ) tai jatkaa nimen kirjoittamista. Ajan myötä IntelliSense määrittää, mitä muuttujaa tai toimintoa käyttäjä todennäköisesti tarvitsee. IntelliSense näyttää myös ponnahdusikkunassa toiminnon lyhyen kuvauksen-riippuen toiminnon lähdekoodin dokumentaatiosta .

Ominaisuuden avulla käyttäjät voivat myös valita useista ylikuormitetuista toiminnoista kielillä, jotka tukevat olio-ohjelmointia . Jotkin koodinmuokkausohjelmistot tarjoavat älykkään koodin viimeistelyn Language Server Protocol (LSP) -palvelimen kautta.

Historia

Tutkimus älykäs koodi loppuun alkoi vuonna 1957, ja oikeinkirjoituksen Tammi bittikartta kuvia kaunokirjoitusta ja erityisten sovellusten löytää kirjaa tietokantoihin huolimatta virheellisiä merkintöjä. Vuonna 1961 Les Earnest , joka johti tämän orastavan tekniikan tutkimusta, piti välttämättömänä sisällyttää ensimmäinen oikeinkirjoituksen tarkistus, joka käytti 10 000 hyväksyttävän sanan luetteloa. Ralph Gorin, Earnestin tuolloin valmistunut jatko-opiskelija, loi ensimmäisen todellisen oikeinkirjoituksen tarkistusohjelman, joka on kirjoitettu yleisen englanninkielisen tekstin hakemukseksi (eikä tutkimukseksi). SPELL, DEC PDP-10: lle Stanfordin yliopiston tekoälylaboratoriossa (SAIL), julkaistiin helmikuussa 1971. Gorin kirjoitti ohjelman kokoonpanossa nopeampaa toimintaa varten; hän teki sen etsimällä sanaluettelosta uskottavia oikeinkirjoituksia, jotka eroavat yhdellä kirjaimella tai viereisen kirjaimen siirtämisellä, ja esittämällä ne käyttäjälle. Gorin teki SPELLin julkisesti saataville, kuten tehtiin useimmissa SAIL-ohjelmissa, ja se levisi pian ympäri maailmaa uuden ARPANETin kautta , noin vuosikymmen ennen henkilökohtaisten tietokoneiden yleistä käyttöä. SPELL ja sen algoritmit ja tietorakenteet inspiroivat Unix -ohjelmaa Ispell .

Tuki toimittajille ja IDE: ille

Visual Studio

IntelliSense on Microsoftin toteuttama koodin viimeistely, joka tunnetaan parhaiten Visual Studiossa . Se esiteltiin ensimmäisen kerran Microsoftin valtavirran ominaisuutena vuonna 1996, ja se perustui moniin jo keksittyihin koodin täydennyksen ja syntaksin tarkistamisen käsitteisiin.Visual Basic 5.0 Control Creation Edition oli Visual Basic 5.0: n julkisesti saatavilla oleva prototyyppi . Aluksi Visual Basic IDE oli tekniikan ensisijainen "testialusta", mutta IntelliSense sisällytettiin Visual FoxPro- ja Visual C ++ -ohjelmiin Visual Studio 97 -aikataulussa (yksi versio sen jälkeen, kun se nähtiin ensimmäisen kerran Visual Basicissa). Koska se perustui COM : n sisäiseen tarkasteluun, IntelliSense Visual Basic -versiot olivat aina kestävämpiä ja täydellisempiä kuin Visual C ++: n versiot 5.0 ja 6.0 (97 ja 98 Visual Studion nimeämisjärjestyksessä), joista ei ollut hyötyä perustuu kokonaan COM -järjestelmään. Nämä puutteet (joita monet VC ++ -kehittäjät kritisoivat 97 -julkaisun jälkeen) on korjattu suurelta osin .NET -tuotelinjoissa. Esimerkiksi yksi halutuimmista valmiuksista, jotka puuttuvat pre-.NET-tuotteista, oli mallien tuki , joka on nyt otettu käyttöön.

IntelliSense on siirtynyt uuteen kehitysvaiheeseen vuonna 2001 julkaistun yhtenäistetyn Visual Studio.NET -ympäristön kanssa. IntelliSensea tukevat nyt muun muassa C ++ , C# , J# , Visual Basic , XML , HTML ja XSLT . Vuodesta Visual Studio 2005 alkaen IntelliSense on nyt aktivoitu oletusarvoisesti, kun käyttäjä alkaa kirjoittaa, sen sijaan, että hän tarvitsisi merkkimerkkejä (vaikka tämä toiminta voidaan poistaa käytöstä). IDE on kyky päätellä suuremman määrän yhteydessä sen perusteella, mitä kehittäjä on kirjoittaa, siihen pisteeseen, että perus-kielen ominaisuuksia, kuten varten ja samalla on myös valinnassa luetteloon. Vuonna 2017 Microsoft julkisti IntelliCoden, joka käyttää koneoppimista päätelläkseen tarkalleen, mikä kieli tai kirjasto -ominaisuus on todennäköisesti tarkoitettu jokaisessa näppäinpainalluksessa. Alun perin saatavana vain C# -laajennuksena, sen odotetaan olevan osa Visual Studion tulevia julkaisuja.

Muita IntelliSenseä sisältäviä Microsoft -tuotteita ovat Expression Web , FrontPage 2003 , Small Basic , Visual Basic for Applications IDE Microsoft Office -tuotteissa, Visual Studio Code ja monet muut. SQL Server 2008 Management Studiossa on automaattinen täydennys SQL -syntaksille.

Eclipse

Eclipse on koodin loppuun työkaluja, jotka pakattuina ohjelman. Se sisältää merkittävän tuen Java-, C ++ - ja JavaScript -koodinmuodostusta varten. Code Recommenders Eclipse -projekti tarjosi tehokkaan älykkään viimeistelyn, mutta resurssien puutteen vuoksi se hylättiin Eclipse 2018–12: ssa ja arkistoitiin sitten heinäkuussa 2019.

Vim

Vim Intellisense on kehittynyt koodin täydennysjärjestelmä Vim -editorille.

Esimerkki

Oletetaan, että Visual Studiossa muokattavassa C ++ -sovelluksessa on Foo -luokka, jossa on joitakin jäsentoimintoja:

class Foo {
  public:
    void bar();
    void foo_bar(char c, int n);
};

Kun kehittäjä viittaa tähän luokkaan lähdekoodissa, esim.

Foo foo;
foo.

heti kun käyttäjä kirjoittaa ajanjakson foo, IntelliSense luettelee automaattisesti kaikki käytettävissä olevat jäsentoiminnot (eli bar()ja foo_bar()) ja kaikki käytettävissä olevat jäsenmääritteet (yksityiset ja suojatut jäsenet voidaan tunnistaa riippulukolla heidän nimiensä vieressä). Käyttäjä voi sitten valita yhden nuolinäppäimillä ja lyömällä viimeistelymerkkiä, kun oikea jäsentoiminto on korostettu. Jos saatavilla, IntelliSense näyttää lyhyen kuvauksen jäsentoiminnosta lähdekoodidokumentaation mukaisesti.

IntelliSense menee pidemmälle ilmoittamalla tarvittavat parametrit toisessa ponnahdusikkunassa, kun käyttäjä täyttää parametrit. Kun käyttäjä kirjoittaa muuttujan nimen, ominaisuus tekee myös ehdotuksia muuttujan täydentämiseksi sitä kirjoittaessa. IntelliSense näyttää edelleen parametreja korostaen asiaankuuluvan parametrin käyttäjälajeina.

Käyttäjä voi "pakottaa" IntelliSensen näyttämään ponnahdusluettelonsa ilman kontekstia käyttämällä Ctrl+ Jtai Ctrl+ Space. In Visual Studio Tässä näkyy koko sovellusalueiden oliomalli käytettävissä kehittäjä.

Huomautuksia

Ulkoiset linkit