Articles

jaký je nejlepší IDE pro vývoj v Rustu?

Tremaine Eto
Tremaine Eto

Sledovat

13. Května, 2019 · 12 min číst

, Které Rez MYŠLENKY byste si měli vybrat?

Rez je, podle Přetečení Zásobníku Postřehy, nejvíce „Miloval“ jazyk 2018 s neuvěřitelnou 78.9% klientů — Rustaceans tam jsou očividně šťastní v průměru. Rust se však neobjevil v sekci „nejoblíbenější technologie“ stejného průzkumu, což naznačuje, že počet celkových uživatelů je stále poměrně malý.

po průzkumu by nemělo být žádným překvapením, že mnoho lidí spěchá, aby to vyzkoušeli, a když přijde čas, nevyhnutelně vyvstává otázka: které IDE byste měli použít k rozvoji v Rustu?

K dnešnímu dni neexistuje jasný monopol na rezavé IDE, a tedy žádný jasný vítěz. Stejně jako to vypadá, že to může být matoucí, to může být ve skutečnosti dobrá věc, protože existuje celá řada možností, které se nakonec scvrknou na preference uživatele.

Tento článek bude mít spoustu internetových názorů a pokusí se osvětlit výhody i nevýhody.

IntelliJ IDEA s IntelliJ Rust plugin

Rzi s IntelliJ IDEA (kreditní matklad na GIPHY)

instalace můžete najít zde odkaz na IntelliJ Rez webové stránky.

  • Open source
  • Napsal nějaký JetBrains zaměstnanci a dobrovolníci
  • ladění

UPRAVIT (5/28/19): Podle reader Chris Vesta:

to může dělat ladění při instalaci v CLion.

  • Zdarma pro community edition, licence pro verzi premium
  • Refaktoring schopnosti
  • Podporuje přidávání nových modulů
  • Podporuje stubbing ven rys implementace

sada funkcí je úžasné, ale zjistil jsem, že to pomalu… Má ještě někdo tento problém? Někdy trvá několik minut, než se syntaxe a zvýraznění chyb aktualizuje po zadání nového kódu.

— /u/NeuroXc na /r/rez

použil jsem oba vim s rez.plugin vim a Intellij s pluginem Rust. Intellij má nejúplnější IDE zkušenosti, které jsem vyzkoušel, a nejlepší dokončení, ale stále preferuji vim.

— / u / Zethra on / r / rust

používám Intellij s pluginem Rust. Už používám Jetbrains IDEs hodně pro práci uni, takže to dávalo smysl držet se toho.

— /u/FlourineWizard na /r/rez

jsem se vyhýbal intellij vzhledem k nedostatku debugger (funguje pouze v clion).

po vyzkoušení intellij, dokončení fungovalo trochu skvěle ihned (po počátečním indexu). Pak jsem však začal narážet na podivné věci. Nemám nastavení nightly nic, nicméně to dokončí věci v nightly. Vypadá to, že splňuje v IDE, dokud stavět, je spustit, pak to nemá. Nemůžu přijít na to, jak je dostat ty, nebo jak to zakázat.

Intellij má spoustu refactors jiní ne. To má věci, které jsem vynechal v vs kód, který mám požadavky na nové funkce.

má však jiné problémy, jako by náhodně říkal, že věci se kompilují. Bude to říkat chybějící metoda. Pokud však řádek odstraníte, přijde jej dokončit, pak znovu řekněte chybějící metodu.

pak jen vedlejší poznámka, intellij je zdaleka nejvíce těžká váha IDE. To sotva běží na mém notebooku (který je opravdu starý ve všech spravedlnosti, a pravděpodobně jsem měl připravit další), kde ostatní „práce“ v pořádku (ať už chcete definovat, že pro eclipse, a vs kód bylo skvělé, dokud jsem udělal cokoliv, aby zlomit dokončení).

myslím, že skutečná odpověď je, že ještě nejsme IDE.

— /u/r3vj4m3z na /r/rez

IntelliJ rust plugin je opravdu dobrý. Já jsem použil vim+racer+ycm na chvíli, a mám rád Vim, ale zejména pro velké výrobní projekty se spoustou modulů a hluboké hierarchie, IntelliJ je mnohem více produktivní (věci, jako je přejmenování struct pole funguje napříč celou základní kód)

— /u/neuronsguy na /r/rez

Intellij-rez byl jistě velmi snadné jít s, ale udit IJ sám mě odvezl pryč.

— /u/Cldfire na /r/rez

To funguje velmi dobře a má aktivní vývoj.
rozhodně doporučuji, pokud můžete ušetřit využití paměti RAM a CPU.

— chimmihc na rust-lang.org

