Articles

mikä on paras IDE ruosteessa kehittymiselle?

Tremaine Eto
Tremaine Eto

Follow
13. toukokuuta, 2019 · 12 min read

mitkä ruosteideat kannattaa valita?

Rust on Stack Overflow Insightsin mukaan vuoden 2018 ”rakastetuin” kieli uskomattomalla 78,9 prosentin arvostelulla — Rustacealaiset ovat siellä keskimäärin selvästi onnellisia. Rust ei kuitenkaan ilmestynyt saman tutkimuksen ”Suosituimmat teknologiat” – osioon, mikä viittaa siihen, että kokonaiskäyttäjien määrä on vielä melko pieni.

kyselyn jälkeen ei pitäisi tulla yllätyksenä, että moni kiirehtii kokeilemaan, ja kun se aika koittaa, herää väistämättä kysymys: mitä IDE: tä kannattaa käyttää ruosteen kehittämiseen?

nykyisellään ruoste-Ideillä ei ole selkeää monopolia, eikä näin ollen selvää voittajaa. Niin paljon kuin se tuntuu, että voi tehdä hämmentävää, tämä voi itse asiassa olla hyvä asia, koska on olemassa erilaisia valintoja, jotka lopulta pohjimmiltaan alas käyttäjän mieltymys.

Tämä artikkeli kerää paljon mielipiteitä Internetissä ja yrittää valaista sekä hyviä että huonoja puolia.

IntelliJ IDEA IntelliJ Rust plugin

/div>

Rust with IntelliJ IDEA (Credit matkblad on Giphy)

installaatiolinkin löydät täältä IntelliJ Rust-verkkosivuilta.

  • Open-source
  • kirjoittanut jotkut Jetbrainsin työntekijät ja vapaaehtoiset
  • ei virheenkorjausta

EDIT (5/28/19): lukijan mukaan Chris Vest:

se voi tehdä virheenkorjauksen, kun se on asennettu Clioniin.

  • Free for community edition, license for premium version
  • Refactoring capabilities
  • tukee uusien moduulien lisäämistä
  • tukee stubbing out trait implementations

ominaisuuskokonaisuus on hämmästyttävä, mutta minusta se on hidas… onko kenelläkään muulla tätä ongelmaa? Se joskus kestää minuuttia syntaksin ja virheiden korostus päivittää jälkeen kirjoitan joitakin uusia koodia.

—/u /NeuroXc on/R/rust

olen käyttänyt molempia vimejä ruosteen kanssa.vim plugin ja Intellij sen Rust plugin. Intellij on täydellisin ide kokemus olen yrittänyt ja paras completions mutta silti mieluummin vim.

—/u /Zethra on/R/rust

käytän Intellijiä Rust-liitännäisen kanssa. Käytän jo Jetbrains IDEs paljon uni työtä, joten oli järkevää pitää kiinni siitä.

—/u /FlourineWizard on/r/rust

olin vältellyt intellijiä debuggerin puuttumisen vuoksi (toimii vain clionissa).

intellijiä kokeiltaessa valmistuminen toimi tavallaan loistavasti heti (alkuhakemiston jälkeen). Mutta sitten aloin törmätä outoihin asioihin. Minulla ei ole iltaisin mitään setup, mutta se täydentää asioita öisin. Se näyttää noudattavan IDE, kunnes rakentaa ajetaan, sitten se ei. en voi selvittää, miten se saa ne tai miten poistaa sen.

Intellij ei ole tonnia refactors muut eivät. se on asioita olen jäänyt vs koodi, että minulla on ominaisuus pyyntöjä varten.

siinä on kuitenkin muita asioita, kuten se satunnaisesti sanoo, että asiat eivät koostu, että tekevät. Siinä lukee puuttuva menetelmä. Kuitenkin, Jos poistat rivin, se tulee täydellinen se, sitten taas sanoa puuttuu menetelmä.

sitten vain Sivuhuomautuksena, intellij on ylivoimaisesti raskain IDE. Se tuskin toimii minun laptop (joka on todella vanha kaikki oikeudenmukaisuus, ja minun pitäisi luultavasti saada toinen), jossa muut ”toimivat” hieno (mitä haluat määritellä, että eclipse, ja vs koodi oli suuri, kunnes tein mitä rikkoa loppuun).

