Swift in Visual Studio Code
Swift ist eine universelle Programmiersprache, die für Anfänger zugänglich und für Experten leistungsstark ist. Sie ist schnell, modern, sicher und macht Spaß beim Schreiben. Dieses Thema befasst sich ausführlich mit der Einrichtung und Verwendung von Swift in Visual Studio Code mit der swiftlang.swift-vscode-Erweiterung.
Die Swift-Erweiterung beinhaltet
- Syntaxhervorhebung und Code-Vervollständigung
- Code-Navigationsfunktionen wie "Zur Definition springen" und "Alle Referenzen finden"
- Refactoring und schnelle Korrekturen am Code
- Paketverwaltung und Aufgaben mit Unterstützung für Swift Package Manager
- Umfassende Unterstützung für das Debugging
- Tests mit XCTest- oder Swift Testing-Frameworks
Die Swift-Erweiterung wurde entwickelt, um die folgenden Projekte zu unterstützen
- Swift Package Manager-Projekte (z. B. unter Verwendung einer
Package.swift) - Projekte, die eine
compile_commands.jsongenerieren können (z. B. mit CMake)
Erweiterung installieren
- Installieren Sie zuerst Swift. Wenn Sie Swift noch nicht auf Ihrem System installiert haben, lesen Sie die Anleitung zum Einstieg auf Swift.org.
- Laden Sie Visual Studio Code herunter und installieren Sie es.
- Installieren Sie die Swift-Erweiterung aus dem VS Code Marketplace oder direkt aus dem Erweiterungsbereich von VS Code.

Neues Swift-Projekt erstellen
Um ein neues Swift-Projekt zu erstellen, können Sie den Befehl Swift: Create New Project... in der Swift-Erweiterung verwenden, der Sie durch den Prozess führt. Diesen Befehl finden Sie, indem Sie die Befehlspalette öffnen und den unten stehenden Anweisungen folgen.
- Für macOS: CMD+Shift+P
- Andere Plattformen: Ctrl+Shift+P

- Wählen Sie den Projekttyp aus, den Sie erstellen möchten, aus der Liste der Vorlagen.
- Wählen Sie das Verzeichnis aus, in dem das Projekt gespeichert werden soll.
- Geben Sie Ihrem Projekt einen Namen.
- Öffnen Sie das neu erstellte Projekt. Sie werden aufgefordert, das Projekt im aktuellen Fenster, in einem neuen Fenster oder als Teil des aktuellen Arbeitsbereichs zu öffnen. Das Standardverhalten kann über die Einstellung
swift.openAfterCreateNewProjectkonfiguriert werden.
Sprachfunktionen
Die Swift-Erweiterung verwendet SourceKit LSP, um Sprachfunktionen zu ermöglichen. SourceKit LSP bietet die folgenden Funktionen im Editor. Verwenden Sie diese Links, um die VS Code-Dokumentation für jedes Thema einzusehen
- Code-Vervollständigung
- Zur Definition springen
- Alle Referenzen finden
- Umbenennungs-Refactoring
- Diagnosen
- Schnelle Korrekturen
SourceKit LSP bietet auch Code-Aktionen zur Automatisierung gängiger Aufgaben. Code-Aktionen in VS Code erscheinen als Glühbirne am Rand des Editors (siehe untenstehender Screenshot als Beispiel). Das Klicken auf die Glühbirne zeigt Ihnen die verfügbaren Aktionen, die Folgendes umfassen können:
- Hinzufügen von Targets zu Ihrer
Package.swift - Konvertieren von JSON in Protokolle
- Hinzufügen von Dokumentation zu Ihren Funktionen

Vor Swift 6.1 müssen Sie den Befehl swift build für Ihr Projekt entweder über die Befehlszeile oder über eine Aufgabe in VS Code ausführen, bevor Sprachfunktionen verwendet werden können. Dies füllt den Index in SourceKit-LSP auf.
Swift-Aufgaben
Visual Studio Code bietet Aufgaben als Mittel zum Ausführen externer Tools. Weitere Informationen finden Sie in der Dokumentation Integration mit externen Tools über Aufgaben.
Die Swift-Erweiterung bietet einige integrierte Aufgaben, die Sie zum Erstellen mit Swift Package Manager verwenden können. Sie können auch benutzerdefinierte Aufgaben konfigurieren, indem Sie eine tasks.json-Datei im Stammverzeichnis Ihres Projekts erstellen. Zum Beispiel werden die obigen tasks.json-Aufgaben Ihre Swift-Targets im Release-Modus erstellen
{
"version": "2.0.0",
"tasks": [
{
"type": "swift",
"label": "Swift Build All - Release",
"detail": "swift build --build-tests",
"args": ["build", "--build-tests", "-c", "release"],
"env": {},
"cwd": "${workspaceFolder}",
"group": "build"
}
]
}
Die obige Aufgabe ist so konfiguriert, dass sie zur Gruppe build gehört. Das bedeutet, dass sie im Menü run build tasks erscheint, das mit CMD+Shift+B unter macOS oder Ctrl+Shift+B auf anderen Plattformen geöffnet werden kann.

