Articles

hvad er den bedste IDE til udvikling i Rust?

Tremaine Eto
Tremaine Eto

Følg

May 13, 2019 · 12 min læse

Som Rust IDEER skal du vælge?

Rust er ifølge Stack Overløbsindsigt det mest “elskede” sprog i 2018 med en utrolig 78.9% rating — Rustaceans derude er klart glade i gennemsnit. Rust dukkede dog ikke op i den samme undersøgelses sektion “mest populære teknologier”, hvilket indikerer, at mængden af samlede brugere stadig er ret lille.

det bør ikke komme som nogen overraskelse efter undersøgelsen, at mange mennesker skynder sig at prøve det, og når den tid kommer, opstår spørgsmålet uundgåeligt: hvilken IDE skal du bruge til at udvikle sig i Rust?

Fra I dag er der ikke noget klart monopol på Rust ide ‘ er og dermed ingen klar vinder. Så meget som det føles som det kan gøre det forvirrende, dette kan faktisk være en god ting, da der er en række valg, der i sidste ende koges ned til brugerpræference.

Denne artikel vil tage mange internet meninger og forsøge at belyse både fordele og ulemper.

IntelliJ IDEA med IntelliJ Rust plugin

rust med IntelliJ IDEA (kredit matklad på Giphy)

Du kan finde installationslinket her på IntelliJ rust hjemmeside.

  • Open source
  • skrevet af nogle JetBrains medarbejdere og frivillige
  • ingen debugging

Rediger (5/28/19): ifølge læseren Chris Vest:

det kan gøre debugging, når det er installeret i CLion.

  • gratis til community edition, licens til premium-version
  • Refactoring kapaciteter
  • understøtter tilføjelse af nye moduler
  • understøtter stubbing out trait implementeringer

funktionssættet er fantastisk, men jeg finder det langsomt… er der andre, der har dette problem? Det tager nogle gange minutter for syntaks og fejl fremhævning at opdatere, når jeg skriver en ny kode.

— /u/Neuroksc on /r/rust

Jeg har brugt begge vim med rust.Vim plugin og Intellij med det Rust plugin. Intellij har den mest komplette ide-oplevelse, jeg har prøvet, og de bedste færdiggørelser, men jeg foretrækker stadig vim.

— /u/Sethra on /r/rust

Jeg bruger Intellij med Rust plugin. Jeg bruger allerede Jetbrains IDEs meget til uni-arbejde, så det var fornuftigt at holde fast ved det.

— /u/Flourinj på /R/rust

Jeg havde undgået intellij på grund af manglen på debugger (fungerer kun i clion).

Ved at prøve intellij arbejdede færdiggørelsen slags stor straks (efter det oprindelige indeks). Men så begyndte jeg at løbe ind i ulige ting. Jeg har ikke noget setup om natten, men det fuldender tingene om natten. Jeg kan ikke finde ud af, hvordan det får dem, eller hvordan man deaktiverer det. det har ting, jeg savnede i vs-kode, som jeg har funktionsanmodninger til.

det har dog andre problemer, som det tilfældigt vil sige, at ting ikke kompilerer, der gør. Det vil sige manglende metode. Men hvis du sletter linjen, vil det komme fuldføre det, så igen sige manglende metode.

så bare en side note, intellij er langt den mest tunge vægt IDE. Det kører næppe på min bærbare computer (som er rigtig gammel i al retfærdighed, og jeg burde nok få en anden), hvor de andre “arbejder” fint (uanset hvad du vil definere det for eclipse, og vs code var fantastisk, indtil jeg gjorde hvad som helst for at bryde færdiggørelsen).

Jeg tror, det rigtige svar er, at vi ikke er IDE endnu.

— /u/r3vj4m3s on /R/rust

IntelliJ rust plugin er virkelig god. Jeg brugte Vim+racer+ycm i et stykke tid, og jeg elsker Vim, men især for store produktionsprojekter med masser af moduler og dybe hierarkier er IntelliJ bare meget mere produktiv (ting som Omdøb struct felt fungerer på tværs af hele kodebasen)

— /u/neuronsguy on /r/rust

IntelliJ-Rust var bestemt ekstremt let at komme i gang med, men opblussen af IJ selv kørte mig væk.

— /u/Cldfire on /r/rust

det fungerer meget godt og har aktiv udvikling.
Jeg anbefaler det bestemt, hvis du kan spare RAM og CPU-brug.

— chimmihc på rust-lang.org