UPRAVIT 6/24/19: Čtenář Josef Oprátku měl následující přidat:

Pro mě velké plus IntelliJ přes VSS byl ať dokončených, že někdy při jednání, wit, 3 strany, to se stává rychlejší a jednodušší, aby viděli, co objekt je vrácena. Našel jsem s některými z nafty věci bylo zvláště užitečné, protože objekty jsou poměrně dlouhé,

CLion s IntelliJ Rust plugin

Další možností, s JetBrains, CLion je C/C++ IDE, které mohou také podporovat IntelliJ Rust plugin.

  • umožňuje použití Cargo build system
  • podpora ladění Rust aplikací-na rozdíl od IntelliJ IDEA
  • vyžaduje komerční licenci (nebo zdarma s.edu e-mailovou adresu)

Clion s Rust plugin pro intelliJ je asi tak blízko k Rez-konkrétní IDE, že existuje; nicméně, Eclipse projekt může udělat jeden, to je v současné době projednáván.

— /u/steveklabnik1 na /r/rez

podporu Ladění v CLion je vynikající!!! Nemá dost chvály. Inlined runtime hodnoty v kódu na zarážky je nice (1) , takže je ladění inspektor (2) a, nastavení podmíněné zarážky… velmi pohodlné.
Viz: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • Open-source (zdarma)
  • Built-v Nákladu podpora
  • doplňování Kódu
  • Skok na definici, peek definition, najít všechny odkazy, symbol vyhledávání
  • Typy a dokumentace na hover
  • formátování Kódu
  • Refaktoring (přejmenovat, deglob)
  • Chyba klikyháky, a uplatňovat návrhy z chyb
  • Úryvky
  • Budovat úkoly
  • Poháněn Rez Jazyk Serveru (RLS)
  • Formát na uložení, v případě potřeby

VSCode má dobrou Jazykovou podporu Serveru, což znamená, že nové funkce RLS v něm fungují velmi dobře. Je to spíše tradiční zážitek z IDE, ale raději používám relaci tmux jako IDE s Vim jako editorem kódu.

— /u/IDidntChooseUsername na /r/rez

+1 pro VSCode + Rozšíření. Proč? Někteří lidé chtějí jen sledovat, jak svět hoří. Ale vážně. VSCode je opravdu, opravdu dobrý editor.

používám jej pro C, C++, C#, Javascript, Erlang, Prolog, Lisp, F# A nyní Rust.

žádné emacs pinky.

prostě funguje hned po vybalení z krabice.

příkaz pallete je také docela baller.

nedávno nahradili svůj systém grep verzí rust a dostali masivní zvýšení výkonu. Jsem doslova tady kvůli poznámkám k vydání VSCode asi před týdnem nebo 2em.

solidní integrace Git.

multiplatformní.

už jsem zmínil, že se rád dívám na svět, jak hoří?

— – on / r / rust

používám VS kód s příponou rust pro všechny své kódování rust. Slouží mi velmi dobře, tak daleko, nic, co nemůžu dělat s kombinace kláves poskytována rozšíření může být provedeno s integrovaným konzole, takže já opravdu nemám žádné stížnosti.

— /u/YourGamerMom na /r/rez

doporučil bych VSCode, Rez plugin poskytuje automatické dokončování, zvýraznění syntaxe, a některé další příjemné vlastnosti. Ale především je tu pěkný plugin LLDB, který umožňuje vizuální ladění, což je výhoda oproti jiným IDE, které jsem vyzkoušel.

a je to multiplatformní.

— mczarnek na rust-lang.org

Poté, co strávil 3+ týdny každý používání intellij-rez, vscode-rez a různé pluginy pro rust podporu v Sublime Text 3, mohu s jistotou říci, že nejlepší zkušenosti jsem měl až do této chvíle byl s vscode plugin(y) … Vscode údery ideální oblast pro mě; to byl okamžik se dostat nahoru a běží s (od té doby jsem již měl potřebné nářadí cargo nainstalovat a rez src složky přidáno přes rustup, všechno fungovalo out of the box) a stále udržuje editor zkušenosti. Jediná věc, kterou jsem nebyl schopen pracovat, je LLDB frontend, ale to je kvůli mému použití WSL, ne chyba samotného pluginu.

TL: DR, doporučuji vscode.

— /u/Cldfire na /r/rez

(Neo)vim s Rez pluginy (jako rez.Vime, Vime.racer)

Příklad Rez Vim (kreditní Jovansonlee Cesar na GitHub)

používá se pro Vim a nemůže se odchýlit od jeho různé textové manipulace příkazy? Nebojte se-spousta lidí používá Vim při vývoji v rzi.