Fehler, die während eines Builds auftreten, erscheinen im Editor als Diagnosen neben denen, die von SourceKit-LSP bereitgestellt werden. Das Ausführen einer weiteren Build-Aufgabe löscht die Diagnosen des vorherigen Build-Tasks.
Debugging
Visual Studio Code bietet eine umfassende Debugging-Erfahrung. Weitere Informationen finden Sie in der Dokumentation Debugging.
Die Swift-Erweiterung nutzt die LLDB DAP-Erweiterung, um die Debugging-Unterstützung zu ermöglichen.
Standardmäßig erstellt die Erweiterung für jedes ausführbare Target in Ihrem Swift-Paket eine Startkonfiguration. Sie können diese selbst konfigurieren, indem Sie eine launch.json-Datei im Stammverzeichnis Ihres Projekts hinzufügen. Zum Beispiel startet diese launch.json eine Swift-Executable mit benutzerdefinierten Argumenten
{
"configurations": [
{
"type": "swift",
"name": "Debug swift-executable",
"request": "launch",
"args": ["--hello", "world"],
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}/.build/debug/swift-executable",
"preLaunchTask": "swift: Build Debug swift-executable"
}
]
}
Sie können eine Debugging-Sitzung über die Debug-Ansicht in VS Code starten.
- Wählen Sie die Startkonfiguration aus, die Sie debuggen möchten.
- Klicken Sie auf den grünen Play-Button, um eine Debugging-Sitzung zu starten.
Die ausführbare Datei wird gestartet und Sie können Breakpoints in Ihrem Swift-Code setzen, die beim Ausführen des Codes erreicht werden.
Die untenstehende Abbildung zeigt ein Beispiel für das Debugging eines "Hallo Welt"-Programms. Es ist an einem Breakpoint angehalten, und Sie können sehen, dass die Debug-Ansicht die Werte von Variablen im Gültigkeitsbereich anzeigt. Sie können auch über Identifikatoren im Editor schweben, um deren Variablenwerte anzuzeigen

Test Explorer
Visual Studio Code bietet eine Test-Explorer-Ansicht in der linken Seitenleiste, die verwendet werden kann
- Um zu Tests zu navigieren
- Um Tests auszuführen
- Um Tests zu debuggen
Die Swift-Erweiterung unterstützt XCTest sowie Swift Testing. Wenn Sie Tests schreiben, werden sie automatisch zum Test-Explorer hinzugefügt.

Um einen Test zu debuggen
- Setzen Sie einen Breakpoint
- Führen Sie den Test, die Testsuite oder das gesamte Test-Target mit dem Profil
Debug Testaus.
Das Profil Run Test with Coverage instrumentiert den zu testenden Code und öffnet nach Abschluss des Laufs einen Code-Coverage-Bericht. Wenn Sie abgedeckte Dateien durchsuchen, werden Zeilennummern, die während eines Tests ausgeführt wurden, grün angezeigt, und die nicht erreichten rot. Das Überfahren einer Zeilennummer zeigt an, wie oft abgedeckte Zeilen ausgeführt wurden. Zeilenausführungswerte können mit dem Befehl Test: Show Inline Coverage ein- oder ausgeblendet werden.
Swift Testing-Tests, die mit Tags annotiert sind, können im Test-Explorer mit @TestTarget:tagName gefiltert werden. Sie können dann die gefilterte Liste von Tests ausführen oder debuggen.
Die Swift VS Code-Erweiterung unterstützt nicht die Ausführung von Swift Testing-Tests in Swift 5.10 oder früheren Versionen.
Erweiterte Toolchain-Auswahl
Die Swift-Erweiterung erkennt automatisch Ihre installierte Swift-Toolchain. Sie bietet jedoch auch einen Befehl namens Swift: Select Toolchain..., mit dem Sie zwischen Toolchains wechseln können, wenn Sie mehrere installiert haben.
Dies ist eine erweiterte Funktion, die verwendet wird, um VS Code mit einer anderen Toolchain als der Standard-Toolchain auf Ihrem Computer zu konfigurieren. Es wird empfohlen, xcode-select unter macOS oder swiftly unter Linux zu verwenden, um global zwischen Toolchains zu wechseln.
Sie werden möglicherweise aufgefordert, auszuwählen, wo dieser neue Pfad konfiguriert werden soll. Ihre Optionen sind:
- Speichern in Benutzereinstellungen
- Speichern in Arbeitsbereichseinstellungen
Beachten Sie, dass Arbeitsbereichseinstellungen Vorrang vor Benutzereinstellungen haben

Die Swift-Erweiterung fordert Sie dann auf, die Erweiterung neu zu laden, um die neue Toolchain zu übernehmen. Dies ist zwingend erforderlich, da die Erweiterung andernfalls nicht korrekt funktioniert.