EDIT 6/24/19: læser Joseph Noose havde følgende at tilføje:

for mig var det store plus af IntelliJ over VSS let completions, at nogle gange når man beskæftiger sig med 3.parter, bliver det hurtigere og lettere at se, hvilket objekt der returneres. Jeg fandt med nogle af diesel stuff Det var især nyttigt, da objekterne er temmelig lange

CLion med IntelliJ Rust plugin

en anden mulighed med JetBrains, CLion er en C/C++ IDE, der også kan understøtte IntelliJ Rust plugin.

  • tillader brug af Cargo build system
  • støtte til debugging Rust applikationer — i modsætning IntelliJ IDEA
  • kræver kommerciel licens (eller gratis med .edu e-mail-adresse)

Clion med Rust-plugin til intelliJ er sandsynligvis så tæt på en Rustspecifik IDE, der findes; Eclipse-projektet kan dog lave en, det diskuteres i øjeblikket.

– / u / steveklabnik1 on/r/rust

Debugging support I CLion er fremragende! Får ikke nær nok ros. Indbyggede runtime værdier i kode ved breakpoints er rart (1), så er debugging inspector (2), og indstilling af betingede breakpoints… meget behageligt at gøre.
Se: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • Open source (gratis)
  • indbygget Cargo support
  • kode færdiggørelse
  • gå til definition, peek definition, find alle referencer, symbol søgning
  • typer og dokumentation på hover
  • Kodeformatering
  • Refactoring (Omdøb, deglob)
  • fejl vrider og anvende forslag fra fejl
  • snippets
  • byg opgaver
  • drevet af rust language server (RLS)
  • format på Gem, hvis det ønskes

VSCode har god sprogserver support, hvilket betyder, at nye RLS-funktioner fungerer meget godt i det. Det er mere en traditionel IDE-oplevelse, men jeg foretrækker at bruge en session som min IDE med Vim som min kodeditor.

— /u/IDidntChooseUsername on /R/rust

+1 til VSCode + udvidelse. Hvorfor? Nogle mennesker vil bare se verden brænde. Men alvorligt. VSCode er en rigtig, rigtig god redaktør.

Jeg bruger det til C, C++, C#, Javascript, Erlang, Prolog, Lisp, F# og nu Rust.

ingen emacs pinky.

fungerer bare lige ud af kassen.

kommando pallete er også temmelig baller.

de erstattede deres grep-system med rust-versionen for nylig og fik massiv ydelsesforøgelse. Jeg er bogstaveligt talt her på grund af VSCode release notes fra omkring en uge eller 2 siden.

Solid Git integration.

Cross platform.

nævnte jeg allerede, at jeg kan lide at se verden brænde?

— on /r/rust

Jeg bruger VS-kode med rustforlængelsen til al min rustkodning. Det har tjent mig meget godt indtil videre, alt hvad jeg ikke kan gøre med de tastekombinationer, der leveres af udvidelsen, kan gøres med den integrerede konsol, så jeg har virkelig ingen klager.

— /u/YourGamerMom on /R/rust

Jeg vil anbefale VSCode, Rust plugin giver autofuldførelse, syntaksfremhævning, og nogle andre gode funktioner. Men frem for alt er der et dejligt lldb-plugin, der tillader visuel fejlfinding, hvilket er en fordel i forhold til andre ide ‘ er, jeg har prøvet.

og det er cross platform.

rust-lang.org

efter at have brugt 3+ uger hver ved hjælp af intellij-rust, vscode-rust og forskellige forskellige plugins til ruststøtte i Sublim tekst 3, kan jeg med sikkerhed sige, at den bedste oplevelse, jeg har haft indtil dette tidspunkt, var med vscode-plugin(erne) … Vscode rammer det perfekte område for mig; det var øjeblikkeligt at komme i gang med (da jeg allerede havde de nødvendige værktøjer cargo install ‘ D og rust src-komponenten tilføjet via rustup, alt fungerede ud af kassen) og opretholder stadig Redaktørens oplevelse. Det eneste, jeg ikke har været i stand til at arbejde, er lldb-frontenden, men det skyldes min brug af VSL, ikke selve pluginets skyld.

TL: DR, jeg anbefaler vscode.

— /u/Cldfire on /r/rust

(Neo)vim med rust plugins (som rust.vim, vim.racer)

eksempel på rust med vim (credit jovansonlee Cesar on GitHub)

