Articles

care este cel mai bun IDE pentru dezvoltarea în Rust?

Tremaine Eto
Tremaine Eto

urmați

13 Mai, 2019 · 12 min citire

ce idei de rugină ar trebui să alegeți?

Rust este, potrivit Stack Overflow Insights, cel mai „iubit” limbaj din 2018, cu un rating incredibil de 78,9% — Rustaceenii de acolo sunt în mod clar fericiți în medie. Cu toate acestea, Rust nu a apărut în secțiunea „Cele mai populare tehnologii” din același sondaj, indicând faptul că numărul total de utilizatori este încă destul de mic.

nu ar trebui să fie o surpriză după sondaj, atunci că mulți oameni se grăbesc să-l încerce, iar când vine acel moment, apare inevitabil întrebarea: ce IDE ar trebui să folosiți pentru a vă dezvolta în Rust?

începând de astăzi, nu există un monopol clar asupra IDE-urilor de rugină și, prin urmare, niciun câștigător clar. Oricât de mult se simte că poate face confuz, acest lucru poate fi de fapt un lucru bun, deoarece există o varietate de opțiuni care se vor reduce în cele din urmă la preferința utilizatorului.

Acest articol va lua o mulțime de opinii pe internet și va încerca să lumineze atât argumentele pro, cât și contra.

IntelliJ IDEA cu IntelliJ Rust plugin

Rust cu IntelliJ IDEA (credit matklad pe Giphy)

puteți găsi linkul de instalare aici pe site-ul IntelliJ Rust.

  • Open-source
  • scris de unii angajați JetBrains și voluntari
  • nu depanare

editare (5/28/19): potrivit cititorului Chris Vest:

se poate face depanare atunci când este instalat în CLion.

  • gratuit pentru ediția comunitară, licență pentru versiunea premium
  • capacități de refactorizare
  • sprijină adăugarea de noi module
  • sprijină stubbing din implementări trăsătură

setul de caracteristici este uimitor, dar mi se pare lent… are cineva altceva au această problemă? Uneori durează câteva minute pentru ca sintaxa și evidențierea erorilor să se actualizeze după ce introduc un cod nou.

—/u /NeuroXc on/R/rust

am folosit ambele vim cu rugina.vim plugin și Intellij cu pluginul Rust. Intellij are cea mai completă experiență ide pe care am încercat-o și cele mai bune completări, dar încă prefer vim.

—/u /Zethra on/R/rust

folosesc Intellij cu pluginul Rust. Folosesc deja Jetbrains IDEs foarte mult pentru munca uni, așa că a avut sens să rămânem la asta.

—/u /FlourineWizard on/R/rust

am fost evitarea intellij din cauza lipsei de depanator (funcționează numai în clion).

la încercarea intellij, finalizarea a funcționat destul de bine imediat (după indexul inițial). Cu toate acestea, apoi am început să alerg în lucruri ciudate. Nu am nimic de configurare de noapte, cu toate acestea se completează lucrurile în noapte. Se pare că se conformează în IDE, până când se execută o construcție, atunci nu. nu-mi pot da seama cum se obține sau cum se dezactivează.

Intellij are tone de refactori pe care alții nu le au. are lucruri pe care le-am pierdut în codul vs pentru care am cereri de caracteristici.

cu toate acestea, ea are alte probleme cum ar fi se va spune la întâmplare lucruri nu compila care fac. Se va spune metoda lipsă. Cu toate acestea, dacă ștergeți linia, va veni să o completeze, apoi să spună din nou metoda lipsă.apoi, doar o notă laterală, intellij este de departe cel mai greu IDE greutate. Abia rulează pe laptopul meu (care este într-adevăr vechi în toată corectitudinea și probabil că ar trebui să iau altul), unde celelalte „funcționează” bine (orice doriți să definiți asta pentru eclipse, iar codul vs a fost grozav până când am făcut orice pentru a rupe finalizarea).

cred că răspunsul real este că nu suntem încă IDE.

— /u/r3vj4m3z on /R/rust

IntelliJ Rust plugin este foarte bun. Am folosit vim + racer+ycm pentru un timp, și îmi place Vim, dar mai ales pentru proiecte mari, de producție cu o mulțime de module și ierarhii profunde, IntelliJ este doar mult mai productiv (chestii cum ar fi redenumire Struct câmp funcționează pe întreaga bază de cod)

— /u/neuronsguy on /R/rust

a fost cu siguranță extrem de ușor de înțeles, dar umflarea IJ în sine M-a alungat.

— /u/Cldfire on /R/rust

funcționează foarte bine și are o dezvoltare activă.
cu siguranta il recomand daca puteti economisi memoria RAM si utilizarea procesorului.

