/cursor-codemirror

A Codemirror-based editor with *most* modern need-to-haves (LSP, Copilot, Vim, Remote SSH)

Primary LanguageTypeScriptMIT LicenseMIT

cursor-codemirror

Hello! This is an old version of Cursor based off of the Codemirror text editing component. If you're looking to build your own code editor from the ground-up, this may serve as a useful guide 🙂


Features

  • Standard navigation abilities: file tree, "Command P", ripgrep-based search
  • Editing table-stakes: split-panes, tabs
  • Deep language server support: intellisense, go-to-definition, code actions, linting, symantic syntax highlighting
  • Built-in versions of popular extensions: Copilot, Vim/Emacs keys, (beta) Remote-SSH
  • AI Features: auto-generated inline diffs and completions, a ChatGPT-style embedded chat, on-hover documentation suggestions

Development

To get started:

git clone git@github.com:getcursor/cursor.git
cd cursor
npm i

Then, download some non-versioned dependencies (ripgrep binaries and language server js):

./setup.sh # Mac/Linux
./setup.ps1 # Windows

Finally, to run the client:

npm start

Acknowledgements

Thank you to Marijn Haverbeke for his monumental work on Codemirror v6. Other open source dependencies that are critical to this editor include: Electron, React, Pylsp, LSP Copilot, Ripgrep, Replit's many CM packages, and Watcher. Thank you to everyone who filed bugs/suggestions on this version of the editor (especially Dan for organizing them).

Finally, thank you the members of our community who contributed to Cursor's development, including: Liam, Edoardo, Edwiin, Abby, Mileta, 孟健, Chen, and many others.