- Content assist completions
This integration is unofficial. Consider trying Copilot with officially supported tools. Copilot is a cloud-based service provided by Github and only works with a paid subscription.
- Copilot for Neovim (no need for Neovim itself)
- Node.js any version except 18
- Java 17 or newer
- Eclipse IDE should be configured to use Java 17 or newer
- Copy the link to update site: https://vgcpge.github.io/eclipse.copilot/
- Follow instructions to install the Copilot feature from the update site.
- A warning dialog "Trust" will request a confirmation to install unsigned content. Install on your own risk and consider gifting me a code-signing certificate.
- Hit Ctrl+Space for content-assist in "Generic Text Editor" or "Java Editor" (requires Java support to be installed separately). Any other editor suporting the standard APIs will work too (notably, "Text Editor" does not support content-assist).
- When editing a text file (any source code file counts) for the first time, plug-in will request permission to access Github Copilot in your default web browser. An error will be shown if you don't have Copilot subscription.
- A modal dialog will be shown with a code to supply in the browser. Once granted, permission is remembered by Copilot, this is a one-time operation.
To work with Java Development Tools (JDT), install additionally "JDT Integration for LSP4E" from the main Eclipse update site. You may want to remove less useful completion assistants from Preferences/Java/Editor/Content Assist/Advanced. Leave "Language Server Proposals" enabled.
There is no convenient way to configure environment variables for GUI apps on MacOS. For this reason the plugin looks for Node.js executable in /opt/homebrew/bin/node. If your Node.js is installed elsewhere, run Eclipse from terminal with PATH preconfigured.
- This integration relies on Eclipse LSP4E - Language Server Protocol client for Eclipse IDE
- Inspriration for this project comes from the first attempt by masecla22. No code have been reused from that project here.