mielestäni todellinen vastaus on, että emme ole IDE vielä.

—/u /r3vj4m3z on/R/rust

IntelliJ rust plugin on todella hyvä. Käytin vim+raceria+ycm: ää jonkin aikaa, ja rakastan Vimiä, mutta erityisesti isoissa, paljon moduuleja sisältävissä tuotantoprojekteissa ja syvissä hierarkioissa IntelliJ on vain paljon tuottavampi (stuff like rename struct field works across the whole code base)

— /u/neuronsguy on /R/rust

IntelliJ-Rust oli varmasti äärimmäisen helppo lähteä matkaan, mutta IJ: n paisuminen ajoi minut pois.

—/u /Cldfire on/r/rust

se toimii erittäin hyvin ja on aktiivista kehitystä.
suosittelen sitä ehdottomasti, jos voit säästää RAM-muistia ja suorittimen käyttöä.

– chimmihc on rust-lang.org

EDIT 6/24/19: lukija Joseph Noose oli seuraava lisätä:

minulle iso plussa IntelliJ yli VSS oli let completions, että joskus kun käsitellään wit 3rd parties se tulee nopeammin ja helpompi nähdä, mitä objekti on palautetaan. Huomasin, että joidenkin dieseljuttujen kanssa se oli erityisen hyödyllinen, koska esineet ovat melko pitkiä

CLion IntelliJ Rust plugin kanssa

toinen vaihtoehto Jetbrainsin kanssa, CLion on C/C++ IDE, joka voi tukea myös IntelliJ Rust-liitännäistä.

  • sallii Cargo build — järjestelmän käytön
  • tuki ruostesovellusten virheenkorjaukseen-toisin kuin IntelliJ-IDEA
  • vaatii kaupallisen lisenssin (tai ilmaisen kanssa .edu e-mail address)

Clion With The Rust plugin for intelliJ on luultavasti yhtä lähellä olemassa olevaa Rust-spesifistä IDE: tä; Eclipse-projekti saattaa kuitenkin tehdä sellaisen, siitä keskustellaan parhaillaan.

—/u /steveklabnik1 on/r/rust

Virheenkorjaustuki Clionissa on erinomainen! Ei saa läheskään tarpeeksi kiitosta. Inlined runtime arvot koodi keskeytyspisteissä on mukava (1), Niin on virheenkorjaus tarkastaja (2), ja asettamalla ehdollinen keskeytyspisteet… erittäin mukava tehdä.
Katso: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • avoimen lähdekoodin (vapaa)
  • sisäänrakennettu Rahtituki
  • Koodin täydennys
  • hyppää määritelmään, peek-määrittelyyn, löydä kaikki viitteet, symbolihaku
  • tyypit ja dokumentaatio leijumisesta
  • Koodimuotoilu
  • Refactoring (rename, deglob)
  • Error squiggles and apply suggestions from errors
  • snippets
  • rakenna tehtäviä
  • powered by Rust language Server (RLS)
  • format on Save, haluttaessa

vscode on hyvä kielipalvelintuki, mikä tarkoittaa uudet RLS-ominaisuudet toimivat siinä erittäin hyvin. Se on enemmänkin perinteinen IDE-kokemus, mutta käytän mieluummin tmux-istuntoa IDE: nä Vimin ollessa koodieditorini.

—/u /IDidntChooseUsername on/r/rust

+1 vscode + – laajennukselle. Miksi? Jotkut haluavat vain nähdä maailman palavan. Mutta oikeasti. VSCode on todella, todella hyvä editori.

käytän sitä C, C++, C#, Javascript, Erlang, Prolog, Lisp, F#, Ja nyt Rust.

Ei Emacsin pikkurilliä.

toimii heti kättelyssä.

Command pallete on myös melko ballerinamainen.

he vaihtoivat grep-järjestelmänsä hiljattain rust-versioon ja saivat massiivisen suorituskyvyn nousun. Olen kirjaimellisesti täällä, koska VSCode julkaisutiedot noin viikko tai 2 sitten.

