Articles

Wat is de beste IDE voor het ontwikkelen van roest?

Tremaine Eto
Tremaine Eto

Volgen

13 Mei 2019 · 12 min lezen

Die Roest IDEEËN moet je kiezen?

Rust is, volgens Stack Overflow Insights, de meest” geliefde ” taal van 2018 met een ongelooflijke 78,9% rating — Rustaceans die er zijn duidelijk gelukkig gemiddeld. Echter, Rust verscheen niet in dezelfde enquête ‘ s “meest populaire technologieën” sectie, wat aangeeft dat de hoeveelheid van de totale gebruikers is nog steeds vrij klein.

na het onderzoek zal het dan niet als een verrassing komen dat veel mensen zich haasten om het uit te proberen, en als die tijd komt, rijst onvermijdelijk de vraag: welke IDE moet je gebruiken om te ontwikkelen in Rust?

sinds vandaag is er geen duidelijk monopolie op Rust IDEs en dus geen duidelijke winnaar. Zo veel als het voelt alsof dat het verwarrend kan maken, dit kan eigenlijk een goede zaak zijn als er een verscheidenheid aan keuzes die uiteindelijk neer zal komen op de voorkeur van de gebruiker.

Dit artikel zal veel internet meningen nemen en proberen zowel de voor-als nadelen te verhelderen.

IntelliJ IDEA met IntelliJ Roest plugin

Rust met IntelliJ IDEA (credit matklad op GIPHY)

Je vindt de installatie link hier op de IntelliJ Roest website.

  • Open-source
  • geschreven door sommige JetBrains medewerkers en vrijwilligers
  • geen debugging

EDIT (5/28/19): volgens de lezer Chris Vest:

Het kan debuggen doen wanneer geïnstalleerd in CLion.

  • Free for community edition, license for premium version
  • Refactoring capabilities
  • ondersteunt het toevoegen van nieuwe modules
  • ondersteunt Stubben out trait implementaties

De feature set is verbazingwekkend, maar ik vind het traag… dit probleem? Het duurt soms minuten voor syntaxis en foutmarkering bij te werken nadat ik wat nieuwe code typ.

— /u/NeuroXc on /r/rust

Ik heb beide vim gebruikt met de rust.vim plugin en Intellij met zijn Rust plugin. Intellij heeft de meest complete IDE ervaring die ik heb geprobeerd en de beste completies, maar ik geef nog steeds de voorkeur vim.

— /u/Zethra on /r/rust

Ik gebruik Intellij met de Rust plugin. Ik ben al met behulp van Jetbrains IDEs veel voor uni werk, dus het was logisch om vast te houden aan dat.

— /u/FlourineWizard on /r/rust

Ik had intellij vermeden vanwege het gebrek aan debugger (werkt alleen in clion).

bij het uitproberen van intellij, werkte de voltooiing onmiddellijk (na de initiële index). Maar toen begon ik vreemde dingen tegen te komen. Ik heb geen nachtelijke iets setup, maar het voltooit dingen in nachtelijke. Het lijkt erop dat het voldoet in IDE, totdat een build wordt uitgevoerd, dan niet. Ik kan niet achterhalen hoe het krijgt die of hoe het uit te schakelen.

Intellij heeft tonnen refactors die anderen niet hebben. het heeft dingen die ik heb gemist in vs code waar ik feature requests Voor heb.

echter, het heeft andere problemen zoals het willekeurig zegt dat dingen die niet gecompileerd worden wel gecompileerd worden. Het zal zeggen ontbrekende methode. Als u de regel echter verwijdert, wordt deze voltooid en zegt u vervolgens ontbrekende methode.

dan slechts een kanttekening, intellij is veruit de zwaarste gewicht IDE. Het draait nauwelijks op mijn laptop (die is echt oud in alle eerlijkheid, en ik moet waarschijnlijk een andere te krijgen), waar de andere “werken” prima (wat je wilt definiëren dat Voor eclipse, en vs code was geweldig totdat ik deed wat om voltooiing te breken).

Ik denk dat het echte antwoord is dat we nog geen IDE zijn.

— /u/r3vj4m3z on /r/rust

IntelliJ rust plugin is echt goed. Ik gebruikte vim+racer+ycm voor een tijdje, en ik hou van Vim, maar vooral voor grote, productieprojecten met veel modules en diepe hiërarchieën, IntelliJ is gewoon veel productiever (dingen zoals hernoemen struct veld werkt over de hele code base)

— /u/neurosguy on /r/rust

IntelliJ-rust was zeker heel makkelijk aan de gang, maar de bloat van IJ zelf dreef me weg.

— /u/Cldfire on /r/rust

Het werkt zeer goed en heeft een actieve ontwikkeling.
ik raad het zeker aan als je het RAM-en CPU-gebruik kunt sparen.

