Articles

mi a legjobb ide A Rust fejlesztésében?

Tremaine EtoTremaine Eto
Tremaine Eto

kövesse

május 13, 2019 · 12 perc olvasás

melyik rozsdaötletet válassza?

a Stack Overflow Insights szerint a Rust a 2018 — as év leginkább “szeretett” nyelve, hihetetlen 78,9% – os minősítéssel-a Rustaceans átlagosan egyértelműen boldog. A Rust azonban nem jelent meg ugyanazon felmérés “legnépszerűbb technológiák” szakaszában, jelezve, hogy a teljes felhasználók száma még mindig meglehetősen kicsi.

a felmérés után nem meglepő, hogy sokan rohannak kipróbálni, és amikor eljön az idő, elkerülhetetlenül felmerül a kérdés: melyik IDE-t kell használni a Rust fejlődéséhez?

a mai napig nincs egyértelmű monopólium a Rust IDEs-en, így nincs egyértelmű győztes. Bármennyire is úgy érzi, hogy ez zavaróvá teheti, ez valójában jó dolog lehet, mivel számos olyan választás létezik, amelyek végül a felhasználói preferenciákhoz vezetnek.

Ez a cikk sok internetes véleményt igényel, és megpróbálja megvilágítani mind az előnyöket, mind a hátrányokat.

IntelliJ IDEA IntelliJ Rust pluginnal

Rust with IntelliJ IDEA (hitel matklad a Giphy-n)

a telepítési linket itt találja az IntelliJ Rust weboldalon.

  • nyílt forráskódú
  • írta néhány JetBrains alkalmazottak és önkéntesek
  • nincs hibakeresés

EDIT (5/28/19): szerint olvasó Chris Vest:

hibakeresést végezhet, ha telepítve van a CLion-ban.

  • ingyenes a közösségi kiadáshoz, licenc a prémium verzióhoz
  • refaktorálási képességek
  • támogatja az új modulok hozzáadását
  • támogatja a tulajdonság implementációk kivágását

a funkciókészlet csodálatos, de lassúnak találom… van valaki más ez a kérdés? Néha percekbe telik, amíg a szintaxis és a hiba kiemelése frissül, miután beírtam néhány új kódot.

— /u/NeuroXc on /r/rust

mindkét vim-et használtam a rozsdával.vim plugin és Intellij vele Rust plugin. Az Intellij rendelkezik a legteljesebb ide tapasztalattal, amelyet kipróbáltam és a legjobb befejezésekkel, de még mindig jobban szeretem a vim-et.

— /u/Zethra on /r/rust

az Intellij-t a Rust pluginnal használom. Már sokat használom a Jetbrains IDEs-t az uni munkához, tehát volt értelme ragaszkodni ehhez.

— /u/FlourineWizard on /r/rust

a hibakereső hiánya miatt kerültem az intellij-t (csak a clion-ban működik).

az intellij kipróbálása után a Befejezés azonnal remekül működött (a kezdeti index után). Ekkor azonban furcsa dolgokba kezdtem belefutni. Nincs éjszakai beállításom, azonban éjszakánként befejezi a dolgokat. Úgy tűnik, hogy megfelel az IDE-nek, amíg egy build nem fut, akkor nem. nem tudom kitalálni, hogyan kapja meg ezeket, vagy hogyan lehet letiltani.

az Intellij-nek rengeteg refaktora van, mások nem. vannak olyan dolgok, amiket kihagytam a vs kódban, amelyekhez funkciókérések vannak.

azonban más kérdései is vannak, például véletlenszerűen azt mondja, hogy a dolgok nem állnak össze. Azt fogja mondani, hogy hiányzik a módszer. Ha azonban törli a sort, akkor befejezi, majd ismét mondja a hiányzó módszert.

