Ruby in Visual Studio Code
Ruby ist eine dynamische Open-Source-Programmiersprache, die für ihre Einfachheit und Produktivität bekannt ist. Mit einer ausdrucksstarken und eleganten Syntax gehört es zur Philosophie von Ruby, Entwickler glücklich zu machen. Es wird häufig für die Webentwicklung mit einer Reihe verschiedener Frameworks sowie für Skripting verwendet, was schnelle Iterationen beim Erstellen von Prototypen ermöglicht.
Dieses Thema befasst sich detailliert mit der Einrichtung und Verwendung von Ruby in Visual Studio Code mit der Ruby LSP-Erweiterung.

Installation
Ruby über einen Versionsmanager installieren
Obwohl Ruby auf einigen Betriebssystemen (wie macOS und einigen Linux-Distributionen) standardmäßig installiert ist, empfehlen wir die Verwendung eines Versionsmanagers, um auf neuere Ruby-Versionen zuzugreifen, wie z. B. rbenv auf macOS und Linux und rbenv unter Windows. Befolgen Sie die Installationsanleitung für Ihre Plattform.
Hinweis: Wie bei der Installation neuer Toolsets auf Ihrem Computer sollten Sie Ihr Terminal/Ihre Eingabeaufforderung und Ihre VS Code-Instanzen neu starten, um den aktualisierten Toolset-Speicherort in der PATH-Variable Ihrer Plattform zu verwenden.
Installieren Sie die Ruby LSP-Erweiterung in VS Code
Sie können die Ruby LSP-Erweiterung direkt in VS Code über die Ansicht "Erweiterungen" (⇧⌘X (Windows, Linux Ctrl+Shift+X)) finden und installieren, indem Sie nach "Ruby LSP" suchen.

Wir werden viele der Ruby LSP-Funktionen in diesem Thema besprechen, aber Sie können sich auch auf die Dokumentation und das Repository der Erweiterung beziehen.
Installation überprüfen
Überprüfen Sie nach der Installation das Sprachstatus-Element in der Statusleiste, um den Status des Ruby LSP-Servers anzuzeigen. Wenn der Versionsmanager konfiguriert wurde, sollte er die richtige Ruby-Version für Ihr Projekt anzeigen. Der Serverstatus sollte "starting" oder "running" anzeigen, aber nicht "error".

Die Erweiterung generiert automatisch einen Ordner .ruby-lsp mit einem benutzerdefinierten Bundle, das den Language Server Gem ruby-lsp enthält. Es sollte keine Konfiguration erforderlich sein.
Standardmäßig versucht die Erweiterung, den von Ihnen verwendeten Ruby-Versionsmanager automatisch zu erkennen und die richtigen Versionen und Pfade entsprechend zu verwenden. Wenn Sie dieses Verhalten anpassen möchten, legen Sie die folgende Konfiguration in Ihren Benutzereinstellungen Einstellungen fest
{
"rubyLsp.rubyVersionManager": {
"identifier": "rbenv"
}
}
Die Erweiterung versucht, den ruby-lsp Language Server Gem periodisch automatisch zu aktualisieren. Wenn Sie dies erzwingen möchten, verwenden Sie die Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), um Ruby LSP: Update language server gem auszuführen.
Wenn Sie Probleme haben, finden Sie weitere Schritte unter Fehlerbehebung.
Hauptfunktionen
Navigation und IntelliSense
Die Ruby LSP bietet mehrere Navigations- und IntelliSense-bezogene Funktionen wie Go to Definition, Hover, Workspace Symbol, Document Symbol, Completion und Signature Help.
Um mehr darüber zu erfahren, wie Sie sich schnell in Ihrem Quellcode mit VS Code bewegen, lesen Sie Code-Navigation.
Inline-Hinweise
Ruby LSP kann nützliche Informationen über abgeleitete oder implizite Werte in Ihrem Code anzeigen. Im folgenden Beispiel sehen Sie, dass StandardError als die implizite Ausnahme-Klasse angezeigt wird, die in einem leeren rescue-Aufruf abgefangen wird.

