microsoft / microsoft/language-server-protocol

Support proof assistants

Open
#1,414 9 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature-request help wanted new request
Dominant language
TypeScript
Stars
13k
Forks
1k
Avg merge
6d 1h
Merged PRs (30d)
10

Description

Coq implements a custom XML protocol described here to step through proofs, and update the goal and window at each step. Unfortunately, this has the consequence that many of the nice features that are otherwise available to languages going the LSP route are unavailable to Coq. The consumers of this protocol are CoqIDE, VSCoq, and Proof General.

Other proof assistants such as Isabelle/HOL have poor VSCode support and roll their own IDEs. Lean and Agda, in particular, do not suffer from this issue, because it is not a traditional "interactive proof assistant", whence one steps through proofs. In its VSCode extension for Lean, it automatically evaluates the entire buffer and stops at the first error. F* did suffer from this issue, and I happen to be the primary author of its LSP server: the work was stalled because there was no way to step through proofs via LSP.

This is a stark deficiency of the Language Server Protocol, and I feel that we can do better.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading Coq's XML protocol and comparing it with the current Language Server Protocol capabilities. Review how CoqIDE, VSCoq, and Proof General consume the protocol, then define the missing step-through-proof interaction. The issue names no files, tests, or implementation boundary, so the scope requires substantial protocol design.

Written by the indexing model from the issue text.

Assessment

Domain
backend-api-design, developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.