virkelig brugt til Vim og kan ikke afvige fra sine forskellige tekstmanipulationskommandoer? Vær ikke bange-mange mennesker bruger Vim, når de udvikler sig i Rust.

Du kan gå med en almindelig vanilla vim installation, eller du kan bruge andre varianter såsom Neovim.

Neovim

  • Open source
  • Community-drevet
  • adgang til udførelse af job/opgaver asynkront i vim (H/T Dhruva Sagar på Stackoverstrøm)

uanset hvilken smag Vim du bruger, kan du udnytte Rustspecifikke plug-ins.

rust.Vim

  • rust file detection
  • syntaksfremhævning
  • formatering
  • Syntastisk integration
  • kræver Vim 8 eller højere for fuld funktionalitet

vim.racer

  • tillader Vim at bruge Racer til færdiggørelse af Rustkode og navigation

vim, og det er lidt smertefuldt tbh. Jeg er åben for forslag. Tekstmanipulationssiden af Vim er utrolig. Det er bare sind blæser. Men resten af vim er temmelig sh*t, og med de typer komplekse fejl, du får i Rust, er det ret smertefuldt at skifte over til terminalen.

Jeg vil skifte til VSCode eller lignende, men manglen på Vim-redigeringskommandoer er virkelig skarp.

— /u/jl2352 on /R/rust

Med nok plugins (ting som sprogservere osv.) kan du gøre resten af (neo)vim virkelig brugbar, imo.

— /u/ashfordneil on /r/rust

Jeg har brugt begge vim med rust.Vim plugin og Intellij med det Rust plugin. Intellij har den mest komplette ide-oplevelse, jeg har prøvet, og de bedste færdiggørelser, men jeg foretrækker stadig vim. Jeg vil anbefale at prøve de opsætninger, der er nævnt på https://areweideyet.com/ og se, hvad der fungerer bedst for dig.

— /u/Sethra on /r/rust

interessant nok bruger nogle purister slet ikke rust-plugins!

Vim med indbygget auto komplet (+ autofuldførelse). Diffus. Det er dybest set det … ikke flere smarte plugins! Og ja, jeg arbejder på store kodebaser med denne opsætning!

— /u/musicmatse on /R/rust

Emacs

emacs-racer by racer-rust (Credit recordnotfound)

Jeg har lyst til, at hvis du vil inkludere vi(credit recordnotfound)

Tilføj til, at der er et projekt til port emacs til rust. Jeg bruger det som en drop-in erstatning for emacs på mine maskiner.

Bemærk: Jeg bruger faktisk ikke emacs til nogen tung rustudvikling. Jeg går gennem min rust learning rejse ved hjælp af IntelliJ IDEA.

— Chris skov i dette indlæg kommentarer

  • med Racer, tilbyder kode-færdiggørelse
  • har fragt (pakkehåndtering) support med tastekombinationer
  • har rust-lang konfiguration til Rustspecifik programmering i Emacs
  • understøtter rustfmt med rust-lang
  • gratis

Du skal bruge Melpa og use-package for at installere pakker i Emacs.

konfiguration af Rust til at bruge RLS på emacs er lidt vanskelig for en nybegynder. Her er min RLS— konfiguration, hvis du er interesseret: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.el og https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

– /u/CSRaghunandan on /R/rust

Jeg siger dette som en person, der stadig lærer rust, og ikke som en anbefaling til folk, der yder reelle bidrag til produktionskoden.

Jeg bruger Emacs i Rust-tilstand uden andre dikkedarer.

Hvis min kode er kompliceret nok, at jeg har brug for en IDE til at følge den, er det kompliceret nok, at en anden ikke kan følge den med den hjælp. Og hvis jeg har brug for Autofuldførelse for at vide, hvilken funktion jeg vil ringe til og dens typesignatur, har jeg sandsynligvis ikke nogen forretning, der kalder det uden at give dokumenterne mindst en gang over alligevel, så det er ingen ekstra problemer at bare slå det op.

— //u bxtk på /r/rust

Sublime med Rust Øget

Sublime med Rust Udvidet (kredit rust-lang, via packagecontrol.io)
  • Open source (gratis)
  • Goto noget
  • Goto definition
  • Split redigering
  • Lav profil

Det virker ganske godt, men det kunne være en smule mere brugervenlig. Dette er dog mere et sublimt problem end et plugin-problem.

— /u/booooomba on /r/rust

Jeg prøvede det, men jeg savnede refactoring værktøjer, en god integreret terminal, og skriv på hover sammenlignet med VSCode + Rust plugin.

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