akkor csak egy mellékes megjegyzés, intellij messze a legnehezebb súly IDE. Alig fut a laptopomon (ami nagyon régi minden tisztességben, és valószínűleg szereznem kellene egy másikat), ahol a többiek “jól működnek” (bármit is akarsz meghatározni az eclipse számára, és a vs kód nagyszerű volt, amíg nem tettem semmit, hogy megtörjem a befejezést).

azt hiszem, az igazi válasz az, hogy még nem vagyunk IDE.

— /u/r3vj4m3z on /r/rust

IntelliJ rust plugin nagyon jó. Régebben vim+racer+ycm egy darabig, és én szeretem Vim, de különösen a nagy, termelési projektek sok modul és mély hierarchiák, IntelliJ csak sokkal termelékenyebb (cucc, mint átnevezni struct mező működik az egész kódot bázis)

— /u/neuronsguy on /r/rust

IntelliJ-Rust minden bizonnyal rendkívül könnyű volt menni, de maga az IJ duzzadása elhajtott.

— /u/Cldfire on /r/rust

nagyon jól működik és aktív fejlesztéssel rendelkezik.
azt ajánlom, ha lehet kímélni a RAM és a CPU használat.

— chimmihc be rust-lang.org

EDIT 6/24/19: Joseph Noose olvasó a következőket tette hozzá:

számomra az IntelliJ VSS feletti nagy pluszja a let completions volt, hogy néha a 3.Partik kezelése során gyorsabban és könnyebben látható, hogy milyen tárgyat adnak vissza. Találtam néhány dízel cucc különösen hasznos volt, mivel a tárgyak meglehetősen hosszú

CLion IntelliJ Rust plugin

egy másik lehetőség a JetBrains, CLion egy C/C++ IDE, amely szintén támogatja a IntelliJ Rust plugin.

  • lehetővé teszi a Cargo build rendszer használatát
  • támogatás A Rust alkalmazások hibakereséséhez-ellentétben az IntelliJ IDEA
  • kereskedelmi licencet igényel (vagy ingyenes .edu e-mail cím)

Clion a Rust plugin intelliJ valószínűleg olyan közel áll a Rust-specifikus IDE, hogy létezik; azonban az Eclipse projekt lehet, hogy egy, EZ jelenleg tárgyalt.

— /u/steveklabnik1 on /r/rust

hibakeresés támogatás CLion kiváló! Nem kap elég dicséretet. Az Inlined runtime értékek a kódban a töréspontokon Szép (1) , így a hibakereső ellenőr (2), és a feltételes töréspontok beállítása… nagyon kényelmes.
lásd: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • nyílt forráskódú (ingyenes)
  • beépített rakomány támogatás
  • Kód befejezése
  • ugrás a definíció, peek definíció, megtalálja az összes hivatkozást, szimbólum keresés
  • típusok és dokumentáció hover
  • Kód formázás
  • Refaktorálás (átnevezés, deglob)
  • hiba squiggles és alkalmazza javaslatokat hibák
  • kódrészletek
  • épít feladatok
  • powered by a Rust language server (RLS)
  • formátum mentés, ha szükséges

VSCode jó nyelvi szerver támogatás, ami azt jelenti, hogy a az új RLS funkciók nagyon jól működnek benne. Ez inkább egy hagyományos IDE élmény, de inkább egy tmux munkamenetet használok IDE-ként, a Vim pedig kódszerkesztőként.

— /u/IDidntChooseUsername on /r/rust

+1 A VSCode + kiterjesztéshez. Miért? Vannak, akik csak nézni akarják, ahogy a világ ég. De most komolyan. A VSCode egy nagyon, nagyon jó szerkesztő.

C, C++, C#, Javascript, Erlang, Prolog, Lisp, F#, és most Rust.

nincs emacs pinky.

csak a dobozból működik.

parancs pallete is elég baller.

a közelmúltban lecserélték a grep rendszerüket a rust verzióra, és hatalmas teljesítménynövekedést értek el. Szó szerint itt vagyok a VSCode kiadási megjegyzései miatt körülbelül egy hét vagy 2 ezelőtt.