— chimmihc on rust-lang.org

EDIT 6/24/19: cititorul Joseph Noose a avut următoarele de adăugat:

pentru mine marele plus al IntelliJ peste VSS a fost completarea let, că uneori atunci când se ocupă de părțile 3rd devine mai rapid și mai ușor pentru a vedea ce obiect este returnat. Am găsit cu unele dintre lucrurile diesel a fost deosebit de util, deoarece obiectele sunt destul de lungi

CLion cu IntelliJ Rust plugin

o altă opțiune cu JetBrains, CLion este un C/C++ IDE care poate sprijini, de asemenea, IntelliJ Rust plugin.

  • permite utilizarea sistemului de construcție a încărcăturii
  • suport pentru depanarea aplicațiilor Rust — spre deosebire de IntelliJ IDEA
  • necesită licență comercială (sau gratuită cu .adresa de e-mail edu)

Clion cu pluginul Rust pentru intelliJ este probabil la fel de aproape de un IDE specific Rust care există; cu toate acestea, proiectul Eclipse poate face unul, este în prezent discutat.

— / u / steveklabnik1 on / R / rust

depanare suport în CLion este excelent! Nu primește prea multe laude. Valorile runtime Inlined în codul de la breakpoints este frumos (1), așa este inspectorul de depanare (2), și, stabilirea punctelor de întrerupere condiționate… foarte confortabil de a face.
vezi: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • Open-source (gratuit)
  • suport de marfă încorporat
  • finalizarea codului
  • Salt la definiție, definiție peek, găsiți toate referințele, căutarea simbolurilor
  • tipuri și documentație despre hover
  • formatarea Codului
  • Refactorizare (redenumire, deglob)
  • eroare Squiggles și se aplică sugestii de la erori
  • fragmente
  • construi sarcini
  • powered by rust language server (RLS)
  • format pe Salvare, dacă se dorește

vscode are suport bun server de limbă, ceea ce înseamnă noile caracteristici RLS funcționează foarte bine în ea. Este mai mult o experiență tradițională IDE, dar prefer să folosesc o sesiune tmux ca IDE cu Vim ca editor de cod.

— /u/IDidntChooseUsername on /R/rust

+1 Pentru Vscode + extensie. De ce? Unii oameni vor doar să vadă cum arde lumea. Dar serios. VSCode este un editor foarte, foarte bun.

îl folosesc pentru C, C++, C#, Javascript, Erlang, Prolog, Lisp, F# și acum Rust.

nu emacs pinky.

doar funcționează chiar din cutie.

comanda pallete este, de asemenea, destul de baller.

au înlocuit recent sistemul grep cu versiunea rust și au obținut o creștere masivă a performanței. Sunt literalmente aici din cauza notelor de lansare VSCode de la aproximativ o săptămână sau 2 în urmă.

integrare Git solidă.

platformă încrucișată.

am menționat deja că îmi place să privesc lumea arzând?

— on/R/rust

folosesc codul VS Cu extensia rust pentru toate codificările mele rust. M-a servit foarte bine până acum, tot ceea ce nu pot face cu combinațiile de taste furnizate de extensie se poate face cu consola integrată, așa că nu am nicio reclamație.

—/u /YourGamerMom on/R/rust

aș recomanda VSCode, pluginul Rust oferă completare automată, evidențierea sintaxei și alte caracteristici frumoase. Dar, mai presus de toate, există un plugin frumos LLDB care permite depanarea vizuală, care este un avantaj față de alte IDE pe care le-am încercat.

și este cross-platform.

— mczarnek on rust-lang.org

după ce am petrecut peste 3 săptămâni fiecare folosind intellij-rust, vscode-rust și diverse pluginuri diferite pentru suportul rust în Sublime Text 3, pot spune cu încredere că cea mai bună experiență pe care am avut-o până în acest moment a fost cu pluginul(pluginurile) vscode … Vscode lovește zona perfectă pentru mine; a fost instantaneu să mă ridic și să alerg cu (din moment ce aveam deja instrumentele necesare cargo install ‘ D și componenta rust src adăugată prin rustup, totul a funcționat din cutie) și menține în continuare experiența editorului. Singurul lucru pe care nu am reușit să-l lucrez este interfața LLDB, dar asta se datorează utilizării mele de WSL, nu vina pluginului în sine.

TL:DR, recomand vscode.

—/u /Cldfire on/R/rust

(Neo)vim cu plugin-uri Rust (cum ar fi rust.vim, vim.cal de curse)

exemplu de rugină cu vim (credit jovansonlee Cesar pe GitHub)

într-adevăr folosit pentru a vim și nu se poate abate de la diferitele sale comenzi de manipulare a textului? Nu vă temeți — o mulțime de oameni folosesc Vim atunci când se dezvoltă în Rust.