kiinteä Git-integraatio.

Cross platform.

mainitsinko jo, että tykkään katsella maailman palamista?

— on/R/rust

käytän VS-koodia rust-laajennuksen kanssa kaikissa ruostekoodauksissani. Se on palvellut minua erittäin hyvin tähän mennessä, mitä en voi tehdä laajennuksen tarjoamilla näppäinyhdistelmillä, voidaan tehdä integroidulla konsolilla, joten minulla ei todellakaan ole valituksia.

—/u /Yougamermom on/r/rust

suosittelisin Vscodea, Rust-liitännäinen tarjoaa automaattitäydennyksen, syntaksikorostuksen ja joitakin muita mukavia ominaisuuksia. Mutta ennen kaikkea, on mukava LLDB plugin, jonka avulla visuaalinen virheenkorjaus joka on etuja muihin IDE olen yrittänyt.

ja se on cross platform.

– mczarnek on rust-lang.org

vietettyään 3+ viikkoa kunkin käyttäen intellij-rust, vscode-rust ja eri eri plugins rust tukea Sublime Text 3, voin luottavaisesti sanoa, että paras kokemus olen ollut tähän mennessä oli kanssa vscode plugin(s) … Vscode iskee täydellinen alue minulle; se oli instant saada ylös ja käynnissä (koska minulla oli jo tarvittavat työkalut cargo install ’ D ja rust src komponentti Lisätty kautta rustup, kaikki toimi laatikosta) ja edelleen ylläpitää editor kokemus. Ainoa asia, en ole voinut saada työtä on LLDB frontend, mutta se johtuu minun käyttö WSL, ei vika plugin itse.

TL:DR, suosittelen vscodea.

—/u /Cldfire on/r/rust

(Neo)vim Rust-liitännäisillä (kuten rust.vim, vim.racer)

example of rust with vim (credit jovansonlee Cesar on GitHub)

really used to vim and can ’ t stay from its various text manipulation commands? Älä pelkää-monet käyttävät Vimiä kehittyessään ruosteessa.

voit mennä pelkällä vanilla Vim-installaatiolla, tai voit käyttää muita makuja, kuten Neovimia.

Neovim

  • avoimen lähdekoodin
  • yhteisölähtöinen

  • pääsy suorittamaan tehtäviä/tehtäviä asynkronisesti vim: ssä (h/t Dhruva Sagar on StackOverflow)

mitä tahansa Vim: n makua käytät, voit hyödyntää Ruostekohtaisia laajennuksia.

ruoste.vim

  • Ruostetiedoston tunnistus
  • Syntaksikorostus
  • muotoilu
  • Syntastinen integraatio
  • vaatii vim 8: n tai uudemman täyden toiminnallisuuden

vim.racer

  • sallii Vimin käyttää Raceria Ruostekoodin täydennykseen ja navigointiin

vim, ja se on tavallaan tuskallista tbh: lle. Olen avoin ehdotuksille. Vimin tekstimanipulointipuoli on uskomaton. Se on vain tajunnanräjäyttävää. Mutta loput Vim on melko sh * t, ja tyypit monimutkaisia virheitä saat ruoste on melko tuskallista vaihtaa poikki terminaaliin.

Haluan vaihtaa Vscodeen tai vastaavaan, mutta vim-muokkauskomentojen puute on todella karu.

—/u /jl2352 on/R/rust

tarpeeksi lisäosia (asioita, kuten kielipalvelimia jne.) käyttämällä saa lopun (neo)vimistä todella käyttökelpoiseksi, imo.

—/u /ashfordneil on/R/rust

olen käyttänyt molempia vimejä ruosteen kanssa.vim plugin ja Intellij sen Rust plugin. Intellij on täydellisin ide kokemus olen yrittänyt ja paras completions mutta silti mieluummin vim. Suosittelen kokeilemaan https://areweideyet.com/ mainittuja asetelmia ja katsomaan, mikä toimii parhaiten.

—/u /Zethra on/r/rust