szilárd Git integráció.

keresztplatform.

említettem már, hogy szeretem nézni, ahogy a világ ég?

— on /r/rust

A Rust kiterjesztésű VS kódot használom az összes rust kódoláshoz. Eddig nagyon jól szolgált nekem, bármi, amit nem tudok megtenni a kiterjesztés által biztosított billentyűkombinációkkal, megtehető az integrált konzollal, tehát valóban nincs panaszom.

— /u/YourGamerMom on /r/rust

ajánlom a VSCode-ot, a Rust plugin automatikus kiegészítést, szintaxis kiemelést és néhány más szép funkciót biztosít. De mindenekelőtt van egy szép LLDB plugin, amely lehetővé teszi a vizuális hibakeresést, ami előnyt jelent a többi kipróbált IDE-vel szemben.

és ez cross platform.

– mczarnek be rust-lang.org

miután töltött 3+ hét minden segítségével intellij-rust, vscode-rust és a különböző plugins rust támogatás Sublime Text 3, Azt lehet mondani, hogy a legjobb élmény, amit eddig a pontig volt a VSCode plugin(ek) … Vscode sztrájk a tökéletes terület számomra; ez volt az azonnali, hogy felkelni és futni (mivel már megvolt a szükséges eszközöket cargo install ‘ D és a rust src komponens hozzá keresztül rustup, minden a dobozból dolgozott), és továbbra is fenntartja a szerkesztői élményt. Az egyetlen dolog, amit nem tudtam dolgozni, az LLDB frontend, de ez a WSL használatának köszönhető, nem maga a plugin hibája.

TL: DR, azt javaslom vscode.

— /u/Cldfire on /r/rozsda

(Neo)Vim rozsda pluginekkel (például rozsda.vim, vim.versenyző)

példa a Rust-ra a Vim-mel (hitel jovansonlee Cesar a GitHubon)

tényleg hozzászokott a Vim-hez, és nem tud eltérni a különféle szövegmanipulációs parancsoktól? Ne félj — rengeteg ember használja a Vim-et, amikor Rozsdában fejlődik.

mehet egy sima vanília Vim telepítéssel, vagy használhat más ízeket is, például a Neovim-et.

Neovim

  • nyílt forráskódú
  • közösségvezérelt
  • hozzáférés a feladatok / feladatok aszinkron végrehajtásához a vim – ben (h/t Dhruva Sagar on StackOverflow)

bármilyen ízű Vim-et használ, kihasználhatja a Rust-specifikus plug-ineket.

rozsda.vim

  • Rust fájl észlelése
  • Szintaxis kiemelés
  • formázás
  • Szintatikus integráció
  • Vim 8 vagy újabb szükséges a teljes funkcionalitáshoz

vim.racer

  • lehetővé teszi a Vim számára a Racer használatát a Rust kód kitöltéséhez és navigációhoz

Vim, és ez elég fájdalmas tbh. Nyitott vagyok a javaslatokra. A Vim szövegmanipulációs oldala hihetetlen. Csak észbontó. De a Vim többi része elég sh*t, és a Rustban előforduló összetett hibák típusaival elég fájdalmas átkapcsolni a terminálra.

VSCode-ra vagy hasonlóra akarok váltani, de a Vim szerkesztési parancsok hiánya valóban éles.

— /u/jl2352 on /r/rust

elegendő bővítménnyel (például nyelvi szerverekkel stb.) a (neo)vim többi részét valóban használhatóvá teheti, imo.

— /u/ashfordneil on /r/rust

mindkét vim-et használtam a rozsdával.vim plugin és Intellij vele Rust plugin. Az Intellij rendelkezik a legteljesebb ide tapasztalattal, amelyet kipróbáltam és a legjobb befejezésekkel, de még mindig jobban szeretem a vim-et. Azt javaslom, hogy próbálja ki a https://areweideyet.com/ oldalon említett beállításokat, és nézze meg, mi működik a legjobban az Ön számára.

