package coq-lsp
Language Server Protocol native server for Coq
Install
Dune Dependency
Authors
Maintainers
Sources
coq-lsp-0.2.3.8.19.tbz
sha256=dd5d0993261d3742e77ccac8344307d97b507b265d8743ae0ce33d0b3fcfd98a
sha512=76727400b27900fdd659af7f03c5f2cd979f50ea0c76ad6f5b5de56a53b9db06dba1e1c786fd3e8ab695e42d94c53d58415c0c5b5eef8192f9863eaf7dcca693
doc/src/coq-lsp.lsp/core.ml.html
Source file core.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209
(************************************************************************) (* Coq Language Server Protocol *) (* Copyright 2019 MINES ParisTech -- LGPL 2.1+ *) (* Copyright 2019-2023 Inria -- LGPL 2.1+ *) (* Written by: Emilio J. Gallego Arias *) (************************************************************************) module Lang = JLang (** {1 document/definition} *) module LocationLink = struct type t = { originSelectionRange : Lang.Range.t option [@default None] ; targetUri : Lang.LUri.File.t ; targetRange : Lang.Range.t ; targetSelectionRange : Lang.Range.t } [@@deriving yojson] end (** {1 DocumentSymbols} *) module DocumentSymbol = struct type t = { name : string ; detail : string option [@default None] ; kind : int ; tags : int list option [@default None] ; deprecated : bool option [@default None] ; range : Lang.Range.t ; selectionRange : Lang.Range.t ; children : t list option [@default None] } [@@deriving yojson] end (** Not used as of today, superseded by DocumentSymbol *) module Location = struct type t = { uri : Lang.LUri.File.t ; range : Lang.Range.t } [@@deriving yojson] end (** Not used as of today, superseded by DocumentSymbol *) module SymInfo = struct type t = { name : string ; kind : int ; location : Location.t } [@@deriving yojson] end (** {1 Hover} *) module HoverContents = struct type t = { kind : string ; value : string } [@@deriving yojson] end module HoverInfo = struct type t = { contents : HoverContents.t ; range : Lang.Range.t option [@default None] } [@@deriving yojson] end (** {1 Completion} *) module LabelDetails = struct type t = { detail : string } [@@deriving yojson] end module TextEditReplace = struct type t = { insert : Lang.Range.t ; replace : Lang.Range.t ; newText : string } [@@deriving yojson] end module CompletionData = struct type t = { label : string ; insertText : string option [@default None] ; labelDetails : LabelDetails.t option [@default None] ; textEdit : TextEditReplace.t option [@default None] ; commitCharacters : string list option [@default None] } [@@deriving yojson] end (** Code Lenses *) module Command = struct type t = { title : string ; command : string ; arguments : Yojson.Safe.t list option [@default None] } [@@deriving yojson] end module CodeLens = struct type t = { range : Lang.Range.t ; command : Command.t option [@default None] ; data : Yojson.Safe.t option [@default None] } [@@deriving yojson] end (** SelectionRange *) module SelectionRange = struct type t = { range : Lang.Range.t ; parent : t option [@default None] } [@@deriving yojson] end (** Publish Diagnostics params *) module PublishDiagnosticsParams = struct type t = { uri : JLang.LUri.File.t ; version : int ; diagnostics : JLang.Diagnostic.t list } [@@deriving to_yojson] end let mk_diagnostics ~uri ~version diagnostics : Base.Notification.t = let params = PublishDiagnosticsParams.( { uri; version; diagnostics } |> to_yojson |> Yojson.Safe.Util.to_assoc) in Base.Notification.make ~method_:"textDocument/publishDiagnostics" ~params () (** Pull Diagnostics *) module DocumentDiagnosticParams = struct type t = { textDocument : string ; indentifier : string option [@default None] ; previousResultId : string option [@default None] ; workDoneToken : Base.ProgressToken.t option [@default None] ; partialResultToken : Base.ProgressToken.t option [@default None] } [@@deriving of_yojson] end module FullDocumentDiagnosticReport = struct type t = { kind : string ; resultId : string option [@default None] ; items : JLang.Diagnostic.t list } [@@deriving to_yojson] end module UnchangedDocumentDiagnosticReport = struct type t = { kind : string ; resultId : string option [@default None] } [@@deriving to_yojson] end module DocumentDiagnosticReportPartialResult = struct type t = { relatedDocuments : (JLang.LUri.File.t * FullDocumentDiagnosticReport.t) list } [@@deriving to_yojson] end (* CodeAction *) module CodeActionContext = struct type t = { diagnostics : Lang.Diagnostic.t list ; only : string option [@default None] ; triggerKind : int option [@default None] } [@@deriving to_yojson] end module CodeActionParams = struct type t = { textDocument : Doc.TextDocumentIdentifier.t ; range : Lang.Range.t ; context : CodeActionContext.t } [@@deriving to_yojson] end module CodeAction = struct type t = { title : string ; kind : string option [@default None] ; diagnostics : Lang.Diagnostic.t list [@default []] ; isPreferred : bool option [@default None] ; edit : Workspace.WorkspaceEdit.t option [@default None] } [@@deriving to_yojson] end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>