Während Inlay-Hinweise hilfreich sein können, um Ihren Code zu verstehen, können Sie die Funktion auch über die Einstellung Editor > Inlay Hints: Enabled (editor.inlayHints.enabled) deaktivieren oder Folgendes verwenden, um diese Funktion nur für Ruby LSP zu deaktivieren
"rubyLsp.enabledFeatures": {
"inlayHint": false,
}
Semantische Syntaxhervorhebung
Ruby LSP kann aufgrund seines umfassenden Verständnisses des Quellcodes eines Projekts semantische Syntaxhervorhebung und -formatierung nutzen.
Zum Beispiel kann es Folgendes hervorheben:
- Methodenaufrufe konsistent, ohne sie mit lokalen Variablen zu verwechseln.
- Lokale Argumente (wie Methoden-, Block- oder Lambda-Argumente) konsistent innerhalb des Gültigkeitsbereichs, in dem sie existieren.

Hinweis: Dieser Screenshot verwendet das Spinel-Theme, das im Ruby Extension Pack enthalten ist. Themes müssen die von Ruby LSP bereitgestellten Informationen nutzen, um eine umfassende Hervorhebung für Ruby-Dateien zu bieten.
Um diese Funktion zu nutzen, muss der Editor die semantische Hervorhebung aktiviert haben.
"editor.semanticHighlighting.enabled": true,
Linting und Formatierung
Standardmäßig bietet Ruby LSP Linting und Formatierung durch eine Integration mit RuboCop. Sie können Ihre Ruby-Datei mit ⇧⌥F (Windows Shift+Alt+F, Linux Ctrl+Shift+I) formatieren oder durch Ausführen des Befehls Format Document aus der Befehlspalette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) oder aus dem Kontextmenü im Editor.
Wenn Ihr Projekt RuboCop nicht verwendet, formatiert Ruby LSP Dateien mit SyntaxTree.

Sie können den Formatter auch bei jedem Speichern ausführen (Editor: Format On Save), um Ihren Ruby-Code während der Arbeit automatisch ordnungsgemäß formatiert zu halten. Dazu müssen Sie "Format on Save" aktivieren.
"editor.formatOnSave": true
Die Ruby LSP-Erweiterung bietet auch einige praktische Vervollständigungen durch "Format on Type". Zum Beispiel werden Kommentarzeilen automatisch fortgesetzt und end-Tokens, Pipes oder String-Interpolations-geschweifte Klammern automatisch geschlossen. Um "Format on Type" zu verwenden, stellen Sie sicher, dass es im Editor mit aktiviert ist
"editor.formatOnType": true
Schnelle Korrekturen
Wenn der Linter Fehler und Warnungen in Ihrem Quellcode findet, kann Ruby LSP oft vorgeschlagene Quick Fixes (auch Code Actions genannt) anbieten, die über einen Glühbirnen-Hover im Editor verfügbar sind. Sie können verfügbare Quick Fixes schnell über ⌘. (Windows, Linux Ctrl+.) öffnen.

Zusätzlich ist die Einstellung Code Action Widget: Nearby Quick Fixes einbeziehen (editor.codeActionWidget.includeNearbyQuickFixes) standardmäßig aktiviert, was den nächstgelegenen Quick Fix in einer Zeile von ⌘. (Windows, Linux Ctrl+.) (Befehls-ID editor.action.quickFix) aktiviert, unabhängig davon, wo sich Ihr Cursor in dieser Zeile befindet.
Der Befehl hebt den Quellcode hervor, der mit Quick Fixes refactored oder behoben wird. Normale Codeaktionen und nicht-fixierende Refactorings können weiterhin an der Cursorposition aktiviert werden.
Refactoring
Zusätzlich zu Quick Fixes bietet Ruby LSP auch Refactoring-Optionen über Code Actions. Zum Beispiel kann ein Ruby-Ausdruck mit einem einzigen Klick in eine lokale Variable extrahiert werden.