— /u/Zethra on /r/rust

érdekes, hogy egyes puristák egyáltalán nem használnak Rust plugineket!

vim beépített automatikus kiegészítéssel (+ autocomplpop). Szökevény. Ez alapvetően ez … nincs több divatos plugin! És igen, nagy kódbázisokon dolgozom ezzel a beállítással!

— /u/musicmatze on /r/rust

Emacs

Emacs-Racer által Racer-Rust (hitel recordnotfound)

úgy érzem, ha megy, hogy tartalmazza a VI(m), valószínűleg legalább említést kell tennie az emacs-ről.

Add hozzá, hogy van egy projekt port emacs rust. Én használni, mint egy drop-in csere emacs én linux gépek.

Megjegyzés: Valójában nem használom az emacs-t semmilyen nehéz rozsda fejlesztéshez. Megyek keresztül én rust tanulási utazás segítségével IntelliJ ötlet.

— Chris Woods ebben a bejegyzésben megjegyzéseket

  • A Racer, kínál kód-befejezése
  • van Cargo (csomagkezelő) támogatás billentyűkombinációk
  • van rust-lang konfiguráció Rust-specifikus programozás Emacs
  • támogatja rustfmt a rust-lang
  • ingyenes

a melpa és a use-package csomagokat az Emacs-ban kell telepíteni.

A Rust beállítása az RLS használatára az emacs-en kissé trükkös egy kezdő számára. Itt van az RLS konfigurációm, ha érdekel: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.el and https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

— /u/CSRaghunandan on /r/rust

ezt úgy mondom, hogy valaki még mindig rozsdát tanul, nem pedig ajánlásként azoknak, akik ténylegesen hozzájárulnak a gyártási kódhoz.

az Emacs-t rozsda módban használom, más sallang nélkül.

Ha a kódom elég bonyolult ahhoz, hogy IDE-re van szükségem a követéséhez, akkor elég bonyolult ahhoz, hogy valaki más ne tudja követni ezt a támogatást. És ha szükségem van az automatikus kiegészítésre, hogy tudjam, milyen funkciót akarok hívni, és annak típusát aláírni, akkor valószínűleg nincs üzleti hívásom anélkül, hogy a dokumentumokat legalább egyszer át kellene adnom, így nem extra baj, hogy csak megkeresem.

— /u/bxtk on /r/rozsda

fenséges rozsda fokozott

fenséges rozsda fokozott (hitel Rust-Lang keresztül packagecontrol.io)
  • nyílt forráskódú (ingyenes)
  • Goto bármi
  • Goto definíció
  • osztott szerkesztés
  • alacsony profilú

elég jól működik, mégis lehetne egy kicsit több felhasználóbarát. Ez azonban inkább fenséges probléma, mint plugin probléma.

— /u/booooomba on /r/rust

megpróbáltam, de hiányzott a refaktoráló eszközök, egy jó integrált terminál, és írja be a hover képest VSCode + Rust plugin.

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

csak az a bosszantó, hogy nem veszi figyelembe a teszteket, ezért nem veszi fel a fordítási hibákat, és sok figyelmeztetést ad a nem használt funkciókról.

— /u/Rawler82 on /r/rust

nem rendelkezik a legjobb tulajdonságokkal, de gyors és kicsi (kevés a RAM és a lemezterület).

— /u/razrfalcon on /r/rust

Sublime Text 3 plugin helyzet, legalábbis nekem, inkább rozoga; míg én képes volt, hogy a dolgok többnyire dolgozik macOS, soha nem voltam képes, hogy működik az automatikus kiegészítés a Windows 10 (amellett, hogy a meglehetősen hosszú és fájdalmas beállítási idő).

— /u/Cldfire on /r/rust

egyesek nem használnak további bővítményeket a Rust Enhanced funkcióval.

mindenhez fenséges szöveget használok. Ami az építkezést illeti, csak egy terminál ablakot tartok nyitva a képernyő alján cargo watch fut.