kun irritation er, at den ikke overvejer test og derfor ikke fanger kompileringsfejl i dem og spyder mange advarsler om ubrugte funktioner. (Skriver test først for min lib)

— /u/Rå82 on /r/rust

Det har ikke de bedste funktioner, men det er hurtigt og lille (lavt RAM og diskplads).

—/u /r/rust

Sublim tekst 3 ‘ s plugin-situation er i det mindste for mig temmelig uklar; mens jeg var i stand til at få ting, der for det meste fungerer på macOS, var jeg aldrig i stand til at arbejde autofuldførelse på Vinduer 10 (ud over den temmelig lange og smertefulde opsætning af tid).

— /u/Cldfire on /r/rust

Nogle mennesker bruger ikke yderligere plug-ins med Rust forbedret.

Jeg bruger Sublim tekst til alt. Så vidt bygningen går, holder jeg bare et terminalvindue åbent nederst på min skærm med cargo watch kører.

Jeg har ikke nogen Rustspecifikke plugins, men i betragtning af alle anbefalingerne her tror jeg, jeg vil prøve Rust Enhanced plugin senere.

— /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 fil med rustfmt (ctrl-shift-c eller cmd-shift-c også i kontekstmenu)
  • Format på gem (deaktiveret som standard, se atom-ide-ui indstillinger)

sprog-rust

  • tilføjer syntaksfremhævning og uddrag til rust-filer i atom

linter-rust

  • linting af dine rust-filer i atom ved hjælp af rustc og Cargo
  • filer kontrolleres, når du åbner eller gemmer dem

Karri (tokamak)

  • syntaksfremhævning
  • oprettelse af lastprojekt
  • støtte til fragt projektspecifik konfiguration
  • kodeformatering
  • Hover for dokumentation
  • find referencer
  • oversigt over filen og projektet
  • autofuldførelse uden for boksen
  • kode fremhævning

racer

  • giver intelligent kode færdiggørelse og “find definition”

Jeg bruger sprog-rust, Linter-rust, racer (autofuldførelse) og Atom-forskønne på en rustup installation. Opsætning af stierne tog et stykke tid, men det fungerer ret godt. Jeg forsøgte også at skifte til Tokamak for et stykke tid siden, men det fungerede ikke for mig.

Jeg kører min rustkode i et separat vindue, der er flisebelagt siden af nogle Gnome addon og altid synlige (jeg føler mig ikke klar til at gå i3). Med et filtræ, en kodevisning, et minimap og et terminalvindue er der i alt fire kolonner, og det føles til tider lidt trangt. Når jeg ikke har en stor skærm knyttet til min bærbare computer, kører jeg atom i fuldskærm.

— roSievers på rust-lang.org

Jeg brugte Atom til Rust i cirka 9 måneder, efter at jeg tidligere havde brugt Atom til al min Python-udvikling. Jeg gjorde meget det samme som @roSievers ovenfor, men jeg fandt tilbagevendende problemer på macOS (især med miljøvariabler, der ikke blev passeret uden ståhej). Jeg var aldrig i stand til at få Tokamak til at køre ordentligt.

— rust-lang.org

ærligt tror jeg ikke sublime sammenligner med funktionaliteten der er i atom for rust.

starthastigheden er langsom, men alt andet er helt acceptabelt.

og jeg foretrækkerlinter oglinter-rust pakkerne, da de viser dig kompilere fejl og advarsler inline Kurt sec, når du trykker på ctrl+S!

— /u/fører-får på /r/rust

Eclipse Korrosion (Eclipse IDE for Rust Udviklere)

Eclipse IDE for Rust Udviklere (kredit Korrosion på GitHub)
  • Nyttigt, hvis du allerede er vant til at Overskygge
  • Integration med Rust Sprog Server og Fragt
  • Afslutning Hjælpe
  • Dokumentation Hover
  • Diagnostik
  • Formatering
  • variable Vis
  • GDB Console
  • Breakpoints
  • ekspression udførelse
  • ny Projektguide
  • toolchain Management
  • toml filredigering support
  • eksport Crate guiden
  • Rust sprog Server præferencer
  • projektoversigt
  • mørkt tema
  • problemer Vis
  • Git integration (kun tilgængelig i korrosionspakke)
  • open source (gratis)

det har også eksport som kasse, udførelse og debug support (over gdb) integration; disse leveres ikke af RLS, men ved direkte integration med cargo og rust-gdb

– / u / mickael_istria on / r / rust