můžete jít s obyčejnou vanilkovou instalací Vim, nebo můžete použít jiné příchutě, jako je Neovim.

Neovim

  • Open source
  • Komunitní
  • Přístup k vykonávání úlohy / úkoly asynchronně ve vim (h/t Dhruva Sagar na StackOverflow)

Ať už chuť Vim použijete, můžete využít Rez-specifické moduly.

rez.vim,

  • Rez detekci souboru
  • zvýraznění Syntaxe
  • Formátování
  • Syntastic integrace
  • Vyžaduje Vim 8 nebo vyšší pro plnou funkčnost

vim.závodník

  • Umožňuje vim použití Racer pro Rust doplňování kódu a navigace

Vim, a je to docela bolestivé tbh. Jsem otevřený návrhům. Stránka manipulace s textem Vim je neuvěřitelná. Je to prostě ohromující. Ale zbytek Vim je docela sh * t a s typy složitých chyb, které se dostanete do rustu, je docela bolestivé přecházet na terminál.

chci přepnout na VSCode nebo podobně, ale nedostatek editačních příkazů Vim je opravdu ostrý.

— /u/jl2352 na /r/rez

S dost pluginů (věci, jako je jazyk, servery, atd.), můžete si zbytek (neo)vim opravdu použitelné, imo.

— /u/ashfordneil na /r/rez

použil jsem oba vim s rez.plugin vim a Intellij s pluginem Rust. Intellij má nejúplnější IDE zkušenosti, které jsem vyzkoušel, a nejlepší dokončení, ale stále preferuji vim. Doporučuji vyzkoušet nastavení uvedená na https://areweideyet.com/ a vidět, co vám nejlépe vyhovuje.

— – /u /Zethra on/r/rust

zajímavé je, že někteří puristé nepoužívají pluginy Rust vůbec!

Vim s vestavěným Auto complete (+autocomplipop). Uprchlík. To je v podstatě to … žádné další fantastické pluginy! A ano, pracuji na velkých kódových základnách s tímto nastavením!

— /u/musicmatze na /r/rez

Emacs

emacs-závodník racer-rust (kreditní RecordNotFound)

mám pocit, že pokud se chystáte zahrnout vi(m), asi byste měli dát alespoň emacs zmínka.

přidejte k tomu, že existuje projekt, který portuje emacs na rust. Používám ji jako drop-in náhradu za emacs na svých počítačích linux.

Poznámka: Ve skutečnosti nepoužívám emacs pro žádný těžký vývoj rzi. Procházím svou rust learning journey pomocí IntelliJ IDEA.

— Chris Woods v tomto příspěvku komentáře

  • Racer, nabízí kód-dokončení
  • Má Náklad (package manager) podpora se kombinace kláves
  • Má rez-lang konfigurace pro Rust-specifické programování v Emacsu
  • Podporuje rustfmt s rez-lang
  • Zdarma

Byste měli použít MELPA a use-package instalovat balíčky v emacsu.

konfigurace Rust používat RLS na emacs je trochu složitější pro začátečníky. Tady je můj RLS konfigurace, pokud máte zájem: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.elhttps://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

— /u/CSRaghunandan na /r/rez

říkám to jako někdo stále učí, Rez, a ne jako doporučení pro lidi, kteří dělají skutečné příspěvky do kódu výroby.

používám Emacs v režimu Rust bez dalších ozdůbek.

Pokud je můj kód natolik komplikovaný, že potřebuji IDE, abych ho následoval, je to dost komplikované, že někdo jiný nebude schopen jej sledovat s touto pomocí. A když budu potřebovat funkce automatické dokončování vědět, jaké funkce chci zavolat a jeho typ podpisu, tak asi nemám právo říkat to bez udání docs alespoň jednou stejně skončí, takže to není žádné extra problémy se jen podívat.

— /u/bxtk na /r/rez

Sublime s Rez Rozšířené

Sublime s Rez Rozšířené (kreditní rez-lang přes packagecontrol.io)
  • Open-source (zdarma)
  • Goto nic
  • definice Goto
  • Rozdělení editace
  • Nízký profil

To funguje docela dobře, ještě by to mohlo být trochu více uživatelsky přívětivé. To je však spíše Vznešený problém než problém s pluginem.

— /u/booooomba na /r/rez

zkoušel jsem to, ale nestihl jsem refactoring nástroje, dobrý integrovaného terminálu, a máte typ na visu ve srovnání s VSCode + Rust plugin.

— /u/Foo-jin na /r/rez

Jediná nepříjemnost je, že to nepovažuje testy, a proto není chytit chyby kompilace v nich je, a chrlí SPOUSTU varování o nevyužité funkce. (Psaní testů nejprve pro mé lib)

