package coq-lsp
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=49a87d5fe263b3f8f7d2489f280db85e65890236c000e49ec9f41ab8edd266d5
sha512=1b7df9e7b29aa0a02864d7f06ad40deab1768e4ca2dc6ddb1719220276357eda14c272c5f4b47e4dc173d6a21272d6321c6a98a8647f251ed15bae9032da60d9
doc/coq-lsp.petanque/Petanque/Agent/index.html
Module Petanque.Agent
Source
Protocol notes:
The idea is that the types of the functions here have a direct translation to the JSON-RPC (or any other) protocol.
Thus, types here correspond to types in the wire, except for cases where the protocol layer performs an implicit mapping on types.
So far, the mappings are:
uri
<->Doc.t
int
<->State.t
The State.t
mapping is easy to do at the protocol level with a simple mapping, however uri -> Doc.t
may need to yield to the document manager to build the corresponding doc
. This is very convenient for users, but introduces a little bit more machinery.
We could imagine a future where State.t
need to be managed asynchronously, then the same approach that we use for Doc.t
could happen.
get_root_state ?opts ~doc
return the root state of the document doc
.
val get_state_at_pos :
?opts:Run_opts.t ->
doc:Fleche.Doc.t ->
point:(int * int) ->
unit ->
State.t Run_result.t R.t
get_state_at_pos ?opts ~doc ~position
return the state at position position
in doc
. Note that LSP positions are zero-based!
val start :
token:Coq.Limits.Token.t ->
doc:Fleche.Doc.t ->
?opts:Run_opts.t ->
?pre_commands:string ->
thm:string ->
unit ->
State.t Run_result.t R.t
start ~token ~doc ~pre_commands ~thm
start a new proof for theorem thm
in file uri
under fn
. token
can be used to interrupt the computation. Returns the proof state or error otherwise. pre_commands
is a string of dot-separated Coq commands that will be executed before the proof starts.
val run :
token:Coq.Limits.Token.t ->
?opts:Run_opts.t ->
st:State.t ->
tac:string ->
unit ->
State.t Run_result.t R.t
run ~token ?memo ~st ~tac
tries to run tac
over state st
. memo
(by default true) controls whether the command execution will be memoized in Flèche incremental engine.
goals ~token ~st
return the list of goals for a given st
Return the list of defined constants and inductives for a given state. For now we just return their fully qualified name, but more options are of course possible.
Petanque version