ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

LSP-copilot

by TheSecEng, jfcherng ST4 Trending

GitHub Copilot support for Sublime Text LSP plugin provided through Copilot.vim.

Details

Installs

  • Total 18K
  • Win 6K
  • Mac 8K
  • Linux 4K
Dec 21 Dec 20 Dec 19 Dec 18 Dec 17 Dec 16 Dec 15 Dec 14 Dec 13 Dec 12 Dec 11 Dec 10 Dec 9 Dec 8 Dec 7 Dec 6 Dec 5 Dec 4 Dec 3 Dec 2 Dec 1 Nov 30 Nov 29 Nov 28 Nov 27 Nov 26 Nov 25 Nov 24 Nov 23 Nov 22 Nov 21 Nov 20 Nov 19 Nov 18 Nov 17 Nov 16 Nov 15 Nov 14 Nov 13 Nov 12 Nov 11 Nov 10 Nov 9 Nov 8 Nov 7 Nov 6
Windows 9 21 28 13 10 13 6 4 10 8 8 4 10 6 3 11 7 3 5 13 5 4 4 5 0 0 0 1 5 6 8 2 1 5 10 5 2 0 0 11 11 7 5 8 9 14
Mac 10 20 46 25 14 12 8 5 10 17 11 8 9 9 7 9 9 18 7 8 3 2 6 9 0 0 0 1 6 13 9 9 2 10 5 4 7 0 0 10 5 12 9 5 17 9
Linux 5 6 22 9 3 9 4 2 5 5 7 8 6 5 6 4 3 8 6 2 0 2 5 4 0 0 0 0 2 4 5 1 0 8 2 4 4 0 0 5 8 3 4 3 7 5

Readme

Source
raw.​githubusercontent.​com

LSP-copilot

Copilot

GitHub Copilot support for Sublime Text LSP plugin provided through Copilot.vim.

This plugin uses Copilot distribution which uses OpenAI Codex to suggest codes and entire functions in real-time right from your editor.

Features

  • [x] Inline completion popup.
  • [x] Inline completion phantom.
  • [x] Panel completion.
  • [x] Chat.

Prerequisites

  • Public network connection.
  • Active GitHub Copilot subscription.

Installation

  1. Install LSP and LSP-copilot via Package Control.
  2. Restart Sublime Text.

Setup

On the first time use, follow the steps below:

  1. Open any file.
  2. Execute Copilot: Sign In from the command palette.
  3. Follow the prompts to authenticate LSP-copilot.
    1. The User Code will be auto copied to your clipboard.
    2. Paste the User Code into the pop-up GitHub authentication page.
    3. Return to Sublime Text and press OK on the dialog.
    4. If you see a “sign in OK” dialog, LSP-copilot should start working since then.

Settings

Settings are provide in the LSP-copilot.sublime-settings file, accessible using Preferences: LSP-copilot Settings in the command palette.

Setting Type Default Description
auto_ask_completions boolean true Auto ask the server for completions. Otherwise, you have to trigger it manually.
debug boolean false Enables debug mode for LSP-copilot. Enabling all commands regardless of status requirements.
hook_to_auto_complete_command boolean false Ask the server for completions when the auto_complete command is called.
authProvider string The GitHub identity to use for Copilot
github-enterprise object The configuration for Github Enterprise
local_checks boolean false Enables local checks. This feature is not fully understood yet.
telemetry boolean false Enables Copilot telemetry requests for Accept and Reject completions.
proxy string The HTTP proxy to use for Copilot requests. It's in the form of username:password@host:port or just host:port.
completion_style string popup Completion style. popup is the default, phantom is experimental (there are well-known issues).

Screenshots

Inline Completion Popup

Copilot

Inline Completion Phantom

Copilot

Panel Completion

Copilot

Chat

Copilot

FAQs

I don't want to use Tab for committing Copilot's completion

It's likely that Copilot's completion appears along with Sublime Text's autocompletion and both of them use Tab for committing the completion. This may cause a nondeterministic result.

Thus, you may want to let only one of them (or none) use the Tab key. If you don't want LSP-copilot to use the Tab key for committing the completion. You can set LSP-copilot's commit_completion_on_tab setting to false and add a custom keybinding like below.

{
    "keys": ["YOUR_OWN_DEDICATE_KEYBINDING"],
    "command": "copilot_accept_completion",
    "context": [
        {
            "key": "copilot.is_on_completion"
        }
    ]
},

I see UNABLE_TO_GET_ISSUER_CERT_LOCALLY error

If working behind a VPN and/or Proxy, you may be required to add your CA file into the NODE environment. See below for LSP-copilots support for this.

In LSP-copilot's plugin settings, add the following env key:

{
   "env": {
       "NODE_EXTRA_CA_CERTS": "/path/to/certificate.crt",
   },
   // other custom settings...
 }