— /u/Rawler82 na /r/rez

To neznamená, že má nejlepší vlastnosti nastavit, ale je to rychlé a malé (nízké na RAM a Místo na Disku).

— /u/razrfalcon na /r/rez

Sublime Text 3 je plugin situace je, alespoň pro mě, spíše váhavý, zatímco jsem byl schopen dostat věci, které většinou pracují na macOS, nikdy jsem nebyl schopen získat pracovní autocomplete na Windows 10 (kromě poměrně dlouhé a bolestivé nastavení času).

— – /u /Cldfire on/r/rust

někteří lidé nepoužívají žádné další plug-iny s Rust Enhanced.

Používám Sublime Text pro všechno. Pokud jde o budování jde, jen jsem udržet okno terminálu otevřené v dolní části mé obrazovky s cargo watch běží.

nemám žádné specifické pluginy Rust, ale vzhledem ke všem doporučením zde si myslím, že později vyzkouším plugin Rust Enhanced.

— /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)
  • Formát souboru s rustfmt (ctrl-shift-c nebo cmd-shift-c také v kontextové nabídce)
  • Formát na uložit (ve výchozím nastavení vypnuto, viz atom-ide-ui nastavení)

jazyk-rez

  • Přidává zvýraznění syntaxe a kousky Rzi soubory v Atomu

linter-rez

  • Linting Rez-soubory v Atomu, pomocí rustc a nákladu
  • Soubory budou kontrolovány při otevření nebo uložení

токамак (tokamak)

  • zvýraznění Syntaxe
  • Vytváření Nákladních projektu
  • Podpora pro Nákladní projekty
  • doplňování Kódu s Racer
  • Řízení Rez toolchains
  • Kód Linting
  • Projekt konkrétní konfigurace
  • formátování Kódu
  • definice
  • Najeďte pro dokumentaci
  • Najít odkazy
  • Struktura souboru a projektu
  • Automatické dokončování out-of-the-box
  • Kód zvýraznění

závodník

  • Poskytuje inteligentní doplňování kódu a „najít definici“

já používám jazyk-rez, linter-rez, racer (automatické dokončování) a atom-zkrášlit na rustup instalace. Nastavení cest trvalo chvíli, ale funguje to docela dobře. Před chvílí jsem se také pokusil přejít na Tokamak, ale to pro mě nefungovalo.

mám rez kód v samostatném zsh okno, které je dlažba straně některé Gnome addon a vždy viditelné (necítím se připravený jít i3). Se stromem souborů, zobrazením kódu, minimapou a oknem terminálu jsou celkem čtyři sloupce a občas se cítí trochu stísněné. Když nemám velký monitor připojený k notebooku, spustím atom na celou obrazovku.

— – roSievers na rust-lang.org

používal jsem Atom pro Rust asi 9 měsíců, předtím jsem použil Atom pro celý můj vývoj Pythonu. Udělal jsem podobně jako @roSievers výše, ale zjistil jsem, opakující se problémy na macOS (zejména s proměnnými prostředí není prošel bez problémů). Nikdy jsem nebyl schopen Tokamak správně spustit.

— pwrdwnsys na rust-lang.org

upřímně, nemyslím si, že vznešené porovnává funkčnost je v atomu pro rez.

rychlost spouštění je pomalá, ale vše ostatní je naprosto přijatelné.

a já dávám přednost linterlinter-rust balíčky, jak se vám ukážu kompilaci, chyby a varování inline ½ sec po stisknutí ctrl+s!

— /u/létající-ovce o /r/rez

Eclipse Korozi (Eclipse IDE pro Rust Vývojáři)

Eclipse IDE pro Rust Vývojáři (kreditní Koroze na GitHub)
  • Užitečné, pokud jste již používá k Zatmění
  • Integrace s Rez Jazyk Serveru a Nákladu
  • Ukončení Pomoci
  • Dokumentace Hover
  • Diagnostika
  • Formátování
  • Proměnné Zobrazení
  • GDB Konzoli
  • Zarážky
  • Vyjádření Výkonu
  • Nový Projekt Průvodce
  • Toolchain Řízení
  • TOML editace souborů podpora
  • Export Bednu Průvodce
  • Rez Jazyk Serveru, Preferencí
  • záměr Projektu
  • Tmavý Motiv
  • Problémy Zobrazení
  • Git integrace (k dispozici Pouze v Korozi Balení)
  • Open-source (zdarma)

má také exportovat jako Bedna, Provedení a Ladění podporu (přes GDB) integrace; ty nejsou poskytovány RLS, ale přímou integrací s cargo a rust-gdb

— /u/mickael_istria on /r/rust