package coq-lsp
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=a89d86ed8b19d09bf3a06acbed690ae2859a7343d9faa03537c76cd492371651
sha512=edae491b284d5ab586c82cea4003a5b477f41ab25a4659431d4bc8caaee39b62de03b64d088ab8c528416210f88f73d4dfe5efbd32b22c70b75c9d18999c1e00
doc/coq-lsp.fleche/Fleche/Doc/index.html
Module Fleche.Doc
Source
Enviroment external to the document, this includes for now the init
Coq state and the workspace
, which are used to build the first state of the document, usually by importing the prelude and other libs implicitly.
type t = private {
uri : Lang.LUri.File.t;
(*
*)uri
of the documentversion : int;
(*
*)version
of the documentcontents : Contents.t;
(*
*)contents
of the documentnodes : Node.t list;
(*List of document nodes
*)completed : Completion.t;
(*Status of the document, usually either completed, suspended, or waiting for some IO / external event
*)toc : Node.t CString.Map.t;
(*table of contents
*)env : Env.t;
(*External document enviroment
*)root : Coq.State.t;
(*
*)root
contains the first state document state, obtained by applying a workspace to Coq's initial statediags_dirty : bool;
(*internal field
*)
}
A Flèche document is basically a node list
, which is a crude form of a meta-data map Range.t -> data
, where for now data
is the contents of Node.t
.
Return the list of all asts in the doc
Return the list of all diags in the doc
val create :
token:Coq.Limits.Token.t ->
env:Env.t ->
uri:Lang.LUri.File.t ->
version:int ->
raw:string ->
t
Create a new Coq document, this is cached! Note that this operation always suceeds, but the document could be created in a `Failed` state if problems arise.
Update the contents of a document, updating the right structures for incremental checking. If the operation fails, the document will be left in `Failed` state.
val check :
io:Io.CallBack.t ->
token:Coq.Limits.Token.t ->
target:Target.t ->
doc:t ->
unit ->
t
check ~io ~target ~doc ()
, check document doc
, target
will have Flèche stop after the point specified there has been reached. Output functions are in the io
record, used to send partial updates.
save ~doc
will save doc
.vo file. It will fail if proofs are open, or if the document completion status is not Yes
val create_failed_permanent :
env:Env.t ->
uri:Lang.LUri.File.t ->
version:int ->
raw:string ->
t
This is internal, to workaround the Coq multiple-docs problem