puteți merge cu o instalare vim de vanilie simplă sau puteți utiliza alte arome, cum ar fi Neovim.

Neovim

  • Open-source
  • comunitate-driven
  • acces la executarea de locuri de muncă/sarcini asincron în vim (H/T Dhruva Sagar pe StackOverflow)

indiferent de aroma de Vim utilizați, puteți pârghie plug-in-uri specifice ruginii.

rugina.vim

  • detectarea fișierelor Rust
  • evidențierea sintaxei
  • formatare
  • integrare Sintastică
  • necesită Vim 8 sau mai mare pentru funcționalitate completă

vim.racer

  • permite Vim să utilizeze Racer pentru completarea Codului Rust și navigare

Vim, și este cam dureros tbh. Sunt deschis la sugestii. Partea de manipulare a textului Vim este incredibil. Este doar minte suflare. Dar restul Vim este destul de sh*t, și cu tipurile de erori complexe pe care le obțineți în Rust este destul de dureros să treceți la terminal.

vreau să trec la VSCode sau similar, dar lipsa comenzilor de editare Vim este cu adevărat puternică.

—/u /jl2352 on/R/rust

cu suficiente pluginuri (lucruri precum serverele de limbă etc.) puteți face restul (neo)vim într-adevăr utilizabil, imo.

—/u /ashfordneil on/R/rust

am folosit ambele vim cu rugina.vim plugin și Intellij cu pluginul Rust. Intellij are cea mai completă experiență ide pe care am încercat-o și cele mai bune completări, dar încă prefer vim. Aș recomanda să încercați setările menționate pehttps://areweideyet.com/ și să vedeți ce funcționează cel mai bine pentru dvs.

—/u /Zethra on/R/rust

interesant este că unii puriști nu folosesc deloc pluginuri Rust!

Vim cu auto complet încorporat (+ autocomplpop). Fugar. Asta e practic … nu mai multe plugin-uri de lux! Și da, lucrez la codebases mari cu această configurare!

— /u/musicmatze on /R/rust

Emacs

Emacs-racer de racer-rust (Recordnotfound credit)

mă simt ca și cum ai de gând să includă vi(m), ar trebui, probabil, cel puțin să dea Emacs o mențiune.

adăugați la faptul că există un proiect de portare a emacs la rugină. Îl folosesc ca înlocuitor drop-in pentru emacs pe mașinile mele linux.

notă: Eu nu folosesc de fapt emacs pentru orice dezvoltare rugina grele. Trec prin călătoria mea de învățare rust folosind IntelliJ IDEA.

— Chris Woods în comentariile acestei postări

  • Cu Racer, oferă completarea Codului
  • are suport Cargo (manager de pachete) cu combinații de taste
  • are configurație rust-Lang pentru programare specifică Rust în Emacs
  • acceptă rustfmt cu rust-lang
  • gratuit

ar trebui să utilizați Melpa șiuse-package pentru a instala pachete în Emacs.

Configurarea Rust pentru a utiliza RLS pe emacs este un pic dificilă pentru un începător. Iată configurația mea RLS dacă sunteți interesat: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.el și https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

— /u/CSRaghunandan on /R/rust

eu spun acest lucru ca cineva încă de învățare rust, și nu ca o recomandare pentru persoanele care aduc contribuții reale la codul de producție.

eu folosesc Emacs în modul Rust fără alte bibelouri.

dacă codul meu este suficient de complicat încât am nevoie de un IDE pentru a-l urma, este suficient de complicat încât altcineva nu va putea să-l urmeze cu acel ajutor. Și dacă am nevoie de completare automată pentru a ști ce funcție vreau să sun și semnătura de tip, atunci probabil că nu am nicio afacere care să o numească fără a da docs cel puțin o dată oricum, deci nu este nici o problemă suplimentară să o căutați.

—/u /bxtk on/R/rust

sublim cu rugina îmbunătățită

sublim cu rugina îmbunătățită (credit rust-lang via packagecontrol.io)
  • Open-source (gratuit)
  • du-te la orice
  • du-te la definiție
  • editare Split
  • profil scăzut

funcționează destul de bine, dar ar putea fi un pic mai mult ușor de utilizat. Cu toate acestea, aceasta este mai mult o problemă sublimă decât o problemă de plugin.

— /u/boooooomba on /R/rust

am încercat, dar am ratat instrumente de refactorizare, un terminal integrat bun, și de tip pe hover în comparație cu vscode + Rust plugin.

— /u/Foo-Jin on /R/rust

numai supărare este că nu ia în considerare teste, și, prin urmare, nu prinde erori de compilare în ele, și scuipă o mulțime de avertismente cu privire la funcțiile neutilizate. (Teste de scriere mai întâi pentru lib meu)

