Continue-Plugin für Jetbrains-IDEs und VS Code
IntelliJ IDEA bietet über den hauseigenen „AI Assistant“ die Möglichkeit, KI Unterstützung beim Programmieren zu nutzen. Dieser hat jedoch zwei gravierende Nachteile:
- Er läuft in der Cloud, d.h. Dein Code verlässt Deine Einflusssphäre und könnte vielleicht sogar für das weitergehende Training von Modellen genutzt werden.
- Er ist kostenpflichtig.
Dies hat bislang viele Entwickler davon abgehalten, ihn für die Arbeit zu nutzen.
Nun gibt es aber mit dem Plugin „Continue“ eine sehr einfache und komfortable Möglichkeit, ein beliebiges (evtl. auf Coding spezialisiertes) LLM für die Unterstützung zu nutzen. Das kann ein lokales oder auch im LAN oder in der Cloud liegendes LLM sein (oder auch mehrere).
Du kannst es über die Standard-Mechanismen von IntelliJ IDEA installieren. Wenn Du
Deine IDE neu startest, wird ein Verzeichnis ~/.continue
erstellt. Mit dem folgenden
Skript kannst Du die Konfigurationsdatei für Continue erstellen:
bash -c "cat > ~/.continue/config.yaml" <<EOF
name: Local Assistant
version: 1.0.0
schema: v1
models:
- name: qwen3-embedding:8b-q4_K_M
provider: ollama
apiBase: http://xanthana:11434
model: qwen3-embedding:8b-q4_K_M
roles:
- embed
- name: dengcao/Qwen3-Reranker-4B:Q4_K_M
provider: ollama
apiBase: http://xanthana:11434
model: dengcao/Qwen3-Reranker-4B:Q4_K_M
roles:
- rerank
- name: GGUF-Qwen3-30B-A3B-Instruct-2507-Q8_0.gguf
provider: openai
apiBase: https://textapi.jlrbg.de/v1
model: GGUF-Qwen3-30B-A3B-Instruct-2507-Q8_0.gguf
roles:
- chat
- edit
- apply
context:
- provider: code
- provider: docs
- provider: diff
- provider: file
- provider: currentFile
- provider: codebase
params:
nFinal: 5
useReranking: true
nRetrieve: 25
rules:
- |-
<role>
You are a code generation assistant that helps users with software engineering tasks. This will include solving bugs, adding new functionality, refactoring code, explaining code, and more. Adhere to the instructions below to assist the user.
</role>
<instructions>
- You should be concise, direct, and to the point. When you generate non-trivial code, you should explain what the code does and why you propose it. Do not add comments to the code you write, unless the user asks you to, or the code is complex and requires additional context.
- You should NOT answer with unnecessary preamble or postamble (such as repeating the user request or summarizing your answer), unless the user asks you to.
- When proposing code modifications, consider the available context (if provided by the user). Mimic code style, use existing libraries and utilities, and follow existing patterns. Propose changes in a way that is most idiomatic. Emphasize only the necessary changes and uses placeholders or "lazy" comments for unmodified sections.
- Your responses can use Github-flavored markdown for formatting.
- Always follow security best practices. Never introduce code that exposes or logs secrets and keys.
- Class, method and variable names should be in German
</instructions>
prompts:
- name: test
description: Schreibe Unit-Test für den markierten Code
prompt: |-
Schreibe einen umfassenden Satz von Unit-Tests für den ausgewählten Code:
- Es sollte Setup, Tests, die auf Korrektheit prüfen, einschließlich wichtiger Grenzfälle, und Teardown enthalten.
- Stelle sicher, dass die Tests vollständig und anspruchsvoll sind.
- Gib die Tests nur als Chat-Ausgabe aus, bearbeite keine Datei.
- name: comment
description: Schreibe Kommentare für den markierten Code
prompt: |-
Schreibe Kommentare für den markierten Code:
- Verändere hierbei nicht den Code an sich.
- Verwende den jeweils üblichen Stil (bspw. Javadoc für Java).
- name: explain
description: Beschreibe den folgenden Code detailliert hinsichtlich aller Methoden
und Eigenschaften.
prompt: |-
Erläutere den markierten Teil des Codes näher.
Im Einzelnen:
1. Was ist der Zweck dieses Abschnitts?
2. Wie funktioniert er Schritt für Schritt?
3. Gibt es mögliche Probleme oder Einschränkungen bei diesem Ansatz?
- name: translate
description: Übersetze den folgenden Text ins Englische
prompt: |-
Übersetze den folgenden Text ins Englische
EOF
Wie Du sehen kannst, verwende ich hier für chat
, edit
und apply
ein Modell via
OpenAI-API (über OTGWUI gehostet), und für rerank
und embed
die kleinen Modelle
lokal via Ollama. Die könnte man natürlich auch auf einem anderen Server betreiben, wenn
der lokale Rechner zu schwach dafür ist.
Das Continue-Plugin bietet die Möglichkeit, über „autocomplete“-Models eine eigene Zeilenvervollständigung zu nutzen. Erfahrungsgemäß ist die jedoch der von Jetbrains mitgelieferten weit unterlegen, die jedoch bis vor kurzem bei Aktivierung des Continue-Plugins deaktiviert wurde. Seit kurzem ist es endlich möglich, diese Jetbrains-Zeilenvervollständigung auch bei aktiviertem Continue-Plugin zu nutzen.
Die Konfiguration für die Continue-Zeilenvervollständigung habe ich daher aus der Datei entfernt.
Denke daran, die Continue-Zeilenvervollständigung unter Settings
-> Tools
->
Continue
-> Enable Tab Autocomplete
zu deaktivieren!
Mit diesem Skript kannst Du die entsprechenden Ollama-Modelle herunterladen (die oberen beiden):
ollama pull qwen3-embedding:8b-q8_0
ollama pull dengcao/Qwen3-Reranker-4B:Q8_0
ollama pull qqwen3-coder:30b-a3b-q8_0
ollama pull embeddinggemma:latest
ollama pull gemma3:27b-it-q8_0
ollama pull gpt-oss:20b
ollama pull mistral-small3.2:24b-instruct-2506-q8_0
ollama pull qwen3:30b-a3b-instruct-2507-q8_0
ollama pull qwen3:30b-a3b-thinking-2507-q8_0
Für kleinere Grafikkarten
ollama pull qwen3-embedding:8b-q4_K_M
ollama pull dengcao/Qwen3-Reranker-4B:Q4_K_M
ollama pull qwen3-coder:30b-a3b-q4_K_M
ollama pull embeddinggemma:latest
ollama pull gemma3:27b-it-q4_K_M
ollama pull gpt-oss:20b
ollama pull mistral-small3.2:24b-instruct-2506-q4_K_M
ollama pull qwen3:30b-a3b-instruct-2507-q4_K_M
ollama pull qwen3:30b-a3b-thinking-2507-q4_K_M