Skip to content

Latest commit

 

History

History
99 lines (64 loc) · 4.16 KB

README.md

File metadata and controls

99 lines (64 loc) · 4.16 KB

Fork of Helix which adds support for Github-copilot

To use:

1. Setup the copilot-lsp using my helper script:

  1. Install fish (for my script), install node.js (which runs the copilot-lsp)

  2. Run fish copilot.fish --create-lsp
    This will download the copilot-lsp and put its in /usr/local/bin/ (if you haven’t already)

  3. Run fish copilot.fish --auth
    This will create a github copilot-lsp access code in ~/.config/github-copilot/hosts.json (if one doesn't already exist)

2. Choose keybindings to map to these copilot-commands, for example:

[keys.insert]
"C-w" = "copilot_apply_completion" 
"C-e" = "copilot_show_completion"

[keys.normal]
"C-e" = "copilot_toggle_auto_render"

[editor]
copilot-auto-render = false # defaults to true if omitted

3. Run helix with copilot: hx -a

With helix started with this flag ommited (eg hx), the copilot-lsp is not started at all and no completions are requested.

With helix started with hx -a, copilot-completions are requested from the copilot-lsp when entering insert mode, and anytime that the document changes while in insert mode (typing a character, deleting a word etc).

With copilot-auto-render = true, completions are rendered immediately after they are received from the copilot-lsp.

With copilot-auto-render = false, a completion will only render if copilot_show_completion is pressed after the completion was first requested. This behaviour then resets after the next completion is requested.

Helix

Build status GitHub Release Documentation GitHub contributors Matrix Space

Screenshot

A Kakoune / Neovim inspired editor, written in Rust.

The editing model is very heavily based on Kakoune; during development I found myself agreeing with most of Kakoune's design decisions.

For more information, see the website or documentation.

All shortcuts/keymaps can be found in the documentation on the website.

Troubleshooting

Features

  • Vim-like modal editing
  • Multiple selections
  • Built-in language server support
  • Smart, incremental syntax highlighting and code editing via tree-sitter

Although it's primarily a terminal-based editor, I am interested in exploring a custom renderer (similar to Emacs) using wgpu or skulpin.

Note: Only certain languages have indentation definitions at the moment. Check runtime/queries/<lang>/ for indents.scm.

Installation

Installation documentation.

Packaging status

Contributing

Contributing guidelines can be found here.

Getting help

Your question might already be answered on the FAQ.

Discuss the project on the community Matrix Space (make sure to join #helix-editor:matrix.org if you're on a client that doesn't support Matrix Spaces yet).

Credits

Thanks to @jakenvac for designing the logo!