{"id":31760209,"url":"https://github.com/ejgallego/rocq-lsp","last_synced_at":"2025-10-09T21:21:30.317Z","repository":{"id":41414839,"uuid":"169723166","full_name":"ejgallego/rocq-lsp","owner":"ejgallego","description":"Visual Studio Code Extension and Language Server Protocol for Rocq / Coq","archived":false,"fork":false,"pushed_at":"2025-10-07T16:10:27.000Z","size":32276,"stargazers_count":188,"open_issues_count":159,"forks_count":47,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-10-07T18:24:10.042Z","etag":null,"topics":["coq","ide","interactive-theorem-proving","language-server-protocol","rocq","rocq-prover","user-interface","vscode-extension"],"latest_commit_sha":null,"homepage":"","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ejgallego.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-02-08T11:11:38.000Z","updated_at":"2025-10-07T16:10:28.000Z","dependencies_parsed_at":"2023-10-14T19:44:33.622Z","dependency_job_id":"2efe33bc-b311-4dda-8d84-b6b091e6a092","html_url":"https://github.com/ejgallego/rocq-lsp","commit_stats":{"total_commits":1012,"total_committers":26,"mean_commits":38.92307692307692,"dds":"0.20355731225296447","last_synced_commit":"b5d3df648b154ea78fbb8afe40562c11ded4bd08"},"previous_names":["ejgallego/rocq-lsp"],"tags_count":56,"template":false,"template_full_name":null,"purl":"pkg:github/ejgallego/rocq-lsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejgallego%2Frocq-lsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejgallego%2Frocq-lsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejgallego%2Frocq-lsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejgallego%2Frocq-lsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ejgallego","download_url":"https://codeload.github.com/ejgallego/rocq-lsp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ejgallego%2Frocq-lsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002071,"owners_count":26083285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coq","ide","interactive-theorem-proving","language-server-protocol","rocq","rocq-prover","user-interface","vscode-extension"],"created_at":"2025-10-09T21:21:23.485Z","updated_at":"2025-10-09T21:21:30.310Z","avatar_url":"https://github.com/ejgallego.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rocq LSP \u003cimg align=\"right\" height=\"42\" src=\"./etc/img/inria-logo.png\"/\u003e  \u003c!-- omit in toc --\u003e\n\n[![Github CI][ci-badge]][ci-link]\n\n`rocq-lsp` is a [Language Server](https://microsoft.github.io/language-server-protocol/) for the [Rocq Prover](https://rocq-prover.org/). It provides a single server that implements:\n\n- the [LSP](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/)\n  protocol, with custom [extensions](./etc/doc/PROTOCOL.md)\n- the [petanque](./petanque) protocol, designed for low-latency interaction with\n  Rocq, idel for AI and software engineering applications\n- the [MCP](https://modelcontextprotocol.io/) protocol (upcoming), an open\n  protocol that standardizes how applications provide context to LLMs\n\n**☕ Try it online ☕**:  https://github.dev/ejgallego/hello-rocq\n\n**Key [features](#Features)** of `rocq-lsp` are: continuous, incremental document\nchecking, real-time interruptions and limits, programmable error recovery,\nliterate Markdown and LaTeX document support, multiple workspaces, positional\ngoals, information panel, performance data, completion, jump to definition,\nextensible command-line compiler, a plugin system, and more.\n\n`rocq-lsp` is built on **Flèche**, a new document checking engine for formal\ndocuments based on our previous work on\n[SerAPI](https://github.com/ejgallego/coq-serapi/) and\n[jsCoq](https://github.com/jscoq/jscoq).\n\nDesigned for interactive use and web-native environments, Flèche is extensible\nand supports [advanced tooling integration](#-a-platform-for-research) and\ncapabilities beyond standard Rocq.\n\nSee the [User Manual](./etc/doc/USER_MANUAL.md) and the [General Documentation Index](./etc/doc/) for more details.\n\nThis repository also includes the `rocq-lsp` [Visual Studio\nCode](https://code.visualstudio.com/) editor extension for the [Rocq Proof\nAssistant](https://rocq-prover.org/), and a few other components. See our\n[contributing guide](#contributing) for more information. Support\nfor [Emacs](#emacs), [Vim](#vim) and [Neovim](#neovim) is also available in\ntheir own projects.\n\n**Quick Install**:\n\n  - **🐧 Linux / 🍎 macOs / 🪟 Windows:**\n```\n$ opam install coq-lsp \u0026\u0026 code --install-extension ejgallego.coq-lsp\n```\n\n  - **🦄 Emacs**:\n\n```elisp\n (use-package rocq-mode\n    :vc (:url \"https://codeberg.org/jpoiret/rocq-mode.el.git\"\n         :rev :newest)\n    :mode \"\\\\.v\\\\'\"\n    :hook\n    (rocq-mode . rocq-follow-viewport-mode)\n    (rocq-mode . rocq-auto-goals-at-point-mode))\n```\n\n  - **🪟 Windows:** (alternative method)\n\n    Download the [Rocq Platform installer](#-server)\n\n## Table of Contents \u003c!-- omit in toc --\u003e\n\n- [🎁 Features](#-features)\n  - [⏩ Incremental Compilation and Continuous Document Checking](#-incremental-compilation-and-continuous-document-checking)\n  - [👁 On-demand, Follow The Viewport Document Checking](#-on-demand-follow-the-viewport-document-checking)\n  - [🧠 Smart, Cache-Aware Error Recovery](#-smart-cache-aware-error-recovery)\n  - [🥅 Whole-Document Goal Display](#-whole-document-goal-display)\n  - [🗒️ Markdown Support](#️-markdown-and-latex-support)\n  - [👥 Document Outline](#-document-outline)\n  - [🐝 Document Hover](#-document-hover)\n  - [📁 Multiple Workspaces](#-multiple-workspaces)\n  - [💾 `.vo` file saving](#-vo-file-saving)\n  - [⏱️ Detailed Timing and Memory Statistics](#️-detailed-timing-and-memory-statistics)\n  - [🔧 Client-Side Configuration Options](#-client-side-configuration-options)\n  - [🖵 Extensible, Machine-friendly Command Line Compiler](#️-extensive-machine-friendly-command-line-compiler)\n  - [♻️ Reusability, Standards, Modularity](#️-reusability-standards-modularity)\n  - [🌐 Web Native!](#-web-native)\n  - [🔎 A Platform for Research!](#-a-platform-for-research)\n- [🛠️ Installation](#️-installation)\n  - [🏘️ Supported Rocq (and Coq) Versions](#️-supported-rocq-versions)\n  - [🏓 Server](#-server)\n  - [🫐 Visual Studio Code](#-visual-studio-code)\n  - [🦄 Emacs](#-emacs)\n  - [✅ Vim](#-vim)\n  - [🩱 Neovim](#-neovim)\n  - [🐍 Python](#-python)\n- [⇨ `rocq-lsp` users and extensions](#-rocq-lsp-users-and-extensions)\n- [🗣️ Discussion Channel](#️-discussion-channel)\n- [☎ Weekly Calls](#-weekly-calls)\n- [❓FAQ](#faq)\n- [⁉️ Troubleshooting and Known Problems](#️-troubleshooting-and-known-problems)\n  - [📂 Working With Multiple Files](#-working-with-multiple-files)\n- [📔 Planned Features](#-planned-features)\n- [📕 Protocol Documentation](#-protocol-documentation)\n- [🤸 Contributing and Extending the System](#-contributing-and-extending-the-system)\n- [🥷 Team](#-team)\n  - [🕰️ Past Contributors](#️-past-contributors)\n- [©️ Licensing Information](#️-licensing-information)\n- [👏 Acknowledgments](#-acknowledgments)\n\n## 🎁 Features\n\n### ⏩ Incremental Compilation and Continuous Document Checking\n\nEdit your file, and `rocq-lsp` will try to re-check only what is necessary,\ncontinuously. No more dreaded `Ctrl-C Ctrl-N`! Rechecking tries to be smart,\nand will ignore whitespace changes.\n\n\u003cimg alt=\"Incremental checking\" height=\"286px\" src=\"etc/img/lsp-incr.gif\"/\u003e\n\nIn a future release, `rocq-lsp` will save its document cache to disk, so you can\nrestart your proof session where you left it at the last time.\n\nIncremental support is undergoing refinement, if `rocq-lsp` rechecks when it\nshould not, please file a bug!\n\n### 👁 On-demand, Follow The Viewport Document Checking\n\n`rocq-lsp` does also support on-demand checking. Two modes are available: follow\nthe cursor, or follow the viewport; the modes can be toggled using the Language\nStatus Item in Code's bottom right corner:\n\n\u003cimg alt=\"On-demand checking\" height=\"572px\" src=\"etc/img/on_demand.gif\"/\u003e\n\n### 🧠 Smart, Cache-Aware Error Recovery\n\n`rocq-lsp` won't stop checking on errors, but supports (and encourages) working\nwith proof documents that are only partially working. Error recovery integrates\nwith the incremental cache, and does recognize proof structure.\n\nYou can edit without fear inside a `Proof. ... Qed.`, the rest of the document\nwon't be rechecked; you can leave bullets and focused goals unfinished, and\n`rocq-lsp` will automatically admit them for you.\n\nIf a lemma is not completed, `rocq-lsp` will admit it automatically. No more\n`Admitted` / `Qed` churn!\n\n\u003cimg alt=\"Smart error recovery\" height=\"286px\" src=\"etc/img/lsp-errors.gif\"/\u003e\n\n### 🥅 Whole-Document Goal Display\n\n`rocq-lsp` will follow the cursor movement and show underlying goals and\nmessages; as well as information about what goals you have given up, shelves,\npending obligations, open bullets and their goals.\n\n\u003cimg alt=\"Whole-Document Goal Display\" height=\"286px\" src=\"etc/img/lsp-goals.gif\"/\u003e\n\nGoal display behavior is configurable in case you'd like to trigger goal display\nmore conservatively.\n\n### 🗒️ Markdown and LaTeX Support\n\nOpen a markdown file with a `.mv` extension, or a `TeX` file ending in `.lv` or\n`.v.tex`, then `rocq-lsp` will check the code parts that are enclosed into `rocq`\nlanguage blocks! `rocq-lsp` places human-friendly documents at the core of its\ndesign ideas.\n\n\u003cimg alt=\"Rocq + Markdown Editing\" height=\"286px\" src=\"etc/img/lsp-markdown.gif\"/\u003e\n\nMoreover, you can use the usual Visual Studio Code Markdown or LaTeX preview\nfacilities to render your markdown documents nicely!\n\n### 👥 Document Outline\n\n`rocq-lsp` supports document outline and code folding, allowing you to jump\ndirectly to definitions in the document. Many of the Rocq vernacular commands\nlike `Definition`, `Theorem`, `Lemma`, etc. will be recognized as document\nsymbols which you can navigate to or see the outline of.\n\n\u003cimg alt=\"Document Outline Demo\" height=\"286px\" src=\"etc/img/lsp-outline.gif\"/\u003e \u003cimg alt=\"Document Symbols\" height=\"286px\" src=\"etc/img/lsp-doc-symbols.png\"/\u003e\n\n### 🐝 Document Hover\n\nHovering over a Rocq identifier will show its type.\n\n\u003cimg alt=\"Types on Hover\" height=\"286px\" src=\"etc/img/lsp-hover-2.gif\"/\u003e\n\nHover is also used to get debug information, which can be enabled in the\npreferences panel.\n\n### 📁 Multiple Workspaces\n\n`rocq-lsp` supports projects with multiple `_RocqProject` (or `_CoqProject`) files, use the \"Add\nfolder to Workspace\" feature of Visual Studio code or the LSP Workspace Folders\nextension to use this in your project.\n\n### 💾 `.vo` file saving\n\n`rocq-lsp` can save a `.vo` file of the current document as soon as it the\nchecking has been completed, using the command `Coq LSP: Save file to .vo`.\n\nYou can configure `rocq-lsp` in settings to do this every time you save your\n`.vo` file, but this can be costly so we ship it disabled by default.\n\n### ⏱️ Detailed Timing and Memory Statistics\n\nHover over any Rocq sentence, `rocq-lsp` will display detailed memory and timing\nstatistics.\n\n\u003cimg alt=\"Stats on Hover\" height=\"286px\" src=\"etc/img/lsp-hover.gif\"/\u003e\n\n### 🔧 Client-Side Configuration Options\n\n`rocq-lsp` is configurable, and tries to adapt to your own workflow. What to do\nwhen a proof doesn't check, admit or ignore? You decide!\n\nSee the `rocq-lsp` extension configuration in VSCode for options available.\n\n\u003cimg alt=\"Configuration screen\" height=\"286px\" src=\"etc/img/lsp-config.png\"/\u003e\n\n### 🖵 Extensible, Machine-friendly Command Line Compiler\n\n`rocq-lsp` includes the `fcc` \"Flèche Coq Compiler\" which allows the access to\nalmost all the features of Flèche / `rocq-lsp` without the need to spawn a\nfully-fledged LSP client.\n\n`fcc` has been designed to be machine-friendly and extensible, so you can easily\nadd your pre/post processing passes, for example to analyze or serialize parts\nof Rocq files.\n\n### 🪄 Advanced APIs for Rocq Interaction\n\nThanks to Flèche, we provide some APIs on top of it that allow advanced use\ncases with Rocq. In particular, we provide direct, low-overhead access to Rocq's\nproof engine using [petanque](./petanque).\n\n### ♻️ Reusability, Standards, Modularity\n\nThe incremental document checking library of `rocq-lsp` has been designed to be\nreusable by other projects written in OCaml and with needs for document\nvalidation UI, as well as by other Rocq projects such as jsCoq.\n\nMoreover, we are strongly based on standards, aiming for the least possible\nextensions.\n\n### 🌐 Web Native!\n\n`rocq-lsp` has been designed from the ground up to fully run inside your web\nbrowser seamlessly; our sister project, [jsCoq](https://github.com/jscoq/jscoq)\nhas been already been ported to `rocq-lsp`, and future releases\nwill use it by default.\n\n`rocq-lsp` provides an exciting new array of opportunities for jsCoq, lifting\nsome limitations we inherited from Rocq's lack of web native support.\n\n### 🔎 A Platform for Research!\n\nA key `rocq-lsp` goal is to serve as central platform for researchers in\nHuman-Computer-Interaction, Machine Learning, and Software Engineering willing\nto interact with Rocq.\n\nTowards this goal, `rocq-lsp` extends and is in the process of replacing [Coq\nSerAPI](https://github.com/ejgalleg/coq-serapi), which has been used by many to\nthat purpose.\n\nIf you are a SerAPI user, please see our preliminary [migrating from\nSerAPI](etc/SerAPI.md) document.\n\n## 🛠️ Installation\n\nIn order to use `rocq-lsp` you'll need to install [**both**](etc/FAQ.md)\n`rocq-lsp` and a suitable LSP client that understands `rocq-lsp` extensions. The\nrecommended client is the Visual Studio Code Extension, but we aim to fully\nsupport other clients officially and will do so once their authors consider them\nready.\n\n### 🏘️ Supported Rocq Versions\n\n`rocq-lsp` supports Rocq 9.1, Rocq 9.0, Coq 8.20, Coq 8.19, Coq 8.18, Coq 8.17, and Rocq's\n`master` branch.  Code for each Rocq version can be found in the corresponding\nbranch.\n\nWe recommended using Rocq 9.1 or `master` version. For other Rocq versions, we\nrecommend users to install the custom Rocq tree as detailed in [Rocq Upstream\nBugs](#rocq-upstream-bugs).\n\nNote that this section covers user installs, if you would like to contribute to\n`rocq-lsp` and build a development version, please check our [contributing\nguide](./CONTRIBUTING.md)\n\n### 🏓 Server\n\n- **opam** (OSX/Linux):\n  ```\n  opam install coq-lsp\n  ```\n- **Nix**:\n  - In nixpkgs: [coqPackages.coq-lsp](https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/coq-modules/coq-lsp)\n  - The `rocq-lsp` server is automatically put in scope when running `nix-shell` in a\n    project using the [Rocq Nix Toolbox](https://github.com/rocq-community/coq-nix-toolbox)\n    (added to the toolbox Oct 10th 2023).\n  - An example of a `flake` that uses `rocq-lsp` in a development environment is here\n     https://github.com/HoTT/Coq-HoTT/blob/master/flake.nix .\n- **Windows**:\n  Experimental Windows installers based on the [Rocq\n  Platform](https://github.com/rocq-prover/platform) are available at https://www.irif.fr/~gallego/coq-lsp/\n\n  This provides a Windows native binary that can be executed from VSCode\n  normally. As of today a bit of configuration is still needed:\n  - In VSCode, set the `Coq-lsp: Path` to:\n    + `C:\\Coq-Platform~8.20-lsp\\bin\\coq-lsp.exe`\n  - In VSCode, set the `Coq-lsp: Args` to:\n    + `--coqlib=C:\\Coq-Platform~8.20-lsp\\lib\\coq\\`\n    + `--coqcorelib=C:\\Coq-Platform~8.20-lsp\\lib\\coq-core\\`\n    + `--ocamlpath=C:\\Coq-Platform~8.20-lsp\\lib\\`\n  - Replace `C:\\Coq-Platform~8.20-lsp\\` by the path you have installed Rocq above as needed\n  - Note that the installers are unsigned (for now), so you'll have to click on\n    \"More info\" then \"Run anyway\" inside the \"Windows Protected your PC\" dialog\n  - Also note that the installers are work in progress, and may change often.\n- **Do it yourself!** [Compilation from sources](./CONTRIBUTING.md#compilation)\n\n\u003c!-- TODO 🟣 Emacs, 🪖 Proof general, 🐔 RocqIDE --\u003e\n\n### 🫐 Visual Studio Code\n\n- Official Marketplace: https://marketplace.visualstudio.com/items?itemName=ejgallego.coq-lsp\n- Open VSX: https://open-vsx.org/extension/ejgallego/coq-lsp\n\n### 🦄 Emacs\n\nThe official Rocq Emacs mode is https://codeberg.org/jpoiret/rocq-mode.el ,\nmaintained by Josselin Poiret with contributions by Arthur Azevedo de Amorim.\n\n### ✅ Vim\n\n- Experimental [CoqTail](https://github.com/whonore/Coqtail) support by Wolf Honore:\n  https://github.com/whonore/Coqtail/pull/323\n\n  See it in action https://asciinema.org/a/mvzqHOHfmWB2rvwEIKFjuaRIu\n\n### 🩱 Neovim\n\n- Experimental client by Jaehwang Jung: https://github.com/tomtomjhj/coq-lsp.nvim\n\n### 🐍 Python\n\n- Interact programmatically with Rocq files by using the [Coqpyt](https://github.com/sr-lab/coqpyt)\n  by Pedro Carrott and Nuno Saavedra.\n\n## ⇨ `rocq-lsp` users and extensions\n\nThe below projects are using `rocq-lsp`, we recommend you try them!\n\n- [Coqpyt, a Python client for rocq-lsp](https://github.com/sr-lab/coqpyt)\n- [CoqPilot uses Large Language Models to generate multiple potential proofs and then uses rocq-lsp to typecheck them](https://github.com/JetBrains-Research/coqpilot).\n- [jsCoq: use Coq from your browser](https://github.com/jscoq/jscoq)\n- [Pytanque: a Python library implementing RL Environments](https://github.com/LLM4Coq/pytanque)\n- [ViZX: A Visualizer for the ZX Calculus](https://github.com/inQWIRE/ViZX).\n- [The Waterproof vscode extension helps students learn how to write mathematical proofs](https://github.com/impermeable/waterproof-vscode).\n- [Yade: Support for the YADE diagram editor in VSCode](https://github.com/amblafont/vscode-yade-example).\n\n## 🗣️ Discussion Channel\n\n`rocq-lsp` discussion channel it at [Rocq's\nZulip](https://rocq-prover.zulipchat.com/#narrow/channel/329642-coq-lsp), don't hesitate\nto stop by; both users and developers are welcome.\n\n## ☎ Weekly Calls\n\nWe hold (almost) weekly video conference calls, see the [Call Schedule\nPage](https://github.com/ejgallego/rocq-lsp/wiki/Rocq-Lsp-Calls) for more\ninformation. Everyone is most welcome!\n\n## ❓FAQ\n\nSee our [list of frequently-asked questions](./etc/FAQ.md).\n\n## ⁉️ Troubleshooting and Known Problems\n\n### Rocq upstream bugs\n\nUnfortunately Rocq releases contain bugs that affect `rocq-lsp`. We strongly\nrecommend that if you are installing via opam, you use the following branches\nthat have some fixes backported:\n\n- For 9.1: No known critical problems\n- For 9.0: No known critical problems\n- For 8.20: No known critical problems\n- For 8.19: `opam pin add coq-core https://github.com/ejgallego/coq.git#v8.19+lsp`\n- For 8.18: `opam pin add coq-core https://github.com/ejgallego/coq.git#v8.18+lsp`\n- For 8.17: `opam pin add coq-core https://github.com/ejgallego/coq.git#v8.17+lsp`\n\n### Known problems\n\n- Current rendering code can be slow with complex goals and messages, if that's\n  the case, please open an issue and set the option `Coq LSP \u003e Method to Print\n  Coq Terms` to 0 as a workaround.\n- `rocq-lsp` can fail to interrupt Coq in some cases, such as `Qed` or type class\n  search. If that's the case, please open an issue, we have a experimental\n  branch that solves this problem that you can try.\n- If you install `coq-lsp/VSCode` simultaneously with the `VSRocq` Visual Studio\n  Code extension, Visual Studio Code gets confused and neither of them may\n  work. `rocq-lsp` will warn about that. You can disable the `VSRocq` extension as\n  a workaround.\n- `_RocqProject` file parsing library will often `exit 1` on bad `_RocqProject`\n  files! There is little `rocq-lsp` can do here, until upstream fixes this.\n\n### Troubleshooting\n\n- Some problems can be resolved by restarting `coq-lsp`, in Visual Studio Code,\n  `Ctrl+Shift+P` will give you access to the `coq-lsp.restart` command.\n  You can also start / stop the server from the status bar.\n- In VSCode, the \"Output\" window will have a \"Coq LSP Server Events\" channel\n  which should contain some important information; the content of this channel\n  is controlled by the `Coq LSP \u003e Trace: Server` option.\n\n## 📔 Planned Features\n\nSee [planned features and contribution ideas](etc/ContributionIdeas.md) for a\nlist of things we'd like to happen.\n\n## 📕 Protocol Documentation\n\n`rocq-lsp` mostly implements the [LSP\nStandard](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/),\nplus some extensions specific to Rocq.\n\nCheck [the `rocq-lsp` protocol documentation](etc/doc/PROTOCOL.md) for more details.\n\n## 🤸 Contributing and Extending the System\n\nContributions are very welcome! Feel free to chat with the dev team in\n[Zulip](https://rocq-prover.zulipchat.com/#narrow/channel/329642-rocq-lsp) for any\nquestion, or just go ahead and hack.\n\nWe have a [contributing guide](CONTRIBUTING.md), which includes a description of\nthe organization of the codebase, developer workflow, and more.\n\nHere is a [list of project ideas](etc/ContributionIdeas.md) that could be of\nhelp in case you are looking for contribution ideas, tho we are convinced that\nthe best ideas will arise from using `rocq-lsp` in your own Rocq projects.\n\nBoth Flèche and `rocq-lsp` have a preliminary _plugin system_. The VSCode\nextension also exports and API so other extensions use its functionality\nto query and interact with Rocq documents.\n\n## 🥷 Team\n\n- Ali Caglayan (co-coordinator)\n- Emilio J. Gallego Arias (Inria Paris, co-coordinator)\n- Shachar Itzhaky (Technion)\n\n### 🕰️ Past Contributors\n\n- Vincent Laporte (Inria)\n- Ramkumar Ramachandra (Inria Paris)\n\n## ©️ Licensing Information\n\nThe license for this project is LGPL 2.1 (or GPL 3+ as stated in the LGPL 2.1).\n\n- This server forked from our previous LSP implementation for the\n  [Lambdapi](https://github.com/Deducteam/lambdapi) proof assistant, written by\n  Emilio J. Gallego Arias, Frédéric Blanqui, Rodolphe Lepigre, and others; the\n  initial port to Rocq was done by Emilio J. Gallego Arias and Vicent Laporte.\n\n- `serlib`, `tests`, and goal processing components (among others) come from\n  [SerAPI](https://github.com/rocq-archive/coq-serapi), and are under the same\n  license. SerAPI was developed by Emilio J. Gallego Arias, Karl Palmskog, and\n  Clément Pit-Claudel.\n\n- Javascript support, and server-side package management were developed in the\n  [jsCoq](https://github.com/jscoq/jscoq) project, by Shachar Itzhaky and Emilio\n  J. Gallego Arias.\n\n- Syntax files in editor/code are partially derived from\n  [VSCoq](https://github.com/siegebell/vscoq) by Christian J. Bell, distributed\n  under the terms of the MIT license (see ./editor/code/License-vscoq.text).\n\n## 👏 Acknowledgments\n\nWork on this server has been made possible thanks to many discussions,\ninspirations, and sharing of ideas from colleagues. In particular, we'd like to\nthank Rudi Grinberg, Andrey Mokhov, Clément Pit-Claudel, and Makarius Wenzel for\ntheir help and advice. Gaëtan Gilbert contributed many key and challenging Rocq\npatches essential to `rocq-lsp`; we also thank Guillaume Munch-Maccagnoni for his\n[memprof-limits](https://guillaume.munch.name/software/ocaml/memprof-limits/index.html)\nlibrary, which is essential to make `rocq-lsp` on the real world, as well for\nmany advice w.r.t. OCaml.\n\n`rocq-lsp` includes several components and tests from\n[SerAPI](https://github.com/rocq-archive/coq-serapi), including\n[serlib](./serlib), goal display code, etc... Thanks to Karl Palmskog and all\nthe SerAPI contributors.\n\nAs noted above, the original implementation was based on the Lambdapi LSP\nserver, thanks Frédéric Blanqui, Rodolphe Lepigre and all Lambdapi contributors.\n\n[ci-badge]: https://github.com/ejgallego/rocq-lsp/actions/workflows/build.yml/badge.svg\n[ci-link]: https://github.com/ejgallego/rocq-lsp/actions/workflows/build.yml\n\n\u003c!-- Local Variables: --\u003e\n\u003c!-- mode: Markdown --\u003e\n\u003c!-- fill-column: 80 --\u003e\n\u003c!-- End: --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejgallego%2Frocq-lsp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fejgallego%2Frocq-lsp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fejgallego%2Frocq-lsp/lists"}