Debugging
Die Ruby LSP-Erweiterung unterstützt das Debugging mit dem debug-Gem (Rubys offizieller Debugger). Alternativ können Entwickler auch die VS Code RDBG-Erweiterung installieren, um Debugging-Funktionen zu erhalten.
Die folgende Dokumentation gilt für den Debugger-Client von Ruby LSP. Bitte beachten Sie das README von RDBG für Anweisungen zur Konfiguration.
Debugging von Tests
Ruby LSP fügt CodeLens-Schaltflächen über Unit-Tests hinzu, mit denen Sie Beispiele im Test-Explorer ausführen, sie in einem neuen Terminal ausführen oder den Debugger starten können. Für diese Zwecke ist keine Konfiguration erforderlich.

Debugging über Startaufgaben
Um den Debugger über Startaufgaben zu verwenden, müssen Sie Debug-Konfigurationen in einer launch.json-Datei erstellen. Die Konfiguration ermöglicht es Ihnen, das auszuführende Programm zu konfigurieren.
So erstellen Sie eine launch.json für ein Ruby-Programm
- Wählen Sie in der Debug-Ansicht (⇧⌘D (Windows, Linux Ctrl+Shift+D)) den Link eine launch.json-Datei erstellen.
- Dies zeigt ein Dropdown-Menü mit mehreren Standard-Startkonfigurationstypen an. Sie können die erste Option auswählen, aber wir werden weitere Konfigurationen hinzufügen.
- Wir können nun die erstellte Datei
.vscode/launch.jsonbearbeiten, um weitere Möglichkeiten zum Starten Ihres Ruby-Programms zum Debuggen hinzuzufügen.
Beispiel
{
"version": "0.2.0",
"configurations": [
// Launch the debugger for any given program. In this case, it will run the current file using Ruby
{
"type": "ruby_lsp",
"name": "Debug",
"request": "launch",
"program": "ruby ${file}"
},
// Launch the debugger for the current test file
{
"type": "ruby_lsp",
"request": "launch",
"name": "Debug test file",
"program": "ruby -Itest ${relativeFile}"
},
// Attach the debugger client to an existing Ruby process that has already been launched with the debugger
// server
{
"type": "ruby_lsp",
"request": "attach",
"name": "Attach to existing server"
}
]
}
Nachdem die Startkonfigurationen hinzugefügt wurden, können wir Ruby-Programme debuggen, indem wir Breakpoints hinzufügen und unsere Startaufgaben ausführen.
-
Öffnen Sie eine Ruby-Datei und klicken Sie in den linken Rand des Editors, um einen Breakpoint zu setzen. Er sollte als roter Punkt angezeigt werden.

-
Starten Sie das Debugging, indem Sie die gewünschte Aufgabe unter Run and Debug auswählen und auf die Schaltfläche "Start Debugging" klicken (Standard-Tastenkombination F5).

Nächste Schritte
Dies war ein kurzer Überblick über die Funktionen der Ruby LSP-Erweiterung in VS Code. Weitere Informationen finden Sie in den Details der Ruby LSP Dokumentation, einschließlich der Feinabstimmung spezifischer VS Code Editor-Konfigurationen.
Um über die neuesten Funktionen/Fehlerbehebungen für die Ruby LSP-Erweiterung auf dem Laufenden zu bleiben, besuchen Sie die Releases-Seite des Monorepo, das sowohl die Server- als auch die VS Code-Erweiterungs-Implementierungen enthält.
Wenn Sie Probleme oder Feature-Anfragen haben, können Sie diese gerne im GitHub-Repo von Ruby LSP melden.
Wenn Sie mehr über VS Code erfahren möchten, probieren Sie diese Themen aus:
- Grundlegende Bearbeitung – Eine kurze Einführung in die Grundlagen des VS Code-Editors.
- Erweiterung installieren – Erfahren Sie mehr über andere Erweiterungen, die im Marketplace verfügbar sind.
- Code-Navigation – Schnelles Bewegen durch Ihren Quellcode.