– chimmihc on rust-lang.org

EDIT 6/24/19: lezer Joseph Noose had het volgende toe te voegen:

voor mij was het grote pluspunt van IntelliJ over VSS de Let completions, dat soms bij het omgaan met derden het sneller en gemakkelijker wordt om te zien welk object wordt geretourneerd. Ik vond met een aantal van de diesel spullen was het vooral nuttig omdat de objecten zijn vrij lang

CLion met IntelliJ Rust plugin

een andere optie met JetBrains, CLion is een C/C++ IDE die ook de IntelliJ Rust plugin kan ondersteunen.

  • maakt gebruik van Cargo build systeem
  • ondersteuning voor het debuggen van Rust toepassingen — in tegenstelling tot IntelliJ idee
  • vereist commerciële licentie (of gratis met .edu e-mail address)

Clion met de Rust plugin voor intelliJ is waarschijnlijk net zo dicht bij een Rust-specifieke IDE die bestaat; het Eclipse project kan er echter een maken, het wordt momenteel besproken.

— /u/steveklabnik1 on / r / rust

Debugging Ondersteuning in CLion is uitstekend! Krijgt niet genoeg lof. Inline runtime waarden in code op breekpunten is leuk (1) , zo is de debugging inspector (2), en, het instellen van voorwaardelijke breekpunten… Zeer comfortabel om te doen.
zie: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • Open-source (gratis)
  • Ingebouwde Lading ondersteuning
  • Code completion
  • Spring naar definitie, peek definitie, vinden alle verwijzingen, symbool zoeken
  • Soorten en documentatie over hover
  • de opmaak van de Code
  • Refactoring (naam, deglob)
  • Fout kriebels en toepassen suggesties van fouten
  • Fragmenten
  • Bouw taken
  • Aangedreven door de Roest Taal Server (RLS)
  • Formaat op te slaan, indien gewenst

VSCode heeft een goede Taal-Server ondersteuning, wat betekent dat de nieuwe RLS-functies werken heel goed in het. Het is meer een traditionele IDE-ervaring, maar ik gebruik liever een tmux-sessie als mijn IDE met Vim als mijn code-editor.

— /u/Iddntchooseusername on /r/rust

+1 Voor VSCode + extensie. Waarom? Sommige mensen willen de wereld zien branden. Maar serieus. VSCode is een echt, echt goede editor.

Ik gebruik het voor C, C++, C#, Javascript, Erlang, Prolog, Lisp, F#, en nu Rust.

geen Emacs pinky.

werkt gewoon direct uit de doos.

Command pallete is ook een stuk beter.

ze vervingen hun grep-systeem onlangs door de rust-versie en kregen een enorme prestatieverhoging. Ik ben letterlijk hier vanwege VSCode release notes van ongeveer een week of 2 geleden.

Solid Git integratie.

platformonafhankelijk.

heb ik al gezegd dat ik de wereld graag zie branden?

— on /r/rust

Ik gebruik VS-code met de rust-extensie voor al mijn rust-codering. Het heeft me heel goed gediend tot nu toe, alles wat ik niet kan doen met de toetscombinaties die door de uitbreiding kan worden gedaan met de geïntegreerde console, dus ik heb echt geen klachten.

— /u/Yourgamerm on /r/rust

Ik zou VSCode aanraden, de Rust plugin biedt autocomplete, syntaxis highlighting, en enkele andere leuke functies. Maar bovenal, er is een mooie LLDB plugin waarmee visuele Debugging dat is een voordeel ten opzichte van andere IDEs ik heb geprobeerd.

en het is cross platform.

— mczarnek op rust-lang.org

Hebben doorgebracht 3+ weken met elk intellij-roest, vscode-roest en verschillende plugins voor roest ondersteuning in Sublieme Tekst 3, kan ik vol vertrouwen zeggen dat de beste ervaring die ik heb gehad tot op dit punt was met de vscode plugin(s) … Vscode raakt de perfecte omgeving voor mij; het was meteen aan de slag met (omdat ik al de nodige tools lading installeren ‘ d en de roest src onderdeel toegevoegd via rustup, alles werkte out of the box) en heeft nog steeds de editor ervaring. Het enige wat ik nog niet in staat om te werken is de LLDB frontend geweest, maar dat is te wijten aan mijn gebruik van de WSL, niet de schuld van de plugin zelf.

TL: DR, Ik adviseer vscode.

— / u / Cldfire op / r/rust

(Neo)vim met Rust plugins (zoals rust.vim, vim.racer)

Voorbeeld van Roest met Vim (credit Jovansonlee Cesar op GitHub)

Echt gebruikt om Vim en kan niet afwijken van de verschillende tekst-manipulatie-opdrachten? Heb geen angst — veel mensen gebruiken Vim bij het ontwikkelen in Roest.