—/u /Rawler82 on/R/rust

nu are cele mai bune caracteristici stabilite, dar este rapid și mic (scăzut pe RAM și spațiu pe disc).

— /u/razrfalcon on /R/rust

situația pluginului Sublime Text 3 este, cel puțin pentru mine, destul de vagă; în timp ce am reușit să fac lucrurile să funcționeze mai ales pe macOS, nu am reușit niciodată să obțin completarea automată de lucru pe Windows 10 (în plus față timp).

— /u/Cldfire on /R/rust

unii oameni nu folosesc plug-in-uri suplimentare cu Rust Enhanced.

folosesc text sublim pentru orice. În ceea ce privește clădirea, păstrez o fereastră de terminal deschisă în partea de jos a ecranului meu cu cargo watch rulând.

nu am pluginuri specifice Rust, dar având în vedere toate recomandările de aici, cred că voi încerca pluginul îmbunătățit Rust mai târziu.

— /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
  • Format fișier cu rustfmt (ctrl-shift-c sau cmd-shift-c de asemenea, în meniul contextual)
  • format pe Salvare (dezactivat în mod implicit, a se vedea atom-ide-ui Setări)

limba-rust

  • adaugă evidențierea sintaxei și fragmente de Rust fișiere în atom

Linter-rust

  • linting dvs. Rust-fișiere în atom, folosind rustc și cargo
  • fișierele vor fi verificate atunci când deschideți sau salvați-le

(tokamak)

  • sintaxa evidențierea
  • crearea proiectului cargo
  • suport pentru cargo proiecte
  • finalizarea codului cu Racer
  • gestionarea lanțurilor de instrumente Rust
  • Linting Cod
  • configurare specifică proiectului
  • formatarea Codului
  • mergeți la definiție
  • Hover pentru documentație
  • găsiți referințe
  • schiță pentru fișier și proiect
  • Completare automată out-of-the-box
  • evidențierea Codului

racer

  • furnizarea de completare cod inteligent și „găsi definiție”

sunt folosind limba-Rust, Linter-Rust, Racer (AutoComplete) și Atom-înfrumuseța pe o instalație rustup. Configurarea căilor a durat ceva timp, dar funcționează destul de bine. De asemenea, am încercat să trec la Tokamak cu ceva timp în urmă, dar asta nu a funcționat pentru mine.

rulez codul meu rust într-o fereastră separată zsh, care este acoperită cu o parte de un addon Gnome și întotdeauna vizibilă (nu mă simt gata să merg i3). Cu un arbore de Fișiere, o vizualizare de cod, o minimap și o fereastră de terminal, există patru coloane în total și se simte un pic înghesuit uneori. Când nu am un monitor mare atașat la laptopul meu, rulez atom pe tot ecranul.

— roSievers pe rust-lang.org

am folosit Atom pentru rugină timp de aproximativ 9 luni, după ce am folosit anterior Atom pentru toată dezvoltarea mea Python. Am făcut la fel ca @roSievers de mai sus, dar am găsit probleme recurente pe macOS (în special cu variabilele de mediu care nu sunt trecute fără agitație). Nu am reușit niciodată să fac Tokamak să funcționeze corect.

— pwrdwnsys pe rust-lang.org

sincer nu cred că sublime se compară cu funcționalitatea din atom pentru rugină.

viteza de pornire este lentă, dar orice altceva este total acceptabil.

și eu preferlinter șilinter-rust pachete, așa cum vă va arăta compilați erori și avertismente inline sec după ce apăsați ctrl+S!

— /u/oi zburătoare pe /R/rugină

coroziune eclipsă (Eclipse IDE pentru dezvoltatorii de rugină)

Eclipse IDE pentru dezvoltatorii Rust (coroziune de credit pe Github)

  • util dacă sunteți deja folosit pentru a eclipsa
  • integrarea cu serverul limba Rust și de marfă
  • asistență la finalizare
  • documentație hover
  • diagnosticare
  • formatare
  • variabile vezi
  • consola GDB
  • Breakpoints
  • executarea Expresie
  • nou proiect Wizard
  • Toolchain Management
  • toml fișier de editare suport
  • Export Crate Wizard
  • Rust limba Server Preferințe
  • proiect schiță
  • Tema Întuneric
  • probleme Vezi
  • integrare git (disponibil numai în pachetul de coroziune)
  • open-source (gratuit)

De asemenea, are export ca ladă, execuție și depanare suport (peste GDB) integrare; acestea nu sunt furnizate de RLS, ci prin integrarea directă cu cargo și rust-gdb

— /u/mickael_istria on /R/rust