Das ist neu in RustRover 2024.2

Zu den Highlights dieser Version gehören die Unterstützung für Frontend-Entwicklung und Datenbanken sowie die Code-Completion für ganze Zeilen.

Download

Kostenlos für nicht-kommerzielle Nutzung. 30-Tage-Testversion verfügbar.

Frontend-Entwicklung und Datenbankunterstützung

Unter Berücksichtigung Ihres Feedbacks haben wir die Unterstützung für Webtechnologien und Datenbanken in RustRover neu implementiert.

Code-Completion für ganze Zeilen für Rust

Mit dieser Version haben wir die Code-Completion für ganze Zeilen in der Rust-Sprache eingeführt. Diese Funktion schlägt unter Verwendung eines lokal ausgeführten Deep-Learning-Modells vollständige Codezeilen vor, ohne Daten außerhalb Ihrer IDE zu senden. Die einzeiligen grau gefärbten Vorschläge vervollständigen Anweisungen anhand des Kontexts der aktuellen Datei. Die Code-Completion für ganze Zeilen ist in Ihrem RustRover-Abonnement ohne zusätzliche Kosten enthalten.

Anhängen des Debuggers an laufende Prozesse

Sie können jetzt aktive Anwendungen debuggen, ohne sie neu zu starten. Auf diese Weise wird die Arbeit an dynamischen Bibliotheken oder Plugins in extern verwalteten Programmen erleichtert.

Verschiedene Verbesserungen für Cargo.toml

  • Wenn Sie einen Vorschlag zur Vervollständigung einer Eigenschaft mit einem anderen Typ akzeptieren, bleibt der Cursor an der gleichen Stelle.
  • Eine Top-Level-Eigenschaft wird nun mit [] eingeklammert, wenn ihr Typ ein Objekt ist, und mit [[]], wenn ihr Typ ein Array von Objekten ist.
  • In Kopfzeilen, wenn eine Eigenschaft ein Array eines einfachen Typs oder ein Objekt sein kann, werden bei Verwendung eines Vervollständigungsvorschlags dafür keine doppelten Klammern hinzugefügt.
  • Vervollständigung ist für lints verfügbar.
  • Eine neue Prüfung verhindert die Deklaration eines Arrays als Array von Tabellen.

Cargo-Profil-Umschalter

Bei der Verwendung von Run/Debug-Konfigurationen können Sie jetzt mit einem dedizierten Cargo-Profil- Umschalter das Profil festlegen, so dass Sie dies nicht mehr manuell tun müssen.

Bessere Unterstützung für den ?-Operator

Wir haben das Typen-Checking des ?-Operators erheblich verbessert. Der Operator wird jetzt in einer Reihe von Fällen, einschließlich verketteter Methodenaufrufe, durch automatische Vervollständigung vorgeschlagen. Es gibt auch eine neue Inspektion, die unwrap()-Aufrufe hervorhebt, bei denen der ?-Operator verwendet werden kann.

Ordner-Verbesserungen

Modulordner sind jetzt im Project-Ansicht als Pakete markiert, um sie von regulären Ordnern zu unterscheiden.

Außerdem löst das Ziehen und Ablegen einer Datei keinen Move-Dialog mehr für das übergeordnete Verzeichnis aus.

Proc_macro-Verbesserungen

Erweitern von Makros aus optionalen Abhängigkeiten in einem Workspace

Cargo kompiliert jetzt proc_macros und Build-Skripte für alle Abhängigkeiten, die für die ordnungsgemäße Funktion der Codeanalyse erforderlich sind. Beachten Sie, dass Sie in seltenen Fällen Funktionen deaktivieren müssen, die explizit in Konflikt stehen.

Quick-Fixes für Attribute

Neue Schnellkorrekturen schlagen jetzt vor, die Attribute #[proc_macro], #[proc_macro_derive] und #[proc_macro_attribute] zu Ihrer pub fn in prozeduralen Makro-Crates hinzuzufügen.

Intention-Aktionen in funktionsähnlichen Makroaufrufen

Intention-Aktionen sind jetzt für Tokens mit einem einzigen übereinstimmenden Element im jeweiligen erweiterten Makro verfügbar.

Vervollständigung für unaufgelöste Namensreferenzen

Wenn Sie eine Funktion verwenden, bevor Sie sie deklarieren, bietet die IDE jetzt einen Vervollständigungsvorschlag mit ihrem Namen an.

Verschiedenes

Dieses Update führt auch viele weitere Verbesserungen ein:

  • Das Ausführen eines Tests kompiliert das Projekt nicht mehr zweimal neu.
  • Inlay-Hinweise sind jetzt in asynchronen Methodenchains verfügbar.
  • Die IDE umschließt Option<...>-Rückgabewerte jetzt mit Some() (E0308).
  • Neue Warnungen informieren Sie über falsche Negative in der Syntax von {variables:?} (E0277).
  • Das Hervorheben von nicht aufgelösten Methoden wurde verbessert (E0599).
  • Die IDE benachrichtigt Sie jetzt, wenn return nicht erforderlich ist.
  • Die Anwendung der Convert the identifier-Korrektur ändert jetzt alle relevanten Verwendungen des Bezeichners.
  • Der extern location for crate does not exist on sync-Fehler wurde behoben.
  • Der integrierte Formatter funktioniert jetzt wesentlich besser, nachdem über 20 Probleme behoben wurden.
  • Unterstützung für das instabile postfix-match-Feature ist verfügbar.
  • Der Wert hinter Option/Result wird jetzt im Ansicht Threads & Variables angezeigt, wenn mit Unix LLDB debuggt wird.
  • Die Unterstützung für format!-Makroargumente wurde verbessert, und die IDE hebt jetzt nicht aufgelöste Methoden hervor.

Japanische, koreanische und chinesische Benutzeroberfläche

Die Sprachpakete für Chinesisch, Japanisch und Koreanisch sind jetzt in der IDE-Basisinstallation enthalten. Sie können die Sprache unter Settings | Appearance & Behavior | System Settings | Language and Region wechseln.

Sprachspezifisches Anheften von Zeilen

Sie können jetzt die Sprachen auswählen, für die Sie angeheftete Zeilen verwenden möchten. Sie können diese Funktion entweder in Settings | Editor | General | Sticky Lines oder über das Kontextmenü anpassen, das angezeigt wird, wenn Sie mit der rechten Maustaste auf eine angeheftete Zeile im Editor klicken.

Vorschau-Option in Search Everywhere

Der Dialog Search Everywhere enthält jetzt eine optionale Vorschau auf die gesuchten Codeelemente. Wenn diese Funktion über das Preview-Symbol in der Symbolleiste des Dialogs aktiviert wurde, wird unter den Suchergebnissen ein Vorschaufenster angezeigt, das zusätzlichen Kontext bietet und die Navigation durch Ihr Projekt vereinfacht.

AI Assistant

Wir arbeiten derzeit an der Implementierung einer Rust-spezifischen Integration mit dem AI Assistant, die sich jedoch noch in einem frühen Entwicklungsstadium befindet. Weitere Updates sind in Vorbereitung!

RustRover hat außerdem Funktionen für Remote-Entwicklung, Zusammenarbeit und Versionskontrollsysteme aus dem Plattform-Release übernommen.