je kunt gaan met een plain vanilla vim installatie, of je kunt andere smaken gebruiken zoals Neovim.

Neovim

  • Open-source
  • Community-driven
  • toegang tot het asynchroon uitvoeren van taken / taken in vim (h/t Dhruva Sagar op StackOverflow)

ongeacht de smaak van Vim die u gebruikt, kunt u Rust-specifieke plug-ins gebruiken.

rust.vim

  • Rust-bestandsdetectie
  • syntaxismarkering
  • opmaak
  • Syntastische integratie
  • vereist Vim 8 of hoger voor volledige functionaliteit

vim.racer

  • staat vim toe Racer te gebruiken voor het aanvullen van Rustcode en navigatie

Vim, en het is nogal pijnlijk tbh. Ik sta open voor suggesties. De tekst manipulatie kant van Vim is ongelooflijk. Het is gewoon verbijsterend. Maar de rest van Vim is behoorlijk sh*t, en met de soorten complexe fouten die je in Roest krijgt, is het behoorlijk pijnlijk om over te schakelen naar de terminal.

Ik wil overschakelen naar VSCode of iets dergelijks, maar het gebrek aan vim-bewerkingscommando ‘ s is echt grimmig.

— /u/jl2352 on /r/rust

met voldoende plugins (dingen zoals taalservers, enz.) kunt u de rest van (neo)vim echt bruikbaar maken, imo.

— /u/ashfordneil on /r/rust

Ik heb beide vim gebruikt met de rust.vim plugin en Intellij met zijn Rust plugin. Intellij heeft de meest complete IDE ervaring die ik heb geprobeerd en de beste completies, maar ik geef nog steeds de voorkeur vim. Ik zou aanraden om de setups te proberen die vermeld staan op https://areweideyet.com/ en te zien wat het beste werkt voor jou.

— /u/Zethra on /r/rust

interessant is dat sommige puristen helemaal geen Rust plugins gebruiken!

Vim met ingebouwde auto complete (+ autocomplpop). Vluchteling. Dat is eigenlijk het … geen fancy plugins meer! En ja, ik werk aan grote codebases met deze setup!

— /u/musicmatze op /r/roest

Emacs

emacs-racer door racer-roest (credit RecordNotFound)

ik heb het gevoel dat als je gaat opnemen vi(m), moet u waarschijnlijk minstens geven emacs te vermelden.

voeg daaraan toe dat er een project is om emacs naar rust te porteren. Ik gebruik het als een drop-in vervanging voor emacs op mijn linux machines.

opmerking: Ik gebruik emacs eigenlijk niet voor een zware roest ontwikkeling. Ik ga door mijn rust leren reis met behulp van IntelliJ idee.

— Chris Bos in dit bericht reacties

  • Met Racer, biedt de code-completion
  • Lading (package manager) ondersteuning bij belangrijke combinaties
  • Heeft roest-lang configuratie voor Rust-specifieke programmering in Emacs
  • Ondersteunt rustfmt met roest-lang
  • Gratis

U moet gebruiken MELPA en use-package om pakketten te installeren in emacs.

Het instellen van Rust om RLS te gebruiken op emacs is een beetje lastig voor een beginner. Hier is mijn RLS configuratie als u geïnteresseerd bent: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.el en https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

— /u/CSRaghunandan on /r/rust

Ik zeg dit als iemand nog steeds leren roest, en niet als een aanbeveling voor mensen die echte bijdragen aan de productie code.

Ik gebruik Emacs in Rust-modus zonder andere franje.

als mijn code ingewikkeld genoeg is dat ik een IDE nodig heb om het te volgen, is het ingewikkeld genoeg dat iemand anders het niet kan volgen met die hulp. En als ik moet autocomplete om te weten welke functie Ik wil bellen en het type handtekening dan heb ik waarschijnlijk geen bedrijf bellen zonder het geven van de docs ten minste een keer over hoe dan ook, dus het is geen extra moeite om gewoon op te zoeken.

— /u/bxtk op /r/roest

Sublime met Roest Verbeterde

Sublime met Roest Verbeterde (credit roest-lang via packagecontrol.io)
  • Open-source (gratis)
  • Goto iets
  • Goto definitie
  • Split bewerken
  • Low profile

Het werkt heel goed, toch kan het een beetje meer gebruiksvriendelijk. Dit is echter meer een subliem probleem dan een plugin probleem.

— /u/booooomba on /r/rust

Ik heb het geprobeerd, maar ik miste refactoring tools, een goede geïntegreerde terminal, en typ op hover in vergelijking met VSCode + Rust plugin.

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

