Gemini Code Assist in der IDE
Gemini Code Assist bringt Completions, Chat und mehrstufige Agents direkt in VS Code und JetBrains. Das bedeutet: das Modell liest Ihr echtes Projekt statt des Snippets, das Sie zufällig in ein Chatfenster kopiert haben. Dieser eine Unterschied (vollständiger Repository-Kontext versus ein einzelner Absatz) ist der Grund, warum der IDE-Assistent verändert, wie Sie refactoren, debuggen und ausliefern.
Diese Lektion setzt voraus, dass Sie Context Windows und Agents konzeptionell verstehen. Hier gehen wir tief in die konkreten Surfaces, die Code Assist bereitstellt, wie Sie damit ein echtes Refactoring durchführen und die genauen Momente, in denen die IDE der Gemini App vorzuziehen ist.
Was Code Assist tatsächlich ist
Gemini Code Assist ist ein Plugin. Sie installieren es aus dem VS Code Marketplace oder der JetBrains-Plugin-Registry, melden sich mit einem Google-Konto an, und es hängt Geminis auf Coding getunte Modelle an Ihren Editor. Die offizielle Setup- und Feature-Referenz finden Sie unter cloud.google.com/gemini/docs/codeassist.
Es stellt drei unterschiedliche Surfaces bereit, und zu wissen, in welchem Sie sich befinden, macht einen Unterschied:
- Inline-Completions. Grauer Ghost Text während des Tippens. Tab drücken, um zu übernehmen. Das ist lokal, schnell und reagiert auf die Datei, die Sie gerade bearbeiten, plus benachbarte offene Dateien.
- Chat-Panel. Ein Seitenpanel, in dem Sie Fragen in natürlicher Sprache stellen. Entscheidend: Sie kkDie durchschnittliche Zahl neuer Nutzer, die jeder bestehende Nutzer über Empfehlungen generiert. Über 1,0 verstärkt sich das Wachstum selbst und wird exponentiell.Vollständige Definition ansehen →önnen Dateien und Ordner per
@-Mention explizit in den Kontext holen. - Agent Mode. Sie beschreiben ein Ergebnis („Pagination zum Orders-Endpoint hinzufügen"), und der Agent plant, bearbeitet mehrere Dateien, führt Befehle aus und zeigt Ihnen ein Diff zur Freigabe. Dieses Surface kommt der Gemini CLI am nächsten, lebt aber im Review-Flow Ihres Editors.
Es gibt zwei Tiers. Das kostenlose Code Assist for individuals hat großzügige Limits und reicht für Einzelarbeit. Standard und Enterprise verbinden sich mit Ihrem Google Cloud Projekt, ergänzen Admin-Kontrollen, IP-Indemnifizierung und die Möglichkeit, den Assistenten mit Ihrem privaten Code über Code Customization anzupassen (es indexiert Ihre Repos, sodass Completions zu Ihren hauseigenen Patterns passen). Details zu den Tiers finden Sie unter cloud.google.com/gemini/docs/codeassist/overview.
Warum die IDE dem Copy-Paste überlegen ist
Wenn Sie eine Funktion in die Gemini App kopieren, geben Sie dem Modell ein Fragment ohne jede Umgebung. Es kann den Typ nicht sehen, der zwei Dateien weiter definiert ist, nicht den Test, der das Verhalten fixiert, und nicht den Helper, den Sie längst geschrieben haben und der die halbe Arbeit macht. Also rät es, und Sie verbringen die nächsten zehn Minuten damit, Imports und Signaturen zu korrigieren.
In der IDE löst Code Assist diesen Kontext automatisch auf. Wenn Sie es bitten, eine Funktion zu ändern, sieht es die Aufrufer, die Typen und die Projektstruktur. Das Ergebnis sind weniger halluzinierte Imports und Änderungen, die tatsächlich kompilieren.
Nutzen Sie die IDE, wenn:
- Die Änderung mehr als eine Datei betrifft oder von Typen abhängt, die anderswo definiert sind.
- Sie die Änderung als überprüfbares Diff wollen, nicht als eingefügten Text, den Sie von Hand wieder zusammensetzen.
- Sie brauchen, dass der Assistent nach dem Editieren die Tests ausführt und auf Fehler reagiert.
Nutzen Sie die Gemini App oder AI Studio, wenn Sie eine Idee ohne bestehende Codebasis erkunden, ein Wegwerf-Skript entwerfen oder über Architektur nachdenken, bevor Dateien existieren. Die Stärke der App ist offenes Denken. Die Stärke der IDE ist geerdete Ausführung.
Ein konkretes Refactoring
Hier ein kleines, aber echtes Beispiel. Sie haben eine synchrone Python-Funktion, die User einzeln abruft, und sie ist langsam. Sie wollen sie auf async mit gleichzeitigen Abrufen umstellen.
Ausgangscode in services/users.py:
import requests
def fetch_users(user_ids):
results = []
for uid in user_ids:
resp = requests.get(f"https://api.example.com/users/{uid}")
resp.raise_for_status()
results.append(resp.json())
return resultsSchritt 1: Den Request mit Kontext rahmen
Öffnen Sie das Chat-Panel und @-mentionen Sie die Datei plus ihren Test:
Refactore@services/users.pyso, dasshttpx.AsyncClientverwendet wird und alle User gleichzeitig mitasyncio.gatherabgerufen werden. Behalte die gleiche Return-Struktur. Aktualisiere@tests/test_users.pypassend. Ändere den öffentlichen Funktionsnamen nicht.
Beachten Sie, was der Prompt leistet. ErErDas Verhältnis von Interaktionen (Likes, Kommentare, Shares) zur Reichweite eines Inhalts. Zeigt, wie stark die Zielgruppe reagiert, gemessen an der Zahl der Personen, die den Inhalt gesehen haben.Vollständige Definition ansehen → nennt die Library, das Concurrency-Primitiv, die Bedingung zur Return-Struktur und die Bedingung zum Namen. Code Assist ist gut, aber ein vages „mach das async" lässt es Entscheidungen erfinden, die Sie wieder rückgängig machen müssen. Spezifizieren Sie den Vertrag; die Mechanik übernimmt das Modell.
Schritt 2: Das vorgeschlagene Diff prüfen
Agent Mode liefert ein Diff wie dieses:
import asyncio
import httpx
async def fetch_users(user_ids):
async with httpx.AsyncClient() as client:
tasks = [client.get(f"https://api.example.com/users/{uid}") for uid in user_ids]
responses = await asyncio.gather(*tasks)
results = []
for resp in responses:
resp.raise_for_status()
results.append(resp.json())
return resultsHier zahlt sich das Review in der IDE aus. Das Modell hat den Namen behalten, die Return-Struktur behalten und die raise_for_status-Prüfungen hinter gather verschoben. Sie sehen das komplette Vorher/Nachher im Diff-Viewer und können es Datei für Datei annehmen oder einen Hunk ablehnen und im gleichen Chat-Thread eine Änderung anfordern.
Schritt 3: Die Tests laufen lassen
Sagen Sie dem Agent: „Führe die Test-Suite aus und behebe alles, was bricht." Er wird erkennen, dass fetch_users jetzt eine Coroutine ist, den Test finden, der sie synchron aufruft, und @pytest.mark.asyncio plus ein await ergänzen. Weil er den Befehl ausführen und die Fehlerausgabe lesen kann, iteriert er statt zu raten. Genau diesen Feedback-Loop bekommen Sie in der Chat-App einfach nicht.
Schritt 4: Verifizieren, nicht vertrauen
Code Assist hat eine stille Entscheidung getroffen, die es zu bemerken lohnt: Wenn ein einzelner Request fehlschlägt, wirft asyncio.gather sofort und der gesamte Batch stirbt. Der Originalcode scheiterte ebenfalls beim ersten Fehler, das Verhalten bleibt also erhalten, aber das ist genau die Art von Detail, die Sie im Diff bestätigen. Der Assistent beschleunigt das Tippen; die Semantik gehört weiterhin Ihnen.
Completions bewusst steuern
Inline-Completions wirken passiv, aber Sie können sie lenken. Der stärkste Hebel ist der Code, den Sie oberhalb des Cursors bereits geschrieben haben. Ein sprechender Funktionsname und ein klarer Docstring erzeugen dramatisch besseren Ghost Text als ein nacktes def process():.
Ein praktisches Muster: Schreiben Sie die Signatur und einen einzeiligen Docstring, dann Pause. Code Assist vervollständigt den ganzen Body oft korrekt, weil die Absicht nun eindeutig ist.
def parse_iso_timestamp(value: str) -> datetime:
"""Parse an ISO 8601 string, assuming UTC when no offset is present."""
# Completion füllt den Body von hier anKommentare funktionieren ebenfalls als Inline-Anweisungen. Tippen Sie # **diese Liste von Dicts in ein pandas DataFrame umwandeln und Null-Zeilen entfernen** in eine eigene Zeile, und die nächste Completion macht meist genau das.
Get started with Gemini Code Assist in VS Code
Kontext und Regeln konfigurieren
Code Assist respektiert einige Projektkonventionen, die den Output merklich verbessern. Sie können dem Agent dauerhafte Anweisungen geben, damit Sie sich nicht in jedem Prompt wiederholen. Legen Sie eine Kontextdatei im Root Ihres Repos ab, die die Standards beschreibt, die der Assistent immer befolgen soll:
# .gemini/styleguide.md wird von Code Assist für Code Review und Chat gelesen
rules:
- Prefer httpx over requests for new HTTP code.
- All public functions require type hints and a docstring.
- Use pytest, never unittest, for new tests.
- Raise domain exceptions from errors.py, not bare Exception.Mit dieser Datei hätte das obige Refactoring httpx gewählt und Type Hints ergänzt, ohne dass Sie danach fragen. Dauerhafte Regeln machen aus dem Assistenten statt eines generischen Coders einen, der zu Ihrer Codebasis passt. Prüfen Sie das aktuelle Config-Format in der Doku, da sich Dateiname und SchemaSchemaEin Schema ist der formale Bauplan, der festlegt, wie Daten in einer Datenbank, einer Datei oder einer Nachricht strukturiert, benannt, typisiert und miteinander verknüpft sind.Vollständige Definition ansehen → weiterentwickeln.
Das Enterprise-Feature Code Customization geht weiter: Es verbindet sich mit Ihren Source-Repositories, sodass Completions aus Ihren privaten Patterns gezogen werden, nicht nur aus öffentlichen Trainingsdaten. Das ist der Unterschied zwischen „ein korrektes async-Refactoring" und „ein async-Refactoring, das den exakten Client-Wrapper und die Error-Typen Ihres Teams verwendet".
Wissenscheck
1. Was ist der grundlegende Vorteil von Gemini Code Assist in der IDE gegenüber dem Einfügen eines Snippets in die Gemini App?
2. Sie wollen ein Ergebnis beschreiben wie „Pagination zum Orders-Endpoint hinzufügen" und möchten, dass der Assistent plant, mehrere Dateien bearbeitet, Befehle ausführt und ein Diff zur Freigabe vorlegt. Welches Surface nutzen Sie?
3. Was beschreibt das Verhalten von Inline-Completions in Code Assist am besten?
4. Wählen Sie ALLE Surfaces, die Gemini Code Assist in der IDE bereitstellt.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE Features, die die Standard-/Enterprise-Tiers vom kostenlosen Code Assist for individuals unterscheiden.
Wählen Sie alle richtigen Antworten aus.
Wie es sich zu Gemini CLI und dem größeren Stack verhält
Code Assist und Gemini CLI teilen dieselbe zugrunde liegende Agent-Fähigkeit, passen aber in unterschiedliche Workflows. Die CLI lebt im Terminal und glänzt bei skriptbaren, headless oder git-zentrierten Aufgaben („fasse das Diff auf diesem Branch zusammen", „scaffolde einen neuen Service aus dieser Spec"). Code Assist lebt im Editor und glänzt, wenn Sie Code visuell lesen und prüfen, Hunk für Hunk. Viele Engineers nutzen beides: CLI für terminalgetriebene Automatisierung, das IDE-Plugin für interaktives Editieren.
Beide verbinden sich nach außen über Extensions und das Model Context ProtocolModel Context ProtocolEin offener Standard, mit dem KI-Assistenten einheitlich und kontrolliert an die Werkzeuge und Daten des Unternehmens angebunden werden, statt jede Integration einzeln zu bauen.Vollständige Definition ansehen → (MCP), den offenen Standard, um einem Agent Tools und Datenquellen bereitzustellen. Sie können den Agent von Code Assist an einen MCP-Server anbinden, der etwa Ihren Issue Tracker oder Ihr Datenbankschema abfragt, sodass der Agent über lebenden Projektkontext schließt statt zu raten. Das Muster ist dasselbe, das Sie bei Gemini CLI und beim Agent Development Kit sehen: Tools einmal beschreiben, den Agent sie aufrufen lassen.
Wenn ein Refactoring der IDE entwächst (Sie wollen einen geplanten Job, einen gehosteten Endpoint oder eine Multi-Agent-PipelinePipelineAlle aktiven Verkaufschancen über die Phasen des Vertriebsprozesses hinweg, zusammen mit ihrem gesamten potenziellen Wert und ihrer Abschlusswahrscheinlichkeit.Vollständige Definition ansehen →), ist das die Grenze, an der Sie zur Gemini APIAPIApplication Programming Interface: eine standardisierte Schnittstelle, über die Anwendungen kommunizieren und Daten austauschen, ohne die interne Funktionsweise der jeweils anderen zu kennen.Vollständige Definition ansehen → über AI Studio oder zu Vertex AI wechseln. Die IDE ist zum Bauen des Codes; Vertex AI ist zum Betreiben von Modellen in Produktion. Halten Sie die beiden Rollen im Kopf getrennt, dann greifen Sie schneller zum richtigen Werkzeug.
Ein Workflow, der wirklich skaliert
Der Fehler ist, Code Assist als schnelleres Autocomplete zu behandeln. Das Muster mit mehr Hebel ist, in Ergebnissen zu arbeiten:
- Ziel und Rahmenbedingungen im Chat formulieren, mit
@-mentionten Dateien. - Agent Mode ein Multi-File-Diff erzeugen lassen.
- Jeden Hunk prüfen; Falsches mit einer Folgenachricht ablehnen.
- Die Tests laufen lassen und auf Fehlern iterieren.
- Selbst committen, nachdem Sie das Ergebnis gelesen haben.
Schritte 3 und 5 sind nicht verhandelbar. Der Assistent verkürzt die Zeit von der Absicht zum funktionierenden Code, aber die Verantwortung für das, was im Repo landet, bleibt bei Ihnen.
Key Takeaways
- Greifen Sie zur IDE, wenn Kontext zählt: Änderungen über mehrere Dateien, Typabhängigkeiten und Edits, die Sie als überprüfbares Diff wollen. Nutzen Sie die Gemini App nur für Exploration ohne Codebasis.
- Spezifizieren Sie den Vertrag, nicht nur das Ziel. Nennen Sie die Library, die Bedingungen und was nicht verändert werden darf. Vage Prompts lassen den Agent Entscheidungen erfinden, die Sie dann rückgängig machen müssen.
- Lassen Sie den Agent Ihre Tests ausführen. Der Execute-and-Fix-Loop ist der charakteristische Vorteil der IDE gegenüber Copy-Paste in den Chat.
- Kodieren Sie Ihre Standards einmal in einer Projekt-Kontextdatei (und Code Customization bei Enterprise), damit Completions Ihrem Hausstil entsprechen, ohne dass Sie es jedes Mal prompten.
- Prüfen Sie Diffs immer Hunk für Hunk und verantworten Sie den Commit. Code Assist beschleunigt das Tippen; für die Semantik bleiben Sie zuständig.