mielenkiintoista on, että jotkut puristit eivät käytä Rust-liitännäisiä lainkaan!

vim builtin auto complete (+ autocomppop). Haihtuvien. Se on pohjimmiltaan se … ei enää fancy plugins! Ja kyllä, teen isoja koodibaaseja tällä asetelmalla!

— /u/musicmatze on /r/rust

Emacs

emacs-racer by Racer-Rust (Credit recordnotfound)

i feel like if you ’ re going to include vi(m), kannattaa ainakin mainita emacs.

lisää siihen, että Emacsin porttaaminen ruostumaan on käynnissä. Käytän sitä pudotuskorvikkeena emacsille linux-koneissani.

Huomautus: En käytä Emacsia ruosteen kehittämiseen. Käyn läpi ruosteenoppimismatkaani IntelliJ-idean avulla.

— Chris Woods tämän postauksen kommenteissa

  • Racerin kanssa tarjoaa koodin täydennystä
  • on Cargo (package manager)-tuki näppäinyhdistelmillä
  • on rust-lang-kokoonpano Ruostekohtaiseen ohjelmointiin Emacsissa
  • tukee rustfmt: tä rust-Langin kanssa

kannattaa käyttää melpa-jause-packagepakettien asentamiseen emacsiin.

Rustin määrittäminen käyttämään RLS: ää emacsissa on aloittelijalle hieman hankalaa. Tässä RLS— kokoonpanoni, jos kiinnostaa: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.el ja https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

– /u/CSRaghunandan on /R/rust

sanon tämän, koska joku vielä opettelee ruostetta, enkä suosituksena ihmisille, jotka tekevät todellista panosta tuotantokoodiin.

käytän Emacsia Ruostetilassa ilman muita röyhelöitä.

Jos koodini on tarpeeksi monimutkainen, että tarvitsen IDE: n seuratakseni sitä, se on tarpeeksi monimutkainen, että joku muu ei pysty seuraamaan sitä sillä apuvälineellä. Ja jos tarvitsen automaattitäydennys tietää, mitä toimintoa haluan soittaa ja sen tyyppi allekirjoitus niin minulla ei luultavasti ole mitään liiketoimintaa soittaa sitä antamatta docs ainakin kerran joka tapauksessa, joten se ei ole ylimääräistä vaivaa vain etsiä sitä.

— /u/bxtk on /R/rust

Sublime with Rust Enhanced

Sublime with rust Enhanced (credit Rust-lang via packagecontrol.io)
  • Open-source (free)
  • Goto anything
  • Goto definition
  • Split editing
  • Low profile

se toimii melko hyvin, mutta voisi olla vähän enemmänkin käyttäjäystävällinen. Tämä on kuitenkin enemmän ylevä ongelma kuin plugin ongelma.

—/u /booooomba on/r/rust

kokeilin sitä, mutta kaipasin refactoring-työkaluja, hyvää integroitua päätettä ja Hover-tyyppiä verrattuna VSCode + Rust-liitännäiseen.

—/u /Foo-jin on/r/rust

ainoa harmitus on, että se ei ota huomioon testejä, eikä siksi nappaa niistä kokoamisvirheitä, ja antaa paljon varoituksia käyttämättömistä funktioista. (Kirjoitustestit ensin my lib: lle)

— /u/Rawler82 on /R/rust

siinä ei ole parhaita ominaisuuksia, mutta se on nopea ja pieni (vähän RAM-muistia ja levytilaa).

— /u/razrfalcon on /r/rust

aika).

—/u /Cldfire on/r/rust

jotkut eivät käytä ylimääräisiä lisäosia, joissa ruoste on tehostettu.

käytän ylevää tekstiä kaikkeen. Mitä rakentamiseen tulee, pidän vain pääteikkunan auki ruutuni alareunassa cargo watch käynnissä.

minulla ei ole mitään ruoste erityisiä plugins, mutta ottaen huomioon kaikki suositukset täällä, Luulen kokeilla Rust Enhanced plugin myöhemmin.

— /u/Uncaffeinated on /r/rust

Atom with Rust packages

Atom with IDE-Rust (credit atom.io)