alleen ergernis is dat het geen tests in overweging neemt, en daarom geen compilatiefouten in hen vangt, en veel waarschuwingen over ongebruikte functies uitspuwt. (Eerst testen schrijven voor mijn lib)

— /u/Rawler82 on /r/rust

Het heeft niet de beste functies ingesteld, maar het is snel en klein (weinig RAM en schijfruimte).

— /u/razrfalcon on /r/rust

Sublime Text 3 ‘ s plugin situatie is, althans voor mij, nogal wankel; hoewel ik in staat was om dingen meestal werkend te krijgen op macOS, was ik nooit in staat om werkende autocomplete te krijgen op Windows 10 (naast de vrij lange en pijnlijke installatietijd).

— /u/Cldfire on /r/rust

sommige mensen gebruiken geen extra plug-ins met Rust verbeterd.

Ik gebruik sublieme tekst voor alles. Wat het bouwen betreft, houd ik gewoon een terminalvenster open aan de onderkant van mijn scherm met cargo watch draaiend.

Ik heb geen roest specifieke plugins, maar gezien alle aanbevelingen hier, Ik denk dat Ik zal proberen de roest verbeterde plugin later.

— /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)
  • Opmaak bestand met rustfmt (ctrl-shift-c of cmd-shift-c ook in het context menu)
  • Formaat op te slaan (standaard uitgeschakeld, zie atom-ide-ui instellingen)

taal-roest

  • Voegt syntax highlighting en fragmenten Roest bestanden in Atom

linter-roest

  • Pluizen uw Rust-bestanden in Atom, met behulp van rustc en vracht
  • Bestanden worden gecontroleerd wanneer u openen of opslaan

токамак (tokamak)

  • Syntax highlighting
  • het Maken van Cargo-project
  • Ondersteuning van de Lading projecten
  • Codevoltooiing met Racer
  • roest toolchains beheren
  • Codelinting
  • projectspecifieke configuratie
  • Codeopmaak
  • ga naar definitie
  • zweven voor documentatie
  • zoek referenties
  • Out-of-the-box
  • Automatisch aanvullen Out-of-the-box
  • codemarkering

Racer

  • intelligente codeaanvulling en “Find definition”

Ik gebruik taal-rust, Linter-rust, Racer (autocomplete) en Atom-beautify op een rustup installatie. Het opzetten van de paden duurde een tijdje, maar het werkt vrij goed. Ik heb ook geprobeerd om over te schakelen naar Tokamak een tijdje geleden, maar dat werkte niet voor mij.

Ik voer mijn rustcode uit in een apart zsh-venster dat aan de zijkant wordt betegeld door een Gnome-addon en altijd zichtbaar is (Ik voel me niet klaar om te gaan i3). Met een bestandsstructuur, een codeweergave, een minimap en een terminalvenster zijn er in totaal vier kolommen en het voelt soms een beetje krap aan. Als ik geen grote monitor op mijn laptop heb, draai ik atom in fullscreen.

— roSievers on rust-lang.org

Ik gebruikte Atom voor Rust gedurende ongeveer 9 maanden, nadat ik Atom had gebruikt voor al mijn Python-ontwikkeling. Ik deed veel hetzelfde als @roSievers hierboven, maar ik vond terugkerende problemen op macOS (vooral met omgevingsvariabelen niet worden doorgegeven zonder gedoe). Ik heb Tokamak nooit goed kunnen laten draaien.

– pwrdwnsys on rust-lang.org

eerlijk gezegd denk ik niet dat sublime te vergelijken is met de functionaliteit die er in atom voor rust is.

opstartsnelheid is traag, maar al het andere is volledig acceptabel.

en ik geef de voorkeur aan delinter enlinter-rust pakketten, omdat ze je fouten en waarschuwingen inline laten compileren ½ sec nadat je op ctrl+s drukt!

— /u/flying-schapen /r/roest

Eclipse-Corrosie (Eclipse IDE voor Roest Ontwikkelaars)

Eclipse IDE voor Roest Ontwikkelaars (credit Corrosie op GitHub)
  • Handig zijn als u al gebruikt voor de Eclipse
  • Integratie met de Roest Taal-Server en de Lading
  • de Voltooiing Helpen
  • Documentatie Hover
  • Diagnose
  • Opmaak
  • Variables View
  • GDB Console
  • Breakpoints
  • Expression Execution
  • New Project Wizard
  • Toolchain Management
  • TOML file editing support
  • Export Crate Wizard
  • Rust Language Server Preferences
  • Project Outline
  • Dark Theme
  • problemen View
  • Git integratie (alleen beschikbaar in corrosiepakket)
  • open-source (vrij)

Het heeft ook export als crate, Execution en debug ondersteuning (over GDB) integratie; deze worden niet geleverd door RLS, maar door directe integratie met cargo en rust-gdb

—/u / mickael_istria on / r / rust