nincs Rust-specifikus bővítményem, de az itt szereplő összes ajánlást figyelembe véve azt hiszem, később kipróbálom a Rust Enhanced plugint.

— /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 fájl formázása rustfmt-vel (ctrl-shift-cvagycmd-shift-c a helyi menüben is)
  • formátum mentéskor (alapértelmezés szerint letiltva, lásdatom-ide-uibeállítások)

nyelv-rust

  • szintaxiskiemelést és kivonatokat ad a Rust fájlokhoz az atom-ban

Linter-Rust

  • a Rust-fájlok átlapolása az atom-ban, a rustc és a cargo használatával
  • a fájlok a megnyitáskor vagy mentéskor kerülnek ellenőrzésre

(tokamak)

  • szintaxiskiemelés
  • cargo projekt létrehozása
  • támogatás a cargo-hoz projektek
  • Kód befejezése Racer
  • kezelése Rust toolchains
  • Kód Linting
  • projekt specifikus konfiguráció
  • Kód formázás
  • ugrás a definíció
  • Hover dokumentáció
  • referenciák keresése
  • vázlat a fájl és a projekt
  • Automatikus kiegészítés out-of-the-box
  • Kód kiemelés

Racer

  • intelligens kódkiegészítés és “Find definition”

a language-rust, a Linter-Rust, a racer (autocomplete) és az atom-beautify programot használom egy rustup telepítésen. Az utak beállítása eltartott egy ideig, de elég jól működik. Én is próbáltam váltani Tokamak egy ideje, de ez nem működik nekem.

én fut a rust kódot egy külön zsh ablak, amely csempézett oldalán néhány Gnome addon és mindig látható (nem érzem kész menni i3). A fájlfa, a kód nézet, a minimap és a terminál ablak összesen négy oszlopot tartalmaz, és időnként kissé szűkösnek érzi magát. Ha nincs egy nagy monitor csatlakoztatva a laptop futtatom atom teljes képernyős.

— roSievers on rust-lang.org

körülbelül 9 hónapig használtam az atomot a Rust számára, korábban az Atomot használtam az összes Python fejlesztéshez. Nagyjából ugyanazt tettem, mint a fenti @ roSievers, de visszatérő problémákat találtam a macOS – on (különösen akkor, ha a környezeti változókat nem adták át felhajtás nélkül). Soha nem tudtam megfelelően működtetni Tokamakot.

— pwrdwnsys be rust-lang.org

őszintén szólva nem hiszem, hogy a sublime összehasonlítja az atom rust funkcionalitását.

az indítási sebesség lassú, de minden más teljesen elfogadható.

és én inkább a linterés linter-rust csomagokat részesítem előnyben, mivel a ctrl+s lenyomása után a fordítási hibák és figyelmeztetések jelennek meg a sorban!

— /u/repülő-juhok /r/rozsda

Eclipse korrózió (Eclipse IDE rozsda fejlesztők számára)

Eclipse IDE Rust fejlesztők számára (hitel korrózió Github)
  • hasznos, ha már használt Eclipse
  • integráció a Rust nyelv szerver és a rakomány
  • befejezés assist
  • dokumentáció Hover
  • diagnosztika
  • formázás
  • változók megtekintése
  • GDB konzol
  • töréspontok
  • kifejezés végrehajtása
  • új projekt varázsló
  • eszközkészlet menedzsment
  • TOML fájlszerkesztési támogatás
  • láda exportálása varázsló
  • Rust nyelv szerver beállítások
  • projekt vázlat
  • sötét téma
  • problémák megtekintése
  • Git integráció (csak a korrózió csomag)
  • nyílt forráskódú (ingyenes)

azt is export, mint láda, végrehajtás és hibakeresés támogatás (over GDB) integráció; ezeket nem az RLS biztosítja, hanem a cargo és a rust-gdb közvetlen integrációja

—/u /mickael_istria on/r / rust