Native GitHub Copilot inline completions
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
Piste de recherche
Commencez par lire CodeFileDocument et CodeFileView, puis suivez les points d’entrée de CopilotClient, CopilotService, CopilotProtocol, CopilotInlineCompletionProvider et CopilotBinaryResolver. Vérifiez les versions des dépendances de CodeEditTextView et CodeEditSourceEditor et exécutez l’application avec les branches locales documentées. Le travail est terminé lorsque les versions épinglées des packages prennent en charge l’intégration, que CI compile correctement et que le flux de connexion de Settings ainsi que le texte fantôme accepté avec Tab fonctionnent de bout en bout.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
Add native GitHub Copilot inline completions to CodeEdit: as you type, the editor shows AI ghost text suggestions and accepts them with Tab. This is the app-level integration that ties together the inline suggestion rendering (CodeEditTextView) and the inline completion coordination layer (CodeEditSourceEditor).
What it adds:
- A Copilot language-server client and service (
CopilotClient,CopilotService,CopilotProtocol) that launches and talks to the officialcopilot-language-serverover LSP, including device-flow sign-in, status, and document sync. - A per-document
CopilotInlineCompletionProviderthat conforms to the editor'sInlineCompletionDelegate, maps the caret to an LSP position, requests completions, strips already-typed prefixes, and adapts results into the editor's ghost-text model. - A
CopilotBinaryResolverthat locatescopilot-language-server(explicit path,PATH, or common install dirs) and builds a launch environment that can findnode(including nvm-managed installs), since the server is a Node script. - A Settings page (enable toggle, device-flow sign-in UI, optional language-server path) and a status bar item reflecting Copilot state.
- Wiring in
CodeFileDocument/CodeFileViewto attach the provider per open document.
Design notes:
- Suggestions render as ghost text via the
CodeEditTextViewoverlay primitive and never mutate the document until accepted. - Disabled by default; opt-in via Settings. Requires a GitHub Copilot subscription.
Alternatives Considered
- A plugin/extension instead of a built-in. CodeEdit does not yet have an extension API surface for inline completions, and the integration needs the editor's cursor/lifecycle hooks, so a built-in (opt-in, behind settings) is the practical option today.
- Driving the suggestion lifecycle in the app rather than the editor. Rejected; the request/accept/dismiss lifecycle lives in
CodeEditSourceEditor(see the dependency below), and the app only supplies a concrete provider.
Additional Context
This is the top layer of a three-repo change for native inline completions:
CodeEditTextView: inline suggestion (ghost text) rendering primitive (CodeEditApp/CodeEditTextView#124, PR CodeEditApp/CodeEditTextView#125).CodeEditSourceEditor: inline completion coordination layer (CodeEditApp/CodeEditSourceEditor#374, PR CodeEditApp/CodeEditSourceEditor#375).CodeEdit(this issue): the GitHub Copilot provider and UI.
I have a working, documented implementation. Locally it builds and runs against the two dependency branches via a workspace that references local checkouts, and I have verified end to end against the real copilot-language-server (device-flow sign-in and inline ghost text that accepts with Tab). The package pins for CodeEditTextView / CodeEditSourceEditor need bumping to the releases that include layers 1 and 2 before this can build in CI. Would the maintainers welcome native Copilot support in CodeEdit?
Screenshots
I will attach a screen recording of the device-flow sign-in and inline ghost text on the PR.
- Langage dominant
- Swift
- Étoiles
- 23k
- Forks
- 1.2k
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de CodeEditApp/CodeEdit
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
CodeEditApp/CodeEdit#2190 ·
-
Is this project dead? Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 15/100
CodeEditApp/CodeEdit#2195 · 7 réactions ·
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
CodeEditApp/CodeEdit#2185 ·
-
creashes on starting Ouvertebug
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
CodeEditApp/CodeEdit#2180 ·
-
bug
CodeEditApp/CodeEdit#2174 · 1 commentaire · 1 personne assignée ·
Toutes les issues de CodeEditApp/CodeEdit
Issues similaires
-
pending-maintainer-response pending-triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
make notarise-dmg notarises whichever dist/ image sorts last, not the one make dmg just built Ouvertearea:build bug good first issue P2
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
uttrflow/uttrflow-swift#1412 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
-
enhancement
Difficulté 1/5 Moins d'une heure Accessibilité débutants 80/100
-
T-Defect
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
element-hq/element-x-ios#6191 ·