IDE-Rust

  • uto-completion
  • Diagnostics (errors and warnings from rustc and clippy, see clippy_preference setting)
  • Document outline
  • Go to definition (ctrl or cmd click)
  • Type information and Documentation on hover (hold ctrl or cmd for more information)
  • Find references (ctrl-alt-shift-f or cmd-opt-shift-f also in context menu)
  • Format file with rustfmt (ctrl-shift-c tai cmd-shift-c myös kontekstivalikko)
  • Format on save (disabled by default, see atom-ide-ui settings)

language-rust

  • lisää syntaksikorostuksen ja pätkiä ruostetiedostoihin atomissa

Linter-Rust

  • lintsaamalla ruostetiedostosi atomissa, käyttämällä rustcia ja Cargoa
  • tiedostot tarkistetaan, kun avaat tai tallennat ne
  • токамак (tokamak)

    • syntaksikorostus
    • luo Cargo Project

    • tuki rahdille projektit
    • Code complete with Racer
    • Code Linting
    • projektikohtainen kokoonpano
    • Code formating
    • Siirry määritelmään
    • Hover for documentation
    • Etsi viitteet
    • tiedoston ja projektin ääriviivat
    • Code highlighting

    Racer

    • tarjoaa älykkään koodin täydennyksen ja ”etsi määritelmä”

    käytän rustup-installaatiossa kieliruotsia, linteriruostetta, raceria (autocomplete) ja Atom-beautifyta. Polkujen pystyttäminen vei aikaa, mutta se toimii aika hyvin. Yritin myös vaihtaa Tokamakiin jokin aika sitten, mutta se ei onnistunut.

    suoritan ruostekoodiani erillisessä zsh-ikkunassa, jonka kylkeen on laatoitettu jokin Gnome-lisäosa ja joka on aina näkyvissä (en tunne olevani valmis menemään i3). Tiedostopuun, koodinäkymän, minimapin ja pääteikkunan kanssa sarakkeita on yhteensä neljä ja se tuntuu ajoittain hieman ahtaalta. Kun läppäriin ei ole kiinnitetty isoa näyttöä, pyöritän atomia kokoruudussa.

    — rosievers on rust-lang.org

    käytin atomia ruosteen vuoksi noin 9 kuukautta, kun olin aiemmin käyttänyt atomia kaikessa Python-kehitystyössäni. Tein paljon samaa kuin @roSievers edellä, mutta löysin toistuvia ongelmia macOS (erityisesti ympäristömuuttujien ei läpi ilman hälyä). En saanut Tokamakia toimimaan kunnolla.

    – pwrdwnsys on rust-lang.org

    rehellisesti sanottuna en usko ylevän vertaavan sitä toiminnallisuutta, mitä atomissa on ruosteelle.

    starttinopeus on hidas, mutta kaikki muu on täysin hyväksyttävää.

    ja minä suosin linter ja linter-rust paketteja, koska ne näyttävät, että kokoat virheet ja varoitukset riviin ½ sekunnin kuluttua, kun painat ctrl+S!

    — /u/flying-sheep on /r/rust

    Eclipse Corrosion (Eclipse IDE for Rust Developers)

    Eclipse IDE for Rust developers (credit Corrosion on github)
    • hyödyllistä, jos olet jo tottunut pimennykseen
    • integraatio ruosteen kielen palvelimeen ja Cargoon
    • täydennysavustaja
    • dokumentaatiohieronta
    • diagnostiikka
    • alustus
    • muuttujien näkymä
    • GDB-konsoli
    • ilmaisun suoritus
    • New Project Wizard
    • Toolchain Management
    • Toml-tiedostonmuokkaustuki
    • Export Crate Wizard
    • Rust Language Server Preferences
    • Dark Theme
    • Ongelmanäkymä
    • Git-integraatio (saatavilla vain korroosiopaketissa)
    • open-source (free)

    siinä on myös vienti Crate -, execution-ja debug support (over GDB) – integraatio; niitä ei tarjoa RLS vaan suora integraatio cargo-ja rust-GDB: hen

    – / u / mickael_istria on / r / rust