Wat is de beste IDE voor het ontwikkelen van roest?
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
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
- 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)
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
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
- 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
IDE-Rust
- uto-completion
- Diagnostics (errors and warnings from
rustc
andclippy
, seeclippy_preference
setting) - Document outline
- Go to definition (
ctrl
orcmd
click) - Type information and Documentation on hover (hold
ctrl
orcmd
for more information) - Find references (
ctrl-alt-shift-f
orcmd-opt-shift-f
also in context menu) - Opmaak bestand met rustfmt (
ctrl-shift-c
ofcmd-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 de
linter
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)
- 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