Articles

Qual è il miglior IDE per lo sviluppo in Rust?

Tremaine Eto
Tremaine Eto

Seguire

13 Maggio 2019 · 12 min leggere

Che la Ruggine IDEE si dovrebbe scegliere?

Rust è, secondo Stack Overflow Insights, il linguaggio più “amato” del 2018 con un’incredibile valutazione del 78,9% — i rustacei là fuori sono chiaramente felici in media. Tuttavia, Rust non è apparso nella sezione “Tecnologie più popolari” dello stesso sondaggio, indicando che la quantità di utenti complessivi è ancora piuttosto piccola.

Non dovrebbe sorprendere dopo il sondaggio che molte persone si stanno affrettando a provarlo, e quando arriva quel momento, sorge inevitabilmente la domanda: quale IDE dovresti usare per sviluppare in Rust?

Ad oggi, non esiste un chiaro monopolio sugli IDE Ruggine e quindi nessun chiaro vincitore. Per quanto ci si sente come che può rendere confuso, questo può effettivamente essere una buona cosa in quanto vi sono una varietà di scelte che alla fine si riducono alle preferenze dell’utente.

Questo articolo prenderà molte opinioni su Internet e tenterà di illuminare sia i pro che i contro.

IntelliJ IDEA di IntelliJ Ruggine plugin

Ruggine con IntelliJ IDEA (di credito matklad su GIPHY)

potete trovare il link qui sul IntelliJ Ruggine sito web.

  • Open-source
  • Scritto da alcuni dipendenti e volontari JetBrains
  • Nessun debug

MODIFICA (5/28/19): Secondo il lettore Chris Vest:

Si può fare il debug quando installato in CLion.

  • Gratuito per la community edition, la licenza per la versione premium
  • funzionalità di Refactoring
  • Supporta l’aggiunta di nuovi moduli
  • Supporta abbozzando tratto implementazioni

Il set di funzionalità è incredibile, ma io lo trovo lento… qualcun altro ha questo problema? A volte ci vogliono minuti per l’aggiornamento della sintassi e dell’evidenziazione degli errori dopo aver digitato un nuovo codice.

—/u /NeuroXc on/r/rust

Ho usato entrambi i vim con rust.plugin vim e Intellij con il suo plugin Rust. Intellij ha l’esperienza ide più completa che ho provato e i migliori completamenti, ma preferisco ancora vim.

—/u /Zethra on/r/rust

Io uso Intellij con il plugin Rust. Sto già usando Jetbrains IDEs molto per il lavoro uni, quindi aveva senso attenersi a questo.

—/u /FlourineWizard on/r/rust

Avevo evitato intellij a causa della mancanza di debugger (funziona solo in clion).

Dopo aver provato intellij, il completamento ha funzionato alla grande immediatamente (dopo l’indice iniziale). Tuttavia poi ho iniziato a imbattermi in cose strane. Non ho alcun setup notturno, tuttavia completa le cose di notte. Sembra che sia conforme all’IDE, fino a quando non viene eseguita una build, quindi non lo fa. Non riesco a capire come sta ottenendo quelli o come disabilitarlo.

Intellij ha tonnellate di refactors che altri non hanno. Ha cose che ho perso in vs code che ho richieste di funzionalità.

Tuttavia, ha altri problemi come se dicesse casualmente che le cose non vengono compilate. Dirà metodo mancante. Tuttavia, se elimini la riga, verrà completata, quindi di nuovo dire il metodo mancante.

Quindi solo una nota a margine, intellij è di gran lunga l’IDE più pesante. Funziona a malapena sul mio laptop (che è davvero vecchio in tutta onestà, e probabilmente dovrei prenderne un altro), dove gli altri “funzionano” bene (qualunque cosa tu voglia definire per eclipse, e il codice vs è stato fantastico fino a quando non ho fatto qualsiasi cosa per interrompere il completamento).

Penso che la vera risposta sia che non siamo ancora IDE.

—/u /r3vj4m3z su/r/rust

Il plugin IntelliJ rust è davvero buono. Ho usato vim+racer+ycm per un po’, e io amo Vim, ma soprattutto per i grandi, progetti di produzione con un sacco di moduli e profondo gerarchie, IntelliJ è solo molto più produttivo (roba come rinominare struct campo tutta l’codice di base)

— /u/neuronsguy in /r/ruggine

Intellij-ruggine è certamente estremamente facile da ottenere andare con, ma la pesantezza di IJ stesso mi ha spinto via.

—/u /Cldfire on/r/rust

Funziona molto bene e ha uno sviluppo attivo.
Lo consiglio vivamente se si può risparmiare la RAM e l’utilizzo della CPU.

— chimmihc on rust-lang.org

EDIT 6/24/19: Il lettore Joseph Noose aveva il seguente da aggiungere:

Per me il grande vantaggio di IntelliJ su VSS erano i completamenti let, che a volte quando si tratta di terze parti diventa più veloce e più facile vedere quale oggetto viene restituito. Ho trovato che con alcune delle cose diesel era particolarmente utile dato che gli oggetti sono piuttosto lunghi

CLion con IntelliJ Rust plugin

Un’altra opzione con JetBrains, CLion è un IDE C / C++ che può anche supportare il plugin IntelliJ Rust.

  • Consente l’uso del sistema di costruzione del carico
  • Supporto per il debug di applicazioni Rust — a differenza di IntelliJ IDEA
  • Richiede licenza commerciale (o gratuito con .edu indirizzo e-mail)

Clion con il plugin Rust per IntelliJ è probabilmente il più vicino a un IDE specifico di Rust che esiste; tuttavia, il progetto Eclipse potrebbe crearne uno, è attualmente in discussione.

—/u /steveklabnik1 on/r/rust

Il supporto per il debug in CLion è eccellente! Non ottiene abbastanza elogi. I valori di runtime in linea nel codice nei punti di interruzione sono piacevoli (1) , così è l’ispettore di debug (2) e, impostando i punti di interruzione condizionali, molto comodo da fare.
Vedi: 1 2 3

— /u/Monadic_Malic_Acid on /r/rust

VSCode with Rust plugin

VSCode with Rust (credit rust-lang.org)
  • Open-source (gratuito)
  • Built-in Carico supporto
  • il completamento del Codice
  • Saltare per definizione, peek definizione, trova tutti i riferimenti, simbolo di ricerca
  • Tipi e documentazione su hover
  • la formattazione del Codice
  • Refactoring (rinominare, deglob)
  • Errore di scarabocchi e applicare i suggerimenti da errori
  • Snippet
  • Creare attività
  • Powered by Ruggine Linguaggio Server (RLS)
  • Formato su salva, se desiderato

VSCode ha un buon Linguaggio Server di supporto, il che significa che il le nuove funzionalità RLS funzionano molto bene in esso. È più un’esperienza IDE tradizionale, ma preferisco usare una sessione tmux come IDE con Vim come editor di codice.

—/u /IDidntChooseUsername su/r/rust

+1 per VSCode + Estensione. Perché? Alcune persone vogliono solo guardare il mondo bruciare. Ma seriamente. VSCode è un editor davvero, davvero buono.

Lo uso per C, C++, C#, Javascript, Erlang, Prolog, Lisp, F# e ora Rust.

Nessun emacs pinky.

Funziona appena fuori dalla scatola.

Comando pallete è anche piuttosto baller.

Hanno sostituito il loro sistema grep con la versione rust di recente e ottenuto un enorme aumento delle prestazioni. Sono letteralmente qui a causa delle note di rilascio di VSCode di circa una settimana o 2 fa.

Integrazione Git solida.

Multipiattaforma.

Ho già detto che mi piace guardare il mondo bruciare?

— on/r/rust

Uso il codice VS con l’estensione rust per tutta la mia codifica rust. Mi è servito molto bene finora, tutto ciò che non posso fare con le combinazioni di tasti fornite dall’estensione può essere fatto con la console integrata, quindi non ho davvero lamentele.

—/u /YourGamerMom on/r/rust

Vorrei raccomandare VSCode, il plugin Rust fornisce completamento automatico, evidenziazione della sintassi, e alcune altre caratteristiche interessanti. Ma soprattutto, c’è un bel plugin LLDB che consente il debug visivo che è un vantaggio rispetto ad altri IDE che ho provato.

Ed è multipiattaforma.

— mczarnek su rust-lang.org

dopo Aver trascorso 3+ settimane ciascuno con intellij-ruggine, vscode-ruggine e diversi plugin per la ruggine supporto in Sublime Text 3, posso tranquillamente dire che l’esperienza migliore che ho avuto fino a questo punto è stato con il vscode plugin(s) … Vscode colpisce la zona perfetta per me; è stata immediata ad alzarsi e a correre (dal momento che avevo già gli strumenti necessari cargo installare piacerebbe e la ruggine src componente aggiunto tramite rustup, tutto ha funzionato out of the box) e mantiene ancora l’editor di esperienza. L’unica cosa che non sono stato in grado di lavorare è il frontend LLDB, ma questo è dovuto al mio uso del WSL, non alla colpa del plugin stesso.

TL: DR, consiglio vscode.

—/u /Cldfire on/r/rust

(Neo)vim con plugin Rust (come rust.vim, vim.racer)

Esempio di Ruggine con Vim (credito Jovansonlee Cesar su GitHub)

usate per Vim e non può allontanarsi dai suoi vari testo i comandi di manipolazione? Non temere: molte persone usano Vim quando si sviluppano in Rust.

Puoi andare con un’installazione Vim plain vanilla, oppure puoi usare altri sapori come Neovim.

Neovim

  • Open-source
  • Community-driven
  • Accesso all’esecuzione di lavori/attività in modo asincrono in vim (h/t Dhruva Sagar su StackOverflow)

Qualunque sia il sapore di Vim che si utilizza, è possibile sfruttare i plug-in specifici di Rust.

ruggine.vim

  • Rilevamento file Rust
  • Evidenziazione della sintassi
  • Formattazione
  • Integrazione sintastica
  • Richiede Vim 8 o superiore per la piena funzionalità

vim.racer

  • Consente a vim di utilizzare Racer per il completamento e la navigazione del codice Rust

Vim, ed è un po ‘ doloroso tbh. Sono aperto ai suggerimenti. Il lato di manipolazione del testo di Vim è incredibile. E ‘ solo strabiliante. Ma il resto di Vim è piuttosto sh * t,e con i tipi di errori complessi che si ottengono in Rust è piuttosto doloroso passare al terminale.

Voglio passare a VSCode o simili, ma la mancanza di comandi di modifica Vim è davvero forte.

—/u /jl2352 on/r/rust

Con abbastanza plugin (cose come i server di lingua, ecc.) puoi rendere il resto di (neo)vim davvero utilizzabile, imo.

—/u /ashfordneil on/r/rust

Ho usato entrambi i vim con rust.plugin vim e Intellij con il suo plugin Rust. Intellij ha l’esperienza ide più completa che ho provato e i migliori completamenti, ma preferisco ancora vim. Consiglierei di provare le impostazioni menzionate su https://areweideyet.com/ e vedere cosa funziona meglio per te.

—/u /Zethra on/r/rust

È interessante notare che alcuni puristi non usano affatto i plugin Rust!

Vim con completamento automatico incorporato (+autocomplpop). Fuggitivo. Questo è fondamentalmente it Non più plugin di fantasia! E sì, lavoro su grandi basi di codice con questa configurazione!

— /u/musicmatze in /r/ruggine

Emacs

emacs-pilota racer-ruggine (credito RecordNotFound)

mi sento come se si sta andando ad includere vi(m), probabilmente si dovrebbe almeno dare emacs una menzione.

Add

Aggiungi a ciò che c’è un progetto per portare emacs a rust. Lo uso come sostituto drop-in per emacs sulle mie macchine linux.

Nota: In realtà non uso emacs per alcuno sviluppo di ruggine pesante. Sto attraversando il mio viaggio di apprendimento della ruggine usando IntelliJ IDEA.

— Chris Woods, in questo post i commenti

  • Con Racer, offre al completamento del codice
  • Ha Cargo (gestore pacchetti) supporto con le combinazioni di tasti
  • Ha ruggine-lang configurazione per la Ruggine specifiche di programmazione in Emacs
  • Supporta rustfmt con ruggine-lang
  • Gratis

Si dovrebbe usare MELPA e use-package per installare i pacchetti in emacs.

Configurare Rust per usare RLS su emacs è un po ‘ complicato per un principiante. Qui è il mio RLS configurazione se siete interessati: https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-lsp.el e https://github.com/CSRaghunandan/.emacs.d/blob/master/setup-files/setup-rust.el

— /u/CSRaghunandan in /r/ruggine

lo dico come qualcuno ancora imparando Ruggine, e non come una raccomandazione per le persone che fanno la vera contributi per la produzione di codice.

Uso Emacs in modalità Rust senza altri fronzoli.

Se il mio codice è abbastanza complicato da aver bisogno di un IDE per seguirlo, è abbastanza complicato che qualcun altro non sarà in grado di seguirlo con quell’aiuto. E se ho bisogno di completamento automatico per sapere quale funzione voglio chiamare e la sua firma di tipo, probabilmente non ho alcuna attività che lo chiami senza dare ai documenti almeno una volta, quindi non è un problema extra cercarlo.

— /u/bxtk in /r/ruggine

Sublime con la Ruggine Avanzata

Sublime con la Ruggine Avanzata (credito ruggine-lang via packagecontrol.io)
  • Open-source (gratuito)
  • vai a nulla
  • vai a definizione
  • Dividi la modifica
  • Basso profilo

funziona abbastanza bene, ma potrebbe essere un po ‘ più user-friendly. Questo tuttavia è più un problema Sublime che un problema di plugin.

—/u /booooomba on/r/rust

L’ho provato, ma ho perso gli strumenti di refactoring, un buon terminale integrato e digito al passaggio del mouse rispetto al plugin VSCode + Rust.

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

L’unico fastidio è che non considera i test, e quindi non rileva errori di compilazione in essi, e sputa un SACCO di avvertimenti sulle funzioni inutilizzate. (Test di scrittura prima per la mia lib)

—/u /Rawler82 on/r/rust

Non ha le migliori caratteristiche impostate, ma è veloce e piccolo (basso su RAM e spazio su disco).

—/u /razrfalcon on/r/rust

La situazione del plugin di Sublime Text 3 è, almeno per me, piuttosto traballante; mentre sono stato in grado di far funzionare le cose principalmente su macOS, non sono mai stato in grado di completare automaticamente il lavoro su Windows 10 (oltre al tempo).

—/u /Cldfire on/r/rust

Alcune persone non usano alcun plug-in aggiuntivo con Rust Enhanced.

Io uso il testo Sublime per tutto. Per quanto riguarda la costruzione, tengo solo una finestra del terminale aperta nella parte inferiore dello schermo concargo watch in esecuzione.

Non ho alcun plugin specifico di Rust, ma dato tutti i consigli qui, penso che proverò il plugin Rust Enhanced in seguito.

— /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 il menu)
  • Formato di file con rustfmt (ctrl-shift-c o cmd-shift-c anche nel menu di contesto)
  • Formato su salva (disattivata per impostazione predefinita, vedere atom-ide-ui impostazioni)

lingua-ruggine

  • Aggiunge l’evidenziazione della sintassi e frammenti di Ruggine file Atom

linter-ruggine

  • Linting tuo Ruggine file Atom, utilizzando rustc e cargo
  • File sarà verificata quando si apre o si salva li

токамак (tokamak)

  • evidenziazione della Sintassi
  • Creazione di Carico di progetto
  • Supporto per il Carico progetti
  • il Completamento del Codice, con Racer
  • Gestione di Ruggine toolchain
  • Codice Linting
  • Progetto specifico di configurazione
  • la formattazione del Codice
  • Vai a definizione
  • Passa per la documentazione
  • Trovare riferimenti
  • Struttura del file e il progetto
  • Completamento automatico out-of-the-box
  • evidenziazione del Codice

racer

  • Fornire intelligente completamento del codice e “trovare”definizione

io sto usando la lingua come la ruggine, linter-ruggine, racer (completamento automatico) e atom-abbellire un rustup di installazione. L’impostazione dei percorsi ha richiesto un po ‘ di tempo, ma funziona abbastanza bene. Ho anche provato a passare a Tokamak qualche tempo fa, ma non ha funzionato per me.

Sto eseguendo il mio codice rust in una finestra zsh separata che è affiancata da qualche addon Gnome e sempre visibile (non mi sento pronto per andare i3). Con un albero di file, una vista codice, una minimappa e una finestra di terminale ci sono quattro colonne in totale e a volte ci si sente un po ‘ angusti. Quando non ho un grande monitor collegato al mio laptop, eseguo atom a schermo intero.

— roSievers su rust-lang.org

Stavo usando Atom per Rust per circa 9 mesi, avendo precedentemente usato Atom per tutto il mio sviluppo Python. Ho fatto più o meno lo stesso di @roSievers sopra, ma ho trovato problemi ricorrenti su macOS (specialmente con le variabili di ambiente che non venivano passate senza problemi). Non sono mai riuscito a far funzionare Tokamak correttamente.

— pwrdwnsys on rust-lang.org

onestamente non penso che sublime paragoni alla funzionalità che c’è in atom per rust.

la velocità di avvio è lenta, ma tutto il resto è totalmente accettabile.

e preferisco i pacchettilinter elinter-rust, poiché ti mostreranno errori di compilazione e avvisi in linea ½ sec dopo aver premuto ctrl+s!

— /u/volo-ovini /r/ruggine

Eclipse Corrosione (Eclipse IDE per la Ruggine Sviluppatori)

IDE Eclipse per la Ruggine Sviluppatori (di credito, di Corrosione su GitHub)
  • Utile se si sta già utilizzato per Eclipse
  • Integrazione con la Ruggine Server di Lingua e di Carico
  • Completamento Assist
  • Documentazione passaggio del mouse
  • Diagnostica
  • Formattazione
  • Variabili Vista
  • GDB Console
  • i punti di Interruzione
  • Espressione di Esecuzione
  • creazione Guidata Nuovo Progetto
  • Strumenti di Gestione
  • TOML la modifica di file di supporto
  • Esporta Cassa Guidata
  • Ruggine Lingua Preferenze del Server
  • Progetto
  • Tema scuro
  • Problemi Vista
  • l’integrazione con Git (disponibile Solo in Corrosione Pacchetto)
  • Open-source (gratuito)

dispone inoltre di esportare come Cassa, l’Esecuzione e il supporto per il Debug (oltre GDB) integrazione; questi non sono forniti da RLS ma dall’integrazione diretta con cargo e rust-gdb

— / u / mickael_istria on / r / rust