This commit is contained in:
c-cube 2024-04-18 15:48:34 +00:00
parent 66508f8de1
commit 428657e1bc
59 changed files with 1 additions and 1098 deletions

View file

@ -1,2 +1,2 @@
<!DOCTYPE html>
<html><head><meta charset="utf-8"><meta name="generator" content="odig v0.0.9"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" type="text/css" media="screen, print" href="_odoc-theme/odoc.css"><title>_opam</title></head><body class="odoc"><nav class="odoc-nav">🐫</nav><header class="odoc-preamble"><h1>OCaml package documentation</h1><p>Browse <a href="#by-name">by name</a>, <a href="#by-tag">by tag</a>, the <a href="ocaml/Stdlib/index.html#modules">standard library</a> and the <a href="https://ocaml.org/manual/">OCaml manual</a> (online, latest version).</p><p><small>Generated for <code>/home/runner/work/linol/linol/_opam/lib</code></small></p></header><nav class="odoc-toc"><ul><li><a href="ocaml/Stdlib/index.html#modules">OCaml standard library</a></li><li><a href="https://ocaml.org/manual/">OCaml manual</a></li><li><a href="#by-name">Packages by name</a></li><li><a href="#by-tag">Packages by tag</a></li></ul></nav><div class="odoc-content"><h2 id="by-name"><a href="#by-name" aria-hidden="true" class="anchor"></a>Packages by name</h2><div class="by-name"><nav><a href="#name-c">c</a><a href="#name-f">f</a><a href="#name-j">j</a><a href="#name-l">l</a><a href="#name-o">o</a><a href="#name-p">p</a><a href="#name-t">t</a><a href="#name-u">u</a><a href="#name-y">y</a></nav><h3 id="name-c"><a href="#name-c" aria-hidden="true" class="anchor"></a>c</h3><ol class="packages"><li id="package-cmdliner"><a href="#package-cmdliner" aria-hidden="true" class="anchor"></a><a href="cmdliner/index.html">cmdliner</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-f"><a href="#name-f" aria-hidden="true" class="anchor"></a>f</h3><ol class="packages"><li id="package-fmt"><a href="#package-fmt" aria-hidden="true" class="anchor"></a><a href="fmt/index.html">fmt</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-j"><a href="#name-j" aria-hidden="true" class="anchor"></a>j</h3><ol class="packages"><li id="package-jsonrpc"><a href="#package-jsonrpc" aria-hidden="true" class="anchor"></a><a href="jsonrpc/index.html">jsonrpc</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-l"><a href="#name-l" aria-hidden="true" class="anchor"></a>l</h3><ol class="packages"><li id="package-linol"><a href="#package-linol" aria-hidden="true" class="anchor"></a><a href="linol/index.html">linol</a> <span class="version"></span> <span class="synopsis"></span></li><li id="package-linol-lwt"><a href="#package-linol-lwt" aria-hidden="true" class="anchor"></a><a href="linol-lwt/index.html">linol-lwt</a> <span class="version"></span> <span class="synopsis"></span></li><li id="package-logs"><a href="#package-logs" aria-hidden="true" class="anchor"></a><a href="logs/index.html">logs</a> <span class="version"></span> <span class="synopsis"></span></li><li id="package-lsp"><a href="#package-lsp" aria-hidden="true" class="anchor"></a><a href="lsp/index.html">lsp</a> <span class="version"></span> <span class="synopsis"></span></li><li id="package-lwt"><a href="#package-lwt" aria-hidden="true" class="anchor"></a><a href="lwt/index.html">lwt</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-o"><a href="#name-o" aria-hidden="true" class="anchor"></a>o</h3><ol class="packages"><li id="package-ocaml"><a href="#package-ocaml" aria-hidden="true" class="anchor"></a><a href="ocaml/index.html">ocaml</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-p"><a href="#name-p" aria-hidden="true" class="anchor"></a>p</h3><ol class="packages"><li id="package-ppx_yojson_conv_lib"><a href="#package-ppx_yojson_conv_lib" aria-hidden="true" class="anchor"></a><a href="ppx_yojson_conv_lib/index.html">ppx_yojson_conv_lib</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-t"><a href="#name-t" aria-hidden="true" class="anchor"></a>t</h3><ol class="packages"><li id="package-trace"><a href="#package-trace" aria-hidden="true" class="anchor"></a><a href="trace/index.html">trace</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-u"><a href="#name-u" aria-hidden="true" class="anchor"></a>u</h3><ol class="packages"><li id="package-uutf"><a href="#package-uutf" aria-hidden="true" class="anchor"></a><a href="uutf/index.html">uutf</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-y"><a href="#name-y" aria-hidden="true" class="anchor"></a>y</h3><ol class="packages"><li id="package-yojson"><a href="#package-yojson" aria-hidden="true" class="anchor"></a><a href="yojson/index.html">yojson</a> <span class="version"></span> <span class="synopsis"></span></li></ol></div><h2 id="by-tag"><a href="#by-tag" aria-hidden="true" class="anchor"></a>Packages by tag</h2><div class="by-tag"><nav><table></table></nav></div></div></body></html>
<html><head><meta charset="utf-8"><meta name="generator" content="odig v0.0.9"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" type="text/css" media="screen, print" href="_odoc-theme/odoc.css"><title>_opam</title></head><body class="odoc"><nav class="odoc-nav">🐫</nav><header class="odoc-preamble"><h1>OCaml package documentation</h1><p>Browse <a href="#by-name">by name</a>, <a href="#by-tag">by tag</a>, the <a href="ocaml/Stdlib/index.html#modules">standard library</a> and the <a href="https://ocaml.org/manual/">OCaml manual</a> (online, latest version).</p><p><small>Generated for <code>/home/runner/work/linol/linol/_opam/lib</code></small></p></header><nav class="odoc-toc"><ul><li><a href="ocaml/Stdlib/index.html#modules">OCaml standard library</a></li><li><a href="https://ocaml.org/manual/">OCaml manual</a></li><li><a href="#by-name">Packages by name</a></li><li><a href="#by-tag">Packages by tag</a></li></ul></nav><div class="odoc-content"><h2 id="by-name"><a href="#by-name" aria-hidden="true" class="anchor"></a>Packages by name</h2><div class="by-name"><nav><a href="#name-c">c</a><a href="#name-f">f</a><a href="#name-j">j</a><a href="#name-l">l</a><a href="#name-o">o</a><a href="#name-p">p</a><a href="#name-u">u</a><a href="#name-y">y</a></nav><h3 id="name-c"><a href="#name-c" aria-hidden="true" class="anchor"></a>c</h3><ol class="packages"><li id="package-cmdliner"><a href="#package-cmdliner" aria-hidden="true" class="anchor"></a><a href="cmdliner/index.html">cmdliner</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-f"><a href="#name-f" aria-hidden="true" class="anchor"></a>f</h3><ol class="packages"><li id="package-fmt"><a href="#package-fmt" aria-hidden="true" class="anchor"></a><a href="fmt/index.html">fmt</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-j"><a href="#name-j" aria-hidden="true" class="anchor"></a>j</h3><ol class="packages"><li id="package-jsonrpc"><a href="#package-jsonrpc" aria-hidden="true" class="anchor"></a><a href="jsonrpc/index.html">jsonrpc</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-l"><a href="#name-l" aria-hidden="true" class="anchor"></a>l</h3><ol class="packages"><li id="package-logs"><a href="#package-logs" aria-hidden="true" class="anchor"></a><a href="logs/index.html">logs</a> <span class="version"></span> <span class="synopsis"></span></li><li id="package-lsp"><a href="#package-lsp" aria-hidden="true" class="anchor"></a><a href="lsp/index.html">lsp</a> <span class="version"></span> <span class="synopsis"></span></li><li id="package-lwt"><a href="#package-lwt" aria-hidden="true" class="anchor"></a><a href="lwt/index.html">lwt</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-o"><a href="#name-o" aria-hidden="true" class="anchor"></a>o</h3><ol class="packages"><li id="package-ocaml"><a href="#package-ocaml" aria-hidden="true" class="anchor"></a><a href="ocaml/index.html">ocaml</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-p"><a href="#name-p" aria-hidden="true" class="anchor"></a>p</h3><ol class="packages"><li id="package-ppx_yojson_conv_lib"><a href="#package-ppx_yojson_conv_lib" aria-hidden="true" class="anchor"></a><a href="ppx_yojson_conv_lib/index.html">ppx_yojson_conv_lib</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-u"><a href="#name-u" aria-hidden="true" class="anchor"></a>u</h3><ol class="packages"><li id="package-uutf"><a href="#package-uutf" aria-hidden="true" class="anchor"></a><a href="uutf/index.html">uutf</a> <span class="version"></span> <span class="synopsis"></span></li></ol><h3 id="name-y"><a href="#name-y" aria-hidden="true" class="anchor"></a>y</h3><ol class="packages"><li id="package-yojson"><a href="#package-yojson" aria-hidden="true" class="anchor"></a><a href="yojson/index.html">yojson</a> <span class="version"></span> <span class="synopsis"></span></li></ol></div><h2 id="by-tag"><a href="#by-tag" aria-hidden="true" class="anchor"></a>Packages by tag</h2><div class="by-tag"><nav><table></table></nav></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Req_id (linol-lwt.Linol_lwt.Jsonrpc2.Req_id)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol-lwt</a> &#x00BB; <a href="../../index.html">Linol_lwt</a> &#x00BB; <a href="../index.html">Jsonrpc2</a> &#x00BB; Req_id</nav><header class="odoc-preamble"><h1>Module <code><span>Jsonrpc2.Req_id</span></code></h1></header><div class="odoc-content"><p>Request ID.</p><p>The unique ID of a request, used by JSONRPC to map each request to its reply.</p><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p>String representation of the ID</p></div></div></div></body></html>

View file

@ -1,9 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>base_server (linol-lwt.Linol_lwt.Jsonrpc2.base_server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol-lwt</a> &#x00BB; <a href="../../index.html">Linol_lwt</a> &#x00BB; <a href="../index.html">Jsonrpc2</a> &#x00BB; base_server</nav><header class="odoc-preamble"><h1>Class <code><span>Jsonrpc2.base_server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>notify_back (linol-lwt.Linol_lwt.Jsonrpc2.notify_back)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol-lwt</a> &#x00BB; <a href="../../index.html">Linol_lwt</a> &#x00BB; <a href="../index.html">Jsonrpc2</a> &#x00BB; notify_back</nav><header class="odoc-preamble"><h1>Class <code><span>Jsonrpc2.notify_back</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-uri"><a href="#val-uri" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> uri : <span><a href="../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-cancel_request"><a href="#method-cancel_request" class="anchor"></a><code><span><span class="keyword">method</span> cancel_request : <span><a href="../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_uri"><a href="#method-get_uri" class="anchor"></a><code><span><span class="keyword">method</span> get_uri : <span><a href="../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_diagnostic"><a href="#method-send_diagnostic" class="anchor"></a><code><span><span class="keyword">method</span> send_diagnostic : <span><span><a href="../../../../lsp/Lsp__/Types/Diagnostic/index.html#type-t">Diagnostic.t</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_log_msg"><a href="#method-send_log_msg" class="anchor"></a><code><span><span class="keyword">method</span> send_log_msg : <span><span class="label">type_</span>:<span class="xref-unresolved">Lsp__Types.MessageType.t</span> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_notification"><a href="#method-send_notification" class="anchor"></a><code><span><span class="keyword">method</span> send_notification : <span><a href="../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_request"><a href="#method-send_request" class="anchor"></a><code><span><span class="keyword">method</span> send_request : 'from_server. <span><span><span class="type-var">'from_server</span> <a href="../../../../lsp/Lsp__/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-set_uri"><a href="#method-set_uri" class="anchor"></a><code><span><span class="keyword">method</span> set_uri : <span><a href="../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-telemetry"><a href="#method-telemetry" class="anchor"></a><code><span><span class="keyword">method</span> telemetry : <span><span class="xref-unresolved">Lsp__.Import.Json.t</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_begin"><a href="#method-work_done_progress_begin" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_begin : <span><a href="../../../../lsp/Lsp__/Types/WorkDoneProgressBegin/index.html#type-t">Lsp.Types.WorkDoneProgressBegin.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_end"><a href="#method-work_done_progress_end" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_end : <span><a href="../../../../lsp/Lsp__/Types/WorkDoneProgressEnd/index.html#type-t">Lsp.Types.WorkDoneProgressEnd.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_report"><a href="#method-work_done_progress_report" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_report : <span><a href="../../../../lsp/Lsp__/Types/WorkDoneProgressReport/index.html#type-t">Lsp.Types.WorkDoneProgressReport.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div></div></body></html>

View file

@ -1,99 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>server (linol-lwt.Linol_lwt.Jsonrpc2.server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol-lwt</a> &#x00BB; <a href="../../index.html">Linol_lwt</a> &#x00BB; <a href="../index.html">Jsonrpc2</a> &#x00BB; server</nav><header class="odoc-preamble"><h1>Class <code><span>Jsonrpc2.server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-status"><a href="#val-status" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-docs"><a href="#val-docs" class="anchor"></a><code><span><span class="keyword">val</span> docs : <span><span>(<a href="../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>, <a href="../index.html#type-doc_state">doc_state</a>)</span> <a href="../../../../ocaml/Stdlib/Hashtbl/index.html#type-t">Hashtbl.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_action_provider"><a href="#method-config_code_action_provider" class="anchor"></a><code><span><span class="keyword">method</span> config_code_action_provider : <span>[ <span>`Bool of bool</span>
<span><span>| `CodeActionOptions</span> of
<a href="../../../../lsp/Lsp__/Types/CodeActionOptions/index.html#type-t">Lsp.Types.CodeActionOptions.t</a></span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_lens_options"><a href="#method-config_code_lens_options" class="anchor"></a><code><span><span class="keyword">method</span> config_code_lens_options : <span><a href="../../../../lsp/Lsp__/Types/CodeLensOptions/index.html#type-t">Lsp.Types.CodeLensOptions.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_completion"><a href="#method-config_completion" class="anchor"></a><code><span><span class="keyword">method</span> config_completion : <span><a href="../../../../lsp/Lsp__/Types/CompletionOptions/index.html#type-t">Lsp.Types.CompletionOptions.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_definition"><a href="#method-config_definition" class="anchor"></a><code><span><span class="keyword">method</span> config_definition : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DefinitionOptions</span> of
<a href="../../../../lsp/Lsp__/Types/DefinitionOptions/index.html#type-t">Lsp.Types.DefinitionOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_hover"><a href="#method-config_hover" class="anchor"></a><code><span><span class="keyword">method</span> config_hover : <span><span>[ <span>`Bool of bool</span>
<span><span>| `HoverOptions</span> of <a href="../../../../lsp/Lsp__/Types/HoverOptions/index.html#type-t">Lsp.Types.HoverOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_list_commands"><a href="#method-config_list_commands" class="anchor"></a><code><span><span class="keyword">method</span> config_list_commands : <span>string list</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_modify_capabilities"><a href="#method-config_modify_capabilities" class="anchor"></a><code><span><span class="keyword">method</span> config_modify_capabilities : <span><a href="../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_symbol"><a href="#method-config_symbol" class="anchor"></a><code><span><span class="keyword">method</span> config_symbol : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DocumentSymbolOptions</span> of
<a href="../../../../lsp/Lsp__/Types/DocumentSymbolOptions/index.html#type-t">Lsp.Types.DocumentSymbolOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_sync_opts"><a href="#method-config_sync_opts" class="anchor"></a><code><span><span class="keyword">method</span> config_sync_opts : <a href="../../../../lsp/Lsp__/Types/TextDocumentSyncOptions/index.html#type-t">Lsp.Types.TextDocumentSyncOptions.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-find_doc"><a href="#method-find_doc" class="anchor"></a><code><span><span class="keyword">method</span> find_doc : <span><a href="../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-doc_state">doc_state</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_status"><a href="#method-get_status" class="anchor"></a><code><span><span class="keyword">method</span> get_status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_change"><a href="#method-on_notif_doc_did_change" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_change : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/VersionedTextDocumentIdentifier/index.html#type-t">Lsp.Types.VersionedTextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../lsp/Lsp__/Types/TextDocumentContentChangeEvent/index.html#type-t">Lsp.Types.TextDocumentContentChangeEvent.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">old_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">new_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_close"><a href="#method-on_notif_doc_did_close" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_close : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/TextDocumentIdentifier/index.html#type-t">Lsp.Types.TextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_open"><a href="#method-on_notif_doc_did_open" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_open : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/TextDocumentItem/index.html#type-t">Lsp.Types.TextDocumentItem.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification_unhandled"><a href="#method-on_notification_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_notification_unhandled : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_action"><a href="#method-on_req_code_action" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_action : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/CodeActionParams/index.html#type-t">Lsp.Types.CodeActionParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/CodeActionResult/index.html#type-t">Lsp.Types.CodeActionResult.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens"><a href="#method-on_req_code_lens" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> list</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens_resolve"><a href="#method-on_req_code_lens_resolve" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens_resolve : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_completion"><a href="#method-on_req_completion" class="anchor"></a><code><span><span class="keyword">method</span> on_req_completion : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">ctx</span>:<span><span class="xref-unresolved">Lsp__Types.CompletionContext.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`CompletionList of <span class="xref-unresolved">Lsp__.Types.CompletionList.t</span></span>
<span><span>| `List</span> of <span><span class="xref-unresolved">Lsp__.Types.CompletionItem.t</span> list</span></span> ]</span>
option</span>
<a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_definition"><a href="#method-on_req_definition" class="anchor"></a><code><span><span class="keyword">method</span> on_req_definition : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../lsp/Lsp__/Types/Locations/index.html#type-t">Lsp.Types.Locations.t</a> option</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_execute_command"><a href="#method-on_req_execute_command" class="anchor"></a><code><span><span class="keyword">method</span> on_req_execute_command : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> list</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_hover"><a href="#method-on_req_hover" class="anchor"></a><code><span><span class="keyword">method</span> on_req_hover : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../lsp/Lsp__/Types/Hover/index.html#type-t">Lsp.Types.Hover.t</a> option</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_initialize"><a href="#method-on_req_initialize" class="anchor"></a><code><span><span class="keyword">method</span> on_req_initialize : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/InitializeParams/index.html#type-t">Lsp.Types.InitializeParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../lsp/Lsp__/Types/InitializeResult/index.html#type-t">Lsp.Types.InitializeResult.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_inlay_hint"><a href="#method-on_req_inlay_hint" class="anchor"></a><code><span><span class="keyword">method</span> on_req_inlay_hint : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">range</span>:<a href="../../../../lsp/Lsp__/Types/Range/index.html#type-t">Lsp.Types.Range.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../lsp/Lsp__/Types/InlayHint/index.html#type-t">Lsp.Types.InlayHint.t</a> list</span> option</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_symbol"><a href="#method-on_req_symbol" class="anchor"></a><code><span><span class="keyword">method</span> on_req_symbol : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`DocumentSymbol of <span><span class="xref-unresolved">Lsp__.Types.DocumentSymbol.t</span> list</span></span>
<span><span>| `SymbolInformation</span> of <span><span class="xref-unresolved">Lsp__.Types.SymbolInformation.t</span> list</span></span> ]</span>
option</span>
<a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request_unhandled"><a href="#method-on_request_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_request_unhandled : 'r. <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'r</span> <a href="../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'r</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_notification"><a href="#method-on_unknown_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_notification : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../jsonrpc/Jsonrpc/Notification/index.html#type-t">Jsonrpc.Notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_request"><a href="#method-on_unknown_request" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_request : <span><span class="label">notify_back</span>:<a href="../class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<span>(<span><a href="../index.html#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../jsonrpc/Jsonrpc/Structured/index.html#type-t">Jsonrpc.Structured.t</a> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Jsonrpc2 (linol-lwt.Linol_lwt.Jsonrpc2)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">linol-lwt</a> &#x00BB; <a href="../index.html">Linol_lwt</a> &#x00BB; Jsonrpc2</nav><header class="odoc-preamble"><h1>Module <code><span>Linol_lwt.Jsonrpc2</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module anchored" id="module-IO"><a href="#module-IO" class="anchor"></a><code><span><span class="keyword">module</span> <a href="IO/index.html">IO</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Position"><a href="#module-Position" class="anchor"></a><code><span><span class="keyword">module</span> Position</span><span> = <a href="../../../lsp/Lsp/Types/Position/index.html">Lsp.Types.Position</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Range"><a href="#module-Range" class="anchor"></a><code><span><span class="keyword">module</span> Range</span><span> = <a href="../../../lsp/Lsp/Types/Range/index.html">Lsp.Types.Range</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Diagnostic"><a href="#module-Diagnostic" class="anchor"></a><code><span><span class="keyword">module</span> Diagnostic</span><span> = <a href="../../../lsp/Lsp/Types/Diagnostic/index.html">Lsp.Types.Diagnostic</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-DiagnosticSeverity"><a href="#module-DiagnosticSeverity" class="anchor"></a><code><span><span class="keyword">module</span> DiagnosticSeverity</span><span> = <a href="../../../lsp/Lsp/Types/DiagnosticSeverity/index.html">Lsp.Types.DiagnosticSeverity</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Req_id"><a href="#module-Req_id" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Req_id/index.html">Req_id</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-server_request_handler_pair"><a href="#type-server_request_handler_pair" class="anchor"></a><code><span><span class="keyword">type</span> server_request_handler_pair</span><span> = </span></code><ol><li id="type-server_request_handler_pair.Request_and_handler" class="def variant constructor anchored"><a href="#type-server_request_handler_pair.Request_and_handler" class="anchor"></a><code><span>| </span><span><span class="constructor">Request_and_handler</span> : <span><span class="type-var">'from_server</span> <a href="../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span>
* <span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span> <a href="#type-server_request_handler_pair">server_request_handler_pair</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-send_request"><a href="#type-send_request" class="anchor"></a><code><span><span class="keyword">type</span> send_request</span><span> = <span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-base_server"><a href="#class-base_server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-base_server/index.html">base_server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-async"><a href="#val-async" class="anchor"></a><code><span><span class="keyword">val</span> async : <span><a href="class-base_server/index.html">base_server</a> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-notify_back"><a href="#class-notify_back" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-notify_back/index.html">notify_back</a></span><span> : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">server_request</span>:<span>(<span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">workDoneToken</span>:<span><span>[ <span>`Int of int</span> <span><span>| `String</span> of string</span> ]</span> option</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">partialResultToken</span>:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?version</span>:
int <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?uri</span>:<a href="../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-doc_state"><a href="#type-doc_state" class="anchor"></a><code><span><span class="keyword">type</span> <span class="keyword">nonrec</span> doc_state</span><span> = </span><span>{</span></code><ol><li id="type-doc_state.uri" class="def record field anchored"><a href="#type-doc_state.uri" class="anchor"></a><code><span>uri : <a href="../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>;</span></code></li><li id="type-doc_state.languageId" class="def record field anchored"><a href="#type-doc_state.languageId" class="anchor"></a><code><span>languageId : string;</span></code></li><li id="type-doc_state.version" class="def record field anchored"><a href="#type-doc_state.version" class="anchor"></a><code><span>version : int;</span></code></li><li id="type-doc_state.content" class="def record field anchored"><a href="#type-doc_state.content" class="anchor"></a><code><span>content : string;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-server"><a href="#class-server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-server/index.html">server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span><span class="label">ic</span>:<a href="IO/index.html#type-in_channel">IO.in_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">oc</span>:<a href="IO/index.html#type-out_channel">IO.out_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="class-server/index.html">server</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_stdio"><a href="#val-create_stdio" class="anchor"></a><code><span><span class="keyword">val</span> create_stdio : <span><a href="class-server/index.html">server</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_server_notification"><a href="#val-send_server_notification" class="anchor"></a><code><span><span class="keyword">val</span> send_server_notification : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_server_request"><a href="#val-send_server_request" class="anchor"></a><code><span><span class="keyword">val</span> send_server_request :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'from_server</span> <a href="../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-run"><a href="#val-run" class="anchor"></a><code><span><span class="keyword">val</span> run : <span><span class="optlabel">?shutdown</span>:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> bool)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,15 +0,0 @@
# 0.5
- api break: put `spawn` in the server itself, not `IO`
- require OCaml 4.14
- migrate to lsp 1.17
- support inlay hints
- internal tracing with `trace`
- [#24] Expose get_uri for notify_back
- expose log source
- [#22] Threat shutdown and exit requests correctly
- [#20] Handle messages with null value for "params" field
- Handle server requests
- handle workDoneTokens

View file

@ -1,8 +0,0 @@
# Linol [![build](https://github.com/c-cube/linol/actions/workflows/main.yml/badge.svg)](https://github.com/c-cube/linol/actions/workflows/main.yml)
This is a wrapper around the `lsp` library, which provides base types for the protocol. Linol ("linol is not ocaml-lsp") provides an object abstraction so that users can override only the methods they provide, and a Lwt implementation of the jsonrpc wire protocol.
## License
MIT license.

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (linol-lwt.index)</title><meta charset="utf-8"/><link rel="stylesheet" href="../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> linol-lwt</nav><header class="odoc-preamble"><h1 id="package-linol-lwt"><a href="#package-linol-lwt" class="anchor"></a>Package linol-lwt <nav><a type="text/plain; charset=UTF-8" href="_doc-dir/CHANGES.md">changes</a> <a href="#package_info">more…</a></nav></h1><ul class="modules"><li><a href="Linol_lwt/index.html"><code>Linol_lwt</code></a> </li></ul></header><nav class="odoc-toc"><ul><li><a href="#package_info">Package info</a></li></ul></nav><div class="odoc-content"><h2 id="package_info"><a href="#package_info" class="anchor"></a>Package info</h2><table class="package info"><tr id="info-changes-files"><td><a href="#info-changes-files" aria-hidden="true" class="anchor"></a>changes-files</td><td><ul><li><a type="text/plain; charset=UTF-8" href="_doc-dir/CHANGES.md">CHANGES.md</a></li></ul></td></tr><tr id="info-readme-files"><td><a href="#info-readme-files" aria-hidden="true" class="anchor"></a>readme-files</td><td><ul><li><a type="text/plain; charset=UTF-8" href="_doc-dir/README.md">README.md</a></li></ul></td></tr></table></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Req_id (linol.Linol.Jsonrpc2.Make.Req_id)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; Req_id</nav><header class="odoc-preamble"><h1>Module <code><span>Make.Req_id</span></code></h1></header><div class="odoc-content"><p>Request ID.</p><p>The unique ID of a request, used by JSONRPC to map each request to its reply.</p><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p>String representation of the ID</p></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,9 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>base_server (linol.Linol.Jsonrpc2.Make.base_server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; base_server</nav><header class="odoc-preamble"><h1>Class <code><span>Make.base_server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>notify_back (linol.Linol.Jsonrpc2.Make.notify_back)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; notify_back</nav><header class="odoc-preamble"><h1>Class <code><span>Make.notify_back</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-uri"><a href="#val-uri" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-cancel_request"><a href="#method-cancel_request" class="anchor"></a><code><span><span class="keyword">method</span> cancel_request : <span><a href="../../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_uri"><a href="#method-get_uri" class="anchor"></a><code><span><span class="keyword">method</span> get_uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_diagnostic"><a href="#method-send_diagnostic" class="anchor"></a><code><span><span class="keyword">method</span> send_diagnostic : <span><span><a href="../../../../../lsp/Lsp__/Types/Diagnostic/index.html#type-t">Diagnostic.t</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_log_msg"><a href="#method-send_log_msg" class="anchor"></a><code><span><span class="keyword">method</span> send_log_msg : <span><span class="label">type_</span>:<span class="xref-unresolved">Lsp__Types.MessageType.t</span> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_notification"><a href="#method-send_notification" class="anchor"></a><code><span><span class="keyword">method</span> send_notification : <span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_request"><a href="#method-send_request" class="anchor"></a><code><span><span class="keyword">method</span> send_request : 'from_server. <span><span><span class="type-var">'from_server</span> <a href="../../../../../lsp/Lsp__/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-set_uri"><a href="#method-set_uri" class="anchor"></a><code><span><span class="keyword">method</span> set_uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-telemetry"><a href="#method-telemetry" class="anchor"></a><code><span><span class="keyword">method</span> telemetry : <span><span class="xref-unresolved">Lsp__.Import.Json.t</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_begin"><a href="#method-work_done_progress_begin" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_begin : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressBegin/index.html#type-t">Lsp.Types.WorkDoneProgressBegin.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_end"><a href="#method-work_done_progress_end" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_end : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressEnd/index.html#type-t">Lsp.Types.WorkDoneProgressEnd.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_report"><a href="#method-work_done_progress_report" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_report : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressReport/index.html#type-t">Lsp.Types.WorkDoneProgressReport.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div></div></body></html>

View file

@ -1,99 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>server (linol.Linol.Jsonrpc2.Make.server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; server</nav><header class="odoc-preamble"><h1>Class <code><span>Make.server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-status"><a href="#val-status" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-docs"><a href="#val-docs" class="anchor"></a><code><span><span class="keyword">val</span> docs : <span><span>(<a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>, <a href="../index.html#type-doc_state">doc_state</a>)</span> <a href="../../../../../ocaml/Stdlib/Hashtbl/index.html#type-t">Hashtbl.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_action_provider"><a href="#method-config_code_action_provider" class="anchor"></a><code><span><span class="keyword">method</span> config_code_action_provider : <span>[ <span>`Bool of bool</span>
<span><span>| `CodeActionOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/CodeActionOptions/index.html#type-t">Lsp.Types.CodeActionOptions.t</a></span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_lens_options"><a href="#method-config_code_lens_options" class="anchor"></a><code><span><span class="keyword">method</span> config_code_lens_options : <span><a href="../../../../../lsp/Lsp__/Types/CodeLensOptions/index.html#type-t">Lsp.Types.CodeLensOptions.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_completion"><a href="#method-config_completion" class="anchor"></a><code><span><span class="keyword">method</span> config_completion : <span><a href="../../../../../lsp/Lsp__/Types/CompletionOptions/index.html#type-t">Lsp.Types.CompletionOptions.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_definition"><a href="#method-config_definition" class="anchor"></a><code><span><span class="keyword">method</span> config_definition : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DefinitionOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/DefinitionOptions/index.html#type-t">Lsp.Types.DefinitionOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_hover"><a href="#method-config_hover" class="anchor"></a><code><span><span class="keyword">method</span> config_hover : <span><span>[ <span>`Bool of bool</span>
<span><span>| `HoverOptions</span> of <a href="../../../../../lsp/Lsp__/Types/HoverOptions/index.html#type-t">Lsp.Types.HoverOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_list_commands"><a href="#method-config_list_commands" class="anchor"></a><code><span><span class="keyword">method</span> config_list_commands : <span>string list</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_modify_capabilities"><a href="#method-config_modify_capabilities" class="anchor"></a><code><span><span class="keyword">method</span> config_modify_capabilities : <span><a href="../../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_symbol"><a href="#method-config_symbol" class="anchor"></a><code><span><span class="keyword">method</span> config_symbol : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DocumentSymbolOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/DocumentSymbolOptions/index.html#type-t">Lsp.Types.DocumentSymbolOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_sync_opts"><a href="#method-config_sync_opts" class="anchor"></a><code><span><span class="keyword">method</span> config_sync_opts : <a href="../../../../../lsp/Lsp__/Types/TextDocumentSyncOptions/index.html#type-t">Lsp.Types.TextDocumentSyncOptions.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-find_doc"><a href="#method-find_doc" class="anchor"></a><code><span><span class="keyword">method</span> find_doc : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-doc_state">doc_state</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_status"><a href="#method-get_status" class="anchor"></a><code><span><span class="keyword">method</span> get_status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_change"><a href="#method-on_notif_doc_did_change" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_change : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/VersionedTextDocumentIdentifier/index.html#type-t">Lsp.Types.VersionedTextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/TextDocumentContentChangeEvent/index.html#type-t">Lsp.Types.TextDocumentContentChangeEvent.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">old_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">new_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_close"><a href="#method-on_notif_doc_did_close" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_close : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/TextDocumentIdentifier/index.html#type-t">Lsp.Types.TextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_open"><a href="#method-on_notif_doc_did_open" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_open : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/TextDocumentItem/index.html#type-t">Lsp.Types.TextDocumentItem.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification_unhandled"><a href="#method-on_notification_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_notification_unhandled : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_action"><a href="#method-on_req_code_action" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_action : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeActionParams/index.html#type-t">Lsp.Types.CodeActionParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeActionResult/index.html#type-t">Lsp.Types.CodeActionResult.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens"><a href="#method-on_req_code_lens" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> list</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens_resolve"><a href="#method-on_req_code_lens_resolve" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens_resolve : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_completion"><a href="#method-on_req_completion" class="anchor"></a><code><span><span class="keyword">method</span> on_req_completion : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">ctx</span>:<span><span class="xref-unresolved">Lsp__Types.CompletionContext.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`CompletionList of <span class="xref-unresolved">Lsp__.Types.CompletionList.t</span></span>
<span><span>| `List</span> of <span><span class="xref-unresolved">Lsp__.Types.CompletionItem.t</span> list</span></span> ]</span>
option</span>
<a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_definition"><a href="#method-on_req_definition" class="anchor"></a><code><span><span class="keyword">method</span> on_req_definition : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/Locations/index.html#type-t">Lsp.Types.Locations.t</a> option</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_execute_command"><a href="#method-on_req_execute_command" class="anchor"></a><code><span><span class="keyword">method</span> on_req_execute_command : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> list</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_hover"><a href="#method-on_req_hover" class="anchor"></a><code><span><span class="keyword">method</span> on_req_hover : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/Hover/index.html#type-t">Lsp.Types.Hover.t</a> option</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_initialize"><a href="#method-on_req_initialize" class="anchor"></a><code><span><span class="keyword">method</span> on_req_initialize : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/InitializeParams/index.html#type-t">Lsp.Types.InitializeParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/InitializeResult/index.html#type-t">Lsp.Types.InitializeResult.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_inlay_hint"><a href="#method-on_req_inlay_hint" class="anchor"></a><code><span><span class="keyword">method</span> on_req_inlay_hint : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">range</span>:<a href="../../../../../lsp/Lsp__/Types/Range/index.html#type-t">Lsp.Types.Range.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../../lsp/Lsp__/Types/InlayHint/index.html#type-t">Lsp.Types.InlayHint.t</a> list</span> option</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_symbol"><a href="#method-on_req_symbol" class="anchor"></a><code><span><span class="keyword">method</span> on_req_symbol : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`DocumentSymbol of <span><span class="xref-unresolved">Lsp__.Types.DocumentSymbol.t</span> list</span></span>
<span><span>| `SymbolInformation</span> of <span><span class="xref-unresolved">Lsp__.Types.SymbolInformation.t</span> list</span></span> ]</span>
option</span>
<a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request_unhandled"><a href="#method-on_request_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_request_unhandled : 'r. <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'r</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'r</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_notification"><a href="#method-on_unknown_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_notification : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../jsonrpc/Jsonrpc/Notification/index.html#type-t">Jsonrpc.Notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_request"><a href="#method-on_unknown_request" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_request : <span><span class="label">notify_back</span>:<span class="xref-unresolved">notify_back</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<span>(<span><a href="../index.html#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../jsonrpc/Jsonrpc/Structured/index.html#type-t">Jsonrpc.Structured.t</a> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make (linol.Linol.Jsonrpc2.Make)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol</a> &#x00BB; <a href="../../index.html">Linol</a> &#x00BB; <a href="../index.html">Jsonrpc2</a> &#x00BB; Make</nav><header class="odoc-preamble"><h1>Module <code><span>Jsonrpc2.Make</span></code></h1></header><nav class="odoc-toc"><ul><li><a href="#parameters">Parameters</a></li><li><a href="#signature">Signature</a></li></ul></nav><div class="odoc-content"><h2 id="parameters"><a href="#parameters" class="anchor"></a>Parameters</h2><div class="odoc-spec"><div class="spec parameter anchored" id="argument-1-IO"><a href="#argument-1-IO" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="argument-1-IO/index.html">IO</a></span><span> : <a href="../module-type-IO/index.html">IO</a></span></code></div></div><h2 id="signature"><a href="#signature" class="anchor"></a>Signature</h2><div class="odoc-spec"><div class="spec module anchored" id="module-IO"><a href="#module-IO" class="anchor"></a><code><span><span class="keyword">module</span> IO</span><span> = <a href="argument-1-IO/index.html">IO</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>A jsonrpc2 connection.</p></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></summary><div class="odoc-spec"><div class="spec module anchored" id="module-Position"><a href="#module-Position" class="anchor"></a><code><span><span class="keyword">module</span> Position</span><span> = <a href="../../../../lsp/Lsp/Types/Position/index.html">Lsp.Types.Position</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Range"><a href="#module-Range" class="anchor"></a><code><span><span class="keyword">module</span> Range</span><span> = <a href="../../../../lsp/Lsp/Types/Range/index.html">Lsp.Types.Range</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Diagnostic"><a href="#module-Diagnostic" class="anchor"></a><code><span><span class="keyword">module</span> Diagnostic</span><span> = <a href="../../../../lsp/Lsp/Types/Diagnostic/index.html">Lsp.Types.Diagnostic</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-DiagnosticSeverity"><a href="#module-DiagnosticSeverity" class="anchor"></a><code><span><span class="keyword">module</span> DiagnosticSeverity</span><span> = <a href="../../../../lsp/Lsp/Types/DiagnosticSeverity/index.html">Lsp.Types.DiagnosticSeverity</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Req_id"><a href="#module-Req_id" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Req_id/index.html">Req_id</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-server_request_handler_pair"><a href="#type-server_request_handler_pair" class="anchor"></a><code><span><span class="keyword">type</span> server_request_handler_pair</span><span> = </span></code><ol><li id="type-server_request_handler_pair.Request_and_handler" class="def variant constructor anchored"><a href="#type-server_request_handler_pair.Request_and_handler" class="anchor"></a><code><span>| </span><span><span class="constructor">Request_and_handler</span> : <span><span class="type-var">'from_server</span> <a href="../../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span>
* <span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span> <a href="#type-server_request_handler_pair">server_request_handler_pair</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-send_request"><a href="#type-send_request" class="anchor"></a><code><span><span class="keyword">type</span> send_request</span><span> = <span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-base_server"><a href="#class-base_server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-base_server/index.html">base_server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-async"><a href="#val-async" class="anchor"></a><code><span><span class="keyword">val</span> async : <span><a href="class-base_server/index.html">base_server</a> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-notify_back"><a href="#class-notify_back" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-notify_back/index.html">notify_back</a></span><span> : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">server_request</span>:<span>(<span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">workDoneToken</span>:<span><span>[ <span>`Int of int</span> <span><span>| `String</span> of string</span> ]</span> option</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">partialResultToken</span>:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?version</span>:
int <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?uri</span>:<a href="../../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-doc_state"><a href="#type-doc_state" class="anchor"></a><code><span><span class="keyword">type</span> <span class="keyword">nonrec</span> doc_state</span><span> = </span><span>{</span></code><ol><li id="type-doc_state.uri" class="def record field anchored"><a href="#type-doc_state.uri" class="anchor"></a><code><span>uri : <a href="../../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>;</span></code></li><li id="type-doc_state.languageId" class="def record field anchored"><a href="#type-doc_state.languageId" class="anchor"></a><code><span>languageId : string;</span></code></li><li id="type-doc_state.version" class="def record field anchored"><a href="#type-doc_state.version" class="anchor"></a><code><span>version : int;</span></code></li><li id="type-doc_state.content" class="def record field anchored"><a href="#type-doc_state.content" class="anchor"></a><code><span>content : string;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-server"><a href="#class-server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-server/index.html">server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div></details></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span><span class="label">ic</span>:<a href="argument-1-IO/index.html#type-in_channel">IO.in_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">oc</span>:<a href="argument-1-IO/index.html#type-out_channel">IO.out_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../Linol__Jsonrpc2/module-type-S/class-server/index.html">server</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a connection from the pair of channels</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_stdio"><a href="#val-create_stdio" class="anchor"></a><code><span><span class="keyword">val</span> create_stdio : <span><a href="../../../Linol__Jsonrpc2/module-type-S/class-server/index.html">server</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a connection using stdin/stdout</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_server_notification"><a href="#val-send_server_notification" class="anchor"></a><code><span><span class="keyword">val</span> send_server_notification : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a notification from the server.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_server_request"><a href="#val-send_server_request" class="anchor"></a><code><span><span class="keyword">val</span> send_server_request :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'from_server</span> <a href="../../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a request from the server, and pass a callback that will be called with the result in the future.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-run"><a href="#val-run" class="anchor"></a><code><span><span class="keyword">val</span> run : <span><span class="optlabel">?shutdown</span>:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> bool)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Listen for incoming messages and responses.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">shutdown</span> <p>if true, tells the server to shut down</p></li></ul></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Jsonrpc2 (linol.Linol.Jsonrpc2)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">linol</a> &#x00BB; <a href="../index.html">Linol</a> &#x00BB; Jsonrpc2</nav><header class="odoc-preamble"><h1>Module <code><span>Linol.Jsonrpc2</span></code></h1><p>Simple JSON-RPC2 implementation.</p><p>See <a href="https://www.jsonrpc.org/specification">the spec</a></p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-json"><a href="#type-json" class="anchor"></a><code><span><span class="keyword">type</span> json</span><span> = <a href="../../../yojson/Yojson/Safe/index.html#type-t">Yojson.Safe.t</a></span></code></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-IO"><a href="#module-type-IO" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-IO/index.html">IO</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-S"><a href="#module-type-S" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-S/index.html">S</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Make"><a href="#module-Make" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Make/index.html">Make</a></span><span> (<a href="Make/argument-1-IO/index.html">IO</a> : <a href="module-type-IO/index.html">IO</a>) : <a href="module-type-S/index.html">S</a> <span class="keyword">with</span> <span><span class="keyword">module</span> <a href="module-type-S/IO/index.html">IO</a> = <a href="Make/argument-1-IO/index.html">IO</a></span></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Req_id (linol.Linol.Jsonrpc2.S.Req_id)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; Req_id</nav><header class="odoc-preamble"><h1>Module <code><span>S.Req_id</span></code></h1></header><div class="odoc-content"><p>Request ID.</p><p>The unique ID of a request, used by JSONRPC to map each request to its reply.</p><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p>String representation of the ID</p></div></div></div></body></html>

View file

@ -1,9 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>base_server (linol.Linol.Jsonrpc2.S.base_server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; base_server</nav><header class="odoc-preamble"><h1>Class <code><span>S.base_server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>notify_back (linol.Linol.Jsonrpc2.S.notify_back)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; notify_back</nav><header class="odoc-preamble"><h1>Class <code><span>S.notify_back</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-uri"><a href="#val-uri" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-cancel_request"><a href="#method-cancel_request" class="anchor"></a><code><span><span class="keyword">method</span> cancel_request : <span><a href="../../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_uri"><a href="#method-get_uri" class="anchor"></a><code><span><span class="keyword">method</span> get_uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_diagnostic"><a href="#method-send_diagnostic" class="anchor"></a><code><span><span class="keyword">method</span> send_diagnostic : <span><span><a href="../../../../../lsp/Lsp__/Types/Diagnostic/index.html#type-t">Diagnostic.t</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_log_msg"><a href="#method-send_log_msg" class="anchor"></a><code><span><span class="keyword">method</span> send_log_msg : <span><span class="label">type_</span>:<span class="xref-unresolved">Lsp__Types.MessageType.t</span> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_notification"><a href="#method-send_notification" class="anchor"></a><code><span><span class="keyword">method</span> send_notification : <span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_request"><a href="#method-send_request" class="anchor"></a><code><span><span class="keyword">method</span> send_request : 'from_server. <span><span><span class="type-var">'from_server</span> <a href="../../../../../lsp/Lsp__/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-set_uri"><a href="#method-set_uri" class="anchor"></a><code><span><span class="keyword">method</span> set_uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-telemetry"><a href="#method-telemetry" class="anchor"></a><code><span><span class="keyword">method</span> telemetry : <span><span class="xref-unresolved">Lsp__.Import.Json.t</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_begin"><a href="#method-work_done_progress_begin" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_begin : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressBegin/index.html#type-t">Lsp.Types.WorkDoneProgressBegin.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_end"><a href="#method-work_done_progress_end" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_end : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressEnd/index.html#type-t">Lsp.Types.WorkDoneProgressEnd.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_report"><a href="#method-work_done_progress_report" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_report : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressReport/index.html#type-t">Lsp.Types.WorkDoneProgressReport.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div></div></body></html>

View file

@ -1,99 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>server (linol.Linol.Jsonrpc2.S.server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Jsonrpc2</a> &#x00BB; <a href="../index.html">S</a> &#x00BB; server</nav><header class="odoc-preamble"><h1>Class <code><span>S.server</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-status"><a href="#val-status" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-docs"><a href="#val-docs" class="anchor"></a><code><span><span class="keyword">val</span> docs : <span><span>(<a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>, <a href="../index.html#type-doc_state">doc_state</a>)</span> <a href="../../../../../ocaml/Stdlib/Hashtbl/index.html#type-t">Hashtbl.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_action_provider"><a href="#method-config_code_action_provider" class="anchor"></a><code><span><span class="keyword">method</span> config_code_action_provider : <span>[ <span>`Bool of bool</span>
<span><span>| `CodeActionOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/CodeActionOptions/index.html#type-t">Lsp.Types.CodeActionOptions.t</a></span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_lens_options"><a href="#method-config_code_lens_options" class="anchor"></a><code><span><span class="keyword">method</span> config_code_lens_options : <span><a href="../../../../../lsp/Lsp__/Types/CodeLensOptions/index.html#type-t">Lsp.Types.CodeLensOptions.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_completion"><a href="#method-config_completion" class="anchor"></a><code><span><span class="keyword">method</span> config_completion : <span><a href="../../../../../lsp/Lsp__/Types/CompletionOptions/index.html#type-t">Lsp.Types.CompletionOptions.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_definition"><a href="#method-config_definition" class="anchor"></a><code><span><span class="keyword">method</span> config_definition : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DefinitionOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/DefinitionOptions/index.html#type-t">Lsp.Types.DefinitionOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_hover"><a href="#method-config_hover" class="anchor"></a><code><span><span class="keyword">method</span> config_hover : <span><span>[ <span>`Bool of bool</span>
<span><span>| `HoverOptions</span> of <a href="../../../../../lsp/Lsp__/Types/HoverOptions/index.html#type-t">Lsp.Types.HoverOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_list_commands"><a href="#method-config_list_commands" class="anchor"></a><code><span><span class="keyword">method</span> config_list_commands : <span>string list</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_modify_capabilities"><a href="#method-config_modify_capabilities" class="anchor"></a><code><span><span class="keyword">method</span> config_modify_capabilities : <span><a href="../../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_symbol"><a href="#method-config_symbol" class="anchor"></a><code><span><span class="keyword">method</span> config_symbol : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DocumentSymbolOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/DocumentSymbolOptions/index.html#type-t">Lsp.Types.DocumentSymbolOptions.t</a></span> ]</span>
option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_sync_opts"><a href="#method-config_sync_opts" class="anchor"></a><code><span><span class="keyword">method</span> config_sync_opts : <a href="../../../../../lsp/Lsp__/Types/TextDocumentSyncOptions/index.html#type-t">Lsp.Types.TextDocumentSyncOptions.t</a></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-find_doc"><a href="#method-find_doc" class="anchor"></a><code><span><span class="keyword">method</span> find_doc : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-doc_state">doc_state</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_status"><a href="#method-get_status" class="anchor"></a><code><span><span class="keyword">method</span> get_status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_change"><a href="#method-on_notif_doc_did_change" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_change : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/VersionedTextDocumentIdentifier/index.html#type-t">Lsp.Types.VersionedTextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/TextDocumentContentChangeEvent/index.html#type-t">Lsp.Types.TextDocumentContentChangeEvent.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">old_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">new_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_close"><a href="#method-on_notif_doc_did_close" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_close : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/TextDocumentIdentifier/index.html#type-t">Lsp.Types.TextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_open"><a href="#method-on_notif_doc_did_open" class="anchor"></a><code><span><span class="keyword">method</span> on_notif_doc_did_open : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/TextDocumentItem/index.html#type-t">Lsp.Types.TextDocumentItem.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification_unhandled"><a href="#method-on_notification_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_notification_unhandled : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_action"><a href="#method-on_req_code_action" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_action : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeActionParams/index.html#type-t">Lsp.Types.CodeActionParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeActionResult/index.html#type-t">Lsp.Types.CodeActionResult.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens"><a href="#method-on_req_code_lens" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> list</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens_resolve"><a href="#method-on_req_code_lens_resolve" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens_resolve : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_completion"><a href="#method-on_req_completion" class="anchor"></a><code><span><span class="keyword">method</span> on_req_completion : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">ctx</span>:<span><span class="xref-unresolved">Lsp__Types.CompletionContext.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`CompletionList of <span class="xref-unresolved">Lsp__.Types.CompletionList.t</span></span>
<span><span>| `List</span> of <span><span class="xref-unresolved">Lsp__.Types.CompletionItem.t</span> list</span></span> ]</span>
option</span>
<a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_definition"><a href="#method-on_req_definition" class="anchor"></a><code><span><span class="keyword">method</span> on_req_definition : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/Locations/index.html#type-t">Lsp.Types.Locations.t</a> option</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_execute_command"><a href="#method-on_req_execute_command" class="anchor"></a><code><span><span class="keyword">method</span> on_req_execute_command : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> list</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_hover"><a href="#method-on_req_hover" class="anchor"></a><code><span><span class="keyword">method</span> on_req_hover : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/Hover/index.html#type-t">Lsp.Types.Hover.t</a> option</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_initialize"><a href="#method-on_req_initialize" class="anchor"></a><code><span><span class="keyword">method</span> on_req_initialize : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/InitializeParams/index.html#type-t">Lsp.Types.InitializeParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/InitializeResult/index.html#type-t">Lsp.Types.InitializeResult.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_inlay_hint"><a href="#method-on_req_inlay_hint" class="anchor"></a><code><span><span class="keyword">method</span> on_req_inlay_hint : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">range</span>:<a href="../../../../../lsp/Lsp__/Types/Range/index.html#type-t">Lsp.Types.Range.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../../lsp/Lsp__/Types/InlayHint/index.html#type-t">Lsp.Types.InlayHint.t</a> list</span> option</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_symbol"><a href="#method-on_req_symbol" class="anchor"></a><code><span><span class="keyword">method</span> on_req_symbol : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`DocumentSymbol of <span><span class="xref-unresolved">Lsp__.Types.DocumentSymbol.t</span> list</span></span>
<span><span>| `SymbolInformation</span> of <span><span class="xref-unresolved">Lsp__.Types.SymbolInformation.t</span> list</span></span> ]</span>
option</span>
<a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request_unhandled"><a href="#method-on_request_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_request_unhandled : 'r. <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'r</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'r</span> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_notification"><a href="#method-on_unknown_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_notification : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../jsonrpc/Jsonrpc/Notification/index.html#type-t">Jsonrpc.Notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_request"><a href="#method-on_unknown_request" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_request : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Jsonrpc2/module-type-S/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<span>(<span><a href="../index.html#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../jsonrpc/Jsonrpc/Structured/index.html#type-t">Jsonrpc.Structured.t</a> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div></div></body></html>

View file

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>S (linol.Linol.Jsonrpc2.S)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol</a> &#x00BB; <a href="../../index.html">Linol</a> &#x00BB; <a href="../index.html">Jsonrpc2</a> &#x00BB; S</nav><header class="odoc-preamble"><h1>Module type <code><span>Jsonrpc2.S</span></code></h1></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module anchored" id="module-IO"><a href="#module-IO" class="anchor"></a><code><span><span class="keyword">module</span> <a href="IO/index.html">IO</a></span><span> : <a href="../module-type-IO/index.html">IO</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span></code></div><div class="spec-doc"><p>A jsonrpc2 connection.</p></div></div><div class="odoc-include"><details open="open"><summary class="spec include"><code><span><span class="keyword">include</span> <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></summary><div class="odoc-spec"><div class="spec module anchored" id="module-Position"><a href="#module-Position" class="anchor"></a><code><span><span class="keyword">module</span> Position</span><span> = <a href="../../../../lsp/Lsp/Types/Position/index.html">Lsp.Types.Position</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Range"><a href="#module-Range" class="anchor"></a><code><span><span class="keyword">module</span> Range</span><span> = <a href="../../../../lsp/Lsp/Types/Range/index.html">Lsp.Types.Range</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Diagnostic"><a href="#module-Diagnostic" class="anchor"></a><code><span><span class="keyword">module</span> Diagnostic</span><span> = <a href="../../../../lsp/Lsp/Types/Diagnostic/index.html">Lsp.Types.Diagnostic</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-DiagnosticSeverity"><a href="#module-DiagnosticSeverity" class="anchor"></a><code><span><span class="keyword">module</span> DiagnosticSeverity</span><span> = <a href="../../../../lsp/Lsp/Types/DiagnosticSeverity/index.html">Lsp.Types.DiagnosticSeverity</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Req_id"><a href="#module-Req_id" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Req_id/index.html">Req_id</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-server_request_handler_pair"><a href="#type-server_request_handler_pair" class="anchor"></a><code><span><span class="keyword">type</span> server_request_handler_pair</span><span> = </span></code><ol><li id="type-server_request_handler_pair.Request_and_handler" class="def variant constructor anchored"><a href="#type-server_request_handler_pair.Request_and_handler" class="anchor"></a><code><span>| </span><span><span class="constructor">Request_and_handler</span> : <span><span class="type-var">'from_server</span> <a href="../../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span>
* <span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span> <a href="#type-server_request_handler_pair">server_request_handler_pair</a></span></code></li></ol></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-send_request"><a href="#type-send_request" class="anchor"></a><code><span><span class="keyword">type</span> send_request</span><span> = <span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-base_server"><a href="#class-base_server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-base_server/index.html">base_server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-async"><a href="#val-async" class="anchor"></a><code><span><span class="keyword">val</span> async : <span><a href="class-base_server/index.html">base_server</a> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-notify_back"><a href="#class-notify_back" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-notify_back/index.html">notify_back</a></span><span> : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">server_request</span>:<span>(<span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">workDoneToken</span>:<span><span>[ <span>`Int of int</span> <span><span>| `String</span> of string</span> ]</span> option</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">partialResultToken</span>:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?version</span>:
int <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?uri</span>:<a href="../../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-doc_state"><a href="#type-doc_state" class="anchor"></a><code><span><span class="keyword">type</span> <span class="keyword">nonrec</span> doc_state</span><span> = </span><span>{</span></code><ol><li id="type-doc_state.uri" class="def record field anchored"><a href="#type-doc_state.uri" class="anchor"></a><code><span>uri : <a href="../../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>;</span></code></li><li id="type-doc_state.languageId" class="def record field anchored"><a href="#type-doc_state.languageId" class="anchor"></a><code><span>languageId : string;</span></code></li><li id="type-doc_state.version" class="def record field anchored"><a href="#type-doc_state.version" class="anchor"></a><code><span>version : int;</span></code></li><li id="type-doc_state.content" class="def record field anchored"><a href="#type-doc_state.content" class="anchor"></a><code><span>content : string;</span></code></li></ol><code><span>}</span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-server"><a href="#class-server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-server/index.html">server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div></div></details></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span><span class="label">ic</span>:<a href="IO/index.html#type-in_channel">IO.in_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">oc</span>:<a href="IO/index.html#type-out_channel">IO.out_channel</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../Linol__Jsonrpc2/module-type-S/class-server/index.html">server</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a connection from the pair of channels</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create_stdio"><a href="#val-create_stdio" class="anchor"></a><code><span><span class="keyword">val</span> create_stdio : <span><a href="../../../Linol__Jsonrpc2/module-type-S/class-server/index.html">server</a> <span class="arrow">&#45;&gt;</span></span> <a href="#type-t">t</a></span></code></div><div class="spec-doc"><p>Create a connection using stdin/stdout</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_server_notification"><a href="#val-send_server_notification" class="anchor"></a><code><span><span class="keyword">val</span> send_server_notification : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a notification from the server.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-send_server_request"><a href="#val-send_server_request" class="anchor"></a><code><span><span class="keyword">val</span> send_server_request :
<span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'from_server</span> <a href="../../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="Req_id/index.html#type-t">Req_id.t</a> <a href="IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a request from the server, and pass a callback that will be called with the result in the future.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-run"><a href="#val-run" class="anchor"></a><code><span><span class="keyword">val</span> run : <span><span class="optlabel">?shutdown</span>:<span>(<span>unit <span class="arrow">&#45;&gt;</span></span> bool)</span> <span class="arrow">&#45;&gt;</span></span> <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Listen for incoming messages and responses.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">shutdown</span> <p>if true, tells the server to shut down</p></li></ul></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>base_server (linol.Linol.Server.Make.base_server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Server</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; base_server</nav><header class="odoc-preamble"><h1>Class <code><span>Make.base_server</span></code></h1><p>The server baseclass</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> <span class="keyword">virtual</span> on_notification : <span><span class="label">notify_back</span>:
<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> <span class="keyword">virtual</span> on_request : 'a. <span><span class="label">notify_back</span>:
<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Method called to handle client requests.</p><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">notify_back</span> <p>an object used to reply to the client, send progress messages, diagnostics, etc.</p></li></ul><ul class="at-tags"><li class="parameter"><span class="at-tag">parameter</span> <span class="value">id</span> <p>the query RPC ID, can be used for tracing, cancellation, etc.</p></li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-must_quit"><a href="#method-must_quit" class="anchor"></a><code><span><span class="keyword">method</span> must_quit : bool</span></code></div><div class="spec-doc"><p>Set to true if the client requested to exit</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-spawn_query_handler"><a href="#method-spawn_query_handler" class="anchor"></a><code><span><span class="keyword">method</span> <span class="keyword">virtual</span> spawn_query_handler : <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>How to start a new future/task/thread concurrently. This is used to process incoming user queries.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div></div></body></html>

View file

@ -1,6 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>notify_back (linol.Linol.Server.Make.notify_back)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Server</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; notify_back</nav><header class="odoc-preamble"><h1>Class <code><span>Make.notify_back</span></code></h1><p>A wrapper to more easily reply to notifications</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-uri"><a href="#val-uri" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-set_uri"><a href="#method-set_uri" class="anchor"></a><code><span><span class="keyword">method</span> set_uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_uri"><a href="#method-get_uri" class="anchor"></a><code><span><span class="keyword">method</span> get_uri : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_log_msg"><a href="#method-send_log_msg" class="anchor"></a><code><span><span class="keyword">method</span> send_log_msg : <span><span class="label">type_</span>:<span class="xref-unresolved">Lsp__Types.MessageType.t</span> <span class="arrow">&#45;&gt;</span></span> <span>string <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a log message to the editor</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_diagnostic"><a href="#method-send_diagnostic" class="anchor"></a><code><span><span class="keyword">method</span> send_diagnostic : <span><span><a href="../../../../../lsp/Lsp__/Types/Diagnostic/index.html#type-t">Diagnostic.t</a> list</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send diagnostics for the current document</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-telemetry"><a href="#method-telemetry" class="anchor"></a><code><span><span class="keyword">method</span> telemetry : <span><span class="xref-unresolved">Lsp__.Import.Json.t</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-cancel_request"><a href="#method-cancel_request" class="anchor"></a><code><span><span class="keyword">method</span> cancel_request : <span><a href="../../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_begin"><a href="#method-work_done_progress_begin" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_begin : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressBegin/index.html#type-t">Lsp.Types.WorkDoneProgressBegin.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_report"><a href="#method-work_done_progress_report" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_report : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressReport/index.html#type-t">Lsp.Types.WorkDoneProgressReport.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-work_done_progress_end"><a href="#method-work_done_progress_end" class="anchor"></a><code><span><span class="keyword">method</span> work_done_progress_end : <span><a href="../../../../../lsp/Lsp__/Types/WorkDoneProgressEnd/index.html#type-t">Lsp.Types.WorkDoneProgressEnd.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_notification"><a href="#method-send_notification" class="anchor"></a><code><span><span class="keyword">method</span> send_notification : <span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a notification from the server to the client (general purpose method)</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-send_request"><a href="#method-send_request" class="anchor"></a><code><span><span class="keyword">method</span> send_request : 'from_server. <span><span><span class="type-var">'from_server</span> <a href="../../../../../lsp/Lsp__/Server_request/index.html#type-t">Lsp.Server_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../Req_id/index.html#type-t">Req_id.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Send a request from the server to the client (general purpose method)</p></div></div></div></body></html>

View file

@ -1,99 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>server (linol.Linol.Server.Make.server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../../index.html">linol</a> &#x00BB; <a href="../../../index.html">Linol</a> &#x00BB; <a href="../../index.html">Server</a> &#x00BB; <a href="../index.html">Make</a> &#x00BB; server</nav><header class="odoc-preamble"><h1>Class <code><span>Make.server</span></code></h1><p>An easily overloadable class. Pick the methods you want to support. The user must provide at least the callbacks for document lifecycle: open, close, update. The most basic LSP server should check documents when they're updated and report diagnostics back to the editor.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec inherit"><code><span><span class="keyword">inherit</span> <a href="../class-base_server/index.html">base_server</a></span></code></div></div><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-status"><a href="#val-status" class="anchor"></a><code><span><span class="keyword">val</span> <span class="keyword">mutable</span> status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div></div><div class="odoc-spec"><div class="spec value instance-variable anchored" id="val-docs"><a href="#val-docs" class="anchor"></a><code><span><span class="keyword">val</span> docs : <span><span>(<a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>, <a href="../index.html#type-doc_state">doc_state</a>)</span> <a href="../../../../../ocaml/Stdlib/Hashtbl/index.html#type-t">Hashtbl.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-get_status"><a href="#method-get_status" class="anchor"></a><code><span><span class="keyword">method</span> get_status : <span>[ `ReceivedExit <span>| `ReceivedShutdown</span> <span>| `Running</span> ]</span></span></code></div><div class="spec-doc"><p>Check if exit or shutdown request was made by the client.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-find_doc"><a href="#method-find_doc" class="anchor"></a><code><span><span class="keyword">method</span> find_doc : <span><a href="../../../../../lsp/Lsp__/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../index.html#type-doc_state">doc_state</a> option</span></span></code></div><div class="spec-doc"><p>Find current state of the given document, if present.</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request_unhandled"><a href="#method-on_request_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_request_unhandled : 'r. <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'r</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'r</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Override to process other requests</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_sync_opts"><a href="#method-config_sync_opts" class="anchor"></a><code><span><span class="keyword">method</span> config_sync_opts : <a href="../../../../../lsp/Lsp__/Types/TextDocumentSyncOptions/index.html#type-t">Lsp.Types.TextDocumentSyncOptions.t</a></span></code></div><div class="spec-doc"><p>Parameter for how to synchronize content with the editor</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_completion"><a href="#method-config_completion" class="anchor"></a><code><span><span class="keyword">method</span> config_completion : <span><a href="../../../../../lsp/Lsp__/Types/CompletionOptions/index.html#type-t">Lsp.Types.CompletionOptions.t</a> option</span></span></code></div><div class="spec-doc"><p>Configuration for the completion API.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.4</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_lens_options"><a href="#method-config_code_lens_options" class="anchor"></a><code><span><span class="keyword">method</span> config_code_lens_options : <span><a href="../../../../../lsp/Lsp__/Types/CodeLensOptions/index.html#type-t">Lsp.Types.CodeLensOptions.t</a> option</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_definition"><a href="#method-config_definition" class="anchor"></a><code><span><span class="keyword">method</span> config_definition : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DefinitionOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/DefinitionOptions/index.html#type-t">Lsp.Types.DefinitionOptions.t</a></span> ]</span>
option</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_hover"><a href="#method-config_hover" class="anchor"></a><code><span><span class="keyword">method</span> config_hover : <span><span>[ <span>`Bool of bool</span>
<span><span>| `HoverOptions</span> of <a href="../../../../../lsp/Lsp__/Types/HoverOptions/index.html#type-t">Lsp.Types.HoverOptions.t</a></span> ]</span>
option</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_symbol"><a href="#method-config_symbol" class="anchor"></a><code><span><span class="keyword">method</span> config_symbol : <span><span>[ <span>`Bool of bool</span>
<span><span>| `DocumentSymbolOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/DocumentSymbolOptions/index.html#type-t">Lsp.Types.DocumentSymbolOptions.t</a></span> ]</span>
option</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_code_action_provider"><a href="#method-config_code_action_provider" class="anchor"></a><code><span><span class="keyword">method</span> config_code_action_provider : <span>[ <span>`Bool of bool</span>
<span><span>| `CodeActionOptions</span> of
<a href="../../../../../lsp/Lsp__/Types/CodeActionOptions/index.html#type-t">Lsp.Types.CodeActionOptions.t</a></span> ]</span></span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_modify_capabilities"><a href="#method-config_modify_capabilities" class="anchor"></a><code><span><span class="keyword">method</span> config_modify_capabilities : <span><a href="../../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a> <span class="arrow">&#45;&gt;</span></span>
<a href="../../../../../lsp/Lsp__/Types/ServerCapabilities/index.html#type-t">Lsp.Types.ServerCapabilities.t</a></span></code></div><div class="spec-doc"><p>Modify capabilities before sending them back to the client. By default we just return them unmodified.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-config_list_commands"><a href="#method-config_list_commands" class="anchor"></a><code><span><span class="keyword">method</span> config_list_commands : <span>string list</span></span></code></div><div class="spec-doc"><p>List of commands available</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_initialize"><a href="#method-on_req_initialize" class="anchor"></a><code><span><span class="keyword">method</span> on_req_initialize : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/InitializeParams/index.html#type-t">Lsp.Types.InitializeParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/InitializeResult/index.html#type-t">Lsp.Types.InitializeResult.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_hover"><a href="#method-on_req_hover" class="anchor"></a><code><span><span class="keyword">method</span> on_req_hover : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/Hover/index.html#type-t">Lsp.Types.Hover.t</a> option</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Called when the user hovers on some identifier in the document</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_completion"><a href="#method-on_req_completion" class="anchor"></a><code><span><span class="keyword">method</span> on_req_completion : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">ctx</span>:<span><span class="xref-unresolved">Lsp__Types.CompletionContext.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`CompletionList of <span class="xref-unresolved">Lsp__.Types.CompletionList.t</span></span>
<span><span>| `List</span> of <span><span class="xref-unresolved">Lsp__.Types.CompletionItem.t</span> list</span></span> ]</span>
option</span>
<a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Called when the user requests completion in the document</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_definition"><a href="#method-on_req_definition" class="anchor"></a><code><span><span class="keyword">method</span> on_req_definition : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">pos</span>:<span class="xref-unresolved">Lsp__Types.Position.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/Locations/index.html#type-t">Lsp.Types.Locations.t</a> option</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Called when the user wants to jump-to-definition</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens"><a href="#method-on_req_code_lens" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../index.html#type-doc_state">doc_state</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> list</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>List code lenses for the given document</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_lens_resolve"><a href="#method-on_req_code_lens_resolve" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_lens_resolve : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeLens/index.html#type-t">Lsp.Types.CodeLens.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Code lens resolution, must return a code lens with non null &quot;command&quot;</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_code_action"><a href="#method-on_req_code_action" class="anchor"></a><code><span><span class="keyword">method</span> on_req_code_action : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeActionParams/index.html#type-t">Lsp.Types.CodeActionParams.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/CodeActionResult/index.html#type-t">Lsp.Types.CodeActionResult.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Code action.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_execute_command"><a href="#method-on_req_execute_command" class="anchor"></a><code><span><span class="keyword">method</span> on_req_execute_command : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> list</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Execute a command with given arguments.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_symbol"><a href="#method-on_req_symbol" class="anchor"></a><code><span><span class="keyword">method</span> on_req_symbol : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">workDoneToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">partialResultToken</span>:<span><span class="xref-unresolved">Lsp__Types.ProgressToken.t</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span>[ <span>`DocumentSymbol of <span><span class="xref-unresolved">Lsp__.Types.DocumentSymbol.t</span> list</span></span>
<span><span>| `SymbolInformation</span> of <span><span class="xref-unresolved">Lsp__.Types.SymbolInformation.t</span> list</span></span> ]</span>
option</span>
<a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>List symbols in this document.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_request"><a href="#method-on_unknown_request" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_request : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<span>(<span><a href="../index.html#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../../Req_id/index.html#type-t">Req_id.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../jsonrpc/Jsonrpc/Structured/index.html#type-t">Jsonrpc.Structured.t</a> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../yojson/Yojson__/Safe/index.html#type-t">Yojson.Safe.t</a> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_req_inlay_hint"><a href="#method-on_req_inlay_hint" class="anchor"></a><code><span><span class="keyword">method</span> on_req_inlay_hint : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">uri</span>:<span class="xref-unresolved">Lsp__Types.DocumentUri.t</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">range</span>:<a href="../../../../../lsp/Lsp__/Types/Range/index.html#type-t">Lsp.Types.Range.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <span class="arrow">&#45;&gt;</span></span>
<span><span><span><a href="../../../../../lsp/Lsp__/Types/InlayHint/index.html#type-t">Lsp.Types.InlayHint.t</a> list</span> option</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Provide inlay hints for this document.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.5</li></ul></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_request"><a href="#method-on_request" class="anchor"></a><code><span><span class="keyword">method</span> on_request : 'a. <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">id</span>:<a href="../../Req_id/index.html#type-t">Req_id.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><span class="type-var">'a</span> <a href="../../../../../lsp/Lsp__/Client_request/index.html#type-t">Lsp.Client_request.t</a></span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="type-var">'a</span> <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_open"><a href="#method-on_notif_doc_did_open" class="anchor"></a><code><span><span class="keyword">method</span> <span class="keyword">virtual</span> on_notif_doc_did_open : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/TextDocumentItem/index.html#type-t">Lsp.Types.TextDocumentItem.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Called when a document is opened</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_close"><a href="#method-on_notif_doc_did_close" class="anchor"></a><code><span><span class="keyword">method</span> <span class="keyword">virtual</span> on_notif_doc_did_close : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/TextDocumentIdentifier/index.html#type-t">Lsp.Types.TextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notif_doc_did_change"><a href="#method-on_notif_doc_did_change" class="anchor"></a><code><span><span class="keyword">method</span> <span class="keyword">virtual</span> on_notif_doc_did_change : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Types/VersionedTextDocumentIdentifier/index.html#type-t">Lsp.Types.VersionedTextDocumentIdentifier.t</a> <span class="arrow">&#45;&gt;</span></span>
<span><span><a href="../../../../../lsp/Lsp__/Types/TextDocumentContentChangeEvent/index.html#type-t">Lsp.Types.TextDocumentContentChangeEvent.t</a> list</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">old_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">new_content</span>:string <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Called when the document changes.</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_unknown_notification"><a href="#method-on_unknown_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_unknown_notification : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../jsonrpc/Jsonrpc/Notification/index.html#type-t">Jsonrpc.Notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification_unhandled"><a href="#method-on_notification_unhandled" class="anchor"></a><code><span><span class="keyword">method</span> on_notification_unhandled : <span><span class="label">notify_back</span>:<a href="../../../../Linol__Server/Make/class-notify_back/index.html">notify_back</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>Override to handle unprocessed notifications</p></div></div><div class="odoc-spec"><div class="spec method anchored" id="method-on_notification"><a href="#method-on_notification" class="anchor"></a><code><span><span class="keyword">method</span> on_notification : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../../lsp/Lsp__/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">server_request</span>:<a href="../index.html#type-send_request">send_request</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../../../../../lsp/Lsp__/Client_notification/index.html#type-t">Lsp.Client_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="../argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div></div></body></html>

View file

@ -1,8 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Make (linol.Linol.Server.Make)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol</a> &#x00BB; <a href="../../index.html">Linol</a> &#x00BB; <a href="../index.html">Server</a> &#x00BB; Make</nav><header class="odoc-preamble"><h1>Module <code><span>Server.Make</span></code></h1><p>Server interface for some IO substrate.</p></header><nav class="odoc-toc"><ul><li><a href="#parameters">Parameters</a></li><li><a href="#signature">Signature</a></li></ul></nav><div class="odoc-content"><h2 id="parameters"><a href="#parameters" class="anchor"></a>Parameters</h2><div class="odoc-spec"><div class="spec parameter anchored" id="argument-1-IO"><a href="#argument-1-IO" class="anchor"></a><code><span><span class="keyword">module</span> </span><span><a href="argument-1-IO/index.html">IO</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><h2 id="signature"><a href="#signature" class="anchor"></a>Signature</h2><div class="odoc-spec"><div class="spec module anchored" id="module-Position"><a href="#module-Position" class="anchor"></a><code><span><span class="keyword">module</span> Position</span><span> = <a href="../../../../lsp/Lsp/Types/Position/index.html">Lsp.Types.Position</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Range"><a href="#module-Range" class="anchor"></a><code><span><span class="keyword">module</span> Range</span><span> = <a href="../../../../lsp/Lsp/Types/Range/index.html">Lsp.Types.Range</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Diagnostic"><a href="#module-Diagnostic" class="anchor"></a><code><span><span class="keyword">module</span> Diagnostic</span><span> = <a href="../../../../lsp/Lsp/Types/Diagnostic/index.html">Lsp.Types.Diagnostic</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-DiagnosticSeverity"><a href="#module-DiagnosticSeverity" class="anchor"></a><code><span><span class="keyword">module</span> DiagnosticSeverity</span><span> = <a href="../../../../lsp/Lsp/Types/DiagnosticSeverity/index.html">Lsp.Types.DiagnosticSeverity</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Req_id"><a href="#module-Req_id" class="anchor"></a><code><span><span class="keyword">module</span> Req_id</span><span> = <a href="../Req_id/index.html">Req_id</a></span></code></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-server_request_handler_pair"><a href="#type-server_request_handler_pair" class="anchor"></a><code><span><span class="keyword">type</span> server_request_handler_pair</span><span> = </span></code><ol><li id="type-server_request_handler_pair.Request_and_handler" class="def variant constructor anchored"><a href="#type-server_request_handler_pair.Request_and_handler" class="anchor"></a><code><span>| </span><span><span class="constructor">Request_and_handler</span> : <span><span class="type-var">'from_server</span> <a href="../../../../lsp/Lsp/Server_request/index.html#type-t">Lsp.Server_request.t</a></span>
* <span>(<span><span><span>(<span class="type-var">'from_server</span>, <a href="../../../../jsonrpc/Jsonrpc/Response/Error/index.html#type-t">Jsonrpc.Response.Error.t</a>)</span> <a href="../../../../ocaml/Stdlib/index.html#type-result">result</a></span> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span> <a href="#type-server_request_handler_pair">server_request_handler_pair</a></span></code></li></ol></div><div class="spec-doc"><p>A variant carrying a <code>Lsp.Server_request.t</code> and a handler for its return value. The request is stored in order to allow us to discriminate its existential variable.</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-send_request"><a href="#type-send_request" class="anchor"></a><code><span><span class="keyword">type</span> send_request</span><span> = <span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span> <span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div><div class="spec-doc"><p>The type of the action that sends a request from the server to the client and handles its response.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-base_server"><a href="#class-base_server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-base_server/index.html">base_server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>The server baseclass</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-async"><a href="#val-async" class="anchor"></a><code><span><span class="keyword">val</span> async : <span><a href="class-base_server/index.html">base_server</a> <span class="arrow">&#45;&gt;</span></span> <span><span>(<span>unit <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span></span></code></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-notify_back"><a href="#class-notify_back" class="anchor"></a><code><span><span class="keyword">class</span> </span><span><a href="class-notify_back/index.html">notify_back</a></span><span> : <span><span class="label">notify_back</span>:<span>(<span><a href="../../../../lsp/Lsp/Server_notification/index.html#type-t">Lsp.Server_notification.t</a> <span class="arrow">&#45;&gt;</span></span>
<span>unit <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">server_request</span>:<span>(<span><a href="#type-server_request_handler_pair">server_request_handler_pair</a> <span class="arrow">&#45;&gt;</span></span>
<span><a href="../Req_id/index.html#type-t">Req_id.t</a> <a href="argument-1-IO/index.html#type-t">IO.t</a></span>)</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">workDoneToken</span>:<span><span>[ <span>`Int of int</span> <span><span>| `String</span> of string</span> ]</span> option</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="label">partialResultToken</span>:<span class="type-var">'a</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?version</span>:
<span>int
option</span> <span class="arrow">&#45;&gt;</span></span> <span><span class="optlabel">?uri</span>:<span><a href="../../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a> option</span> <span class="arrow">&#45;&gt;</span></span> <span>unit <span class="arrow">&#45;&gt;</span></span> <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>A wrapper to more easily reply to notifications</p></div></div><div class="odoc-spec"><div class="spec type anchored" id="type-doc_state"><a href="#type-doc_state" class="anchor"></a><code><span><span class="keyword">type</span> <span class="keyword">nonrec</span> doc_state</span><span> = <a href="../index.html#type-doc_state">doc_state</a></span><span> = </span><span>{</span></code><ol><li id="type-doc_state.uri" class="def record field anchored"><a href="#type-doc_state.uri" class="anchor"></a><code><span>uri : <a href="../../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>;</span></code></li><li id="type-doc_state.languageId" class="def record field anchored"><a href="#type-doc_state.languageId" class="anchor"></a><code><span>languageId : string;</span></code></li><li id="type-doc_state.version" class="def record field anchored"><a href="#type-doc_state.version" class="anchor"></a><code><span>version : int;</span></code></li><li id="type-doc_state.content" class="def record field anchored"><a href="#type-doc_state.content" class="anchor"></a><code><span>content : string;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>Current state of a document.</p></div></div><div class="odoc-spec"><div class="spec class anchored" id="class-server"><a href="#class-server" class="anchor"></a><code><span><span class="keyword">class</span> <span class="keyword">virtual</span> </span><span><a href="class-server/index.html">server</a></span><span> : <span class="keyword">object</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>An easily overloadable class. Pick the methods you want to support. The user must provide at least the callbacks for document lifecycle: open, close, update. The most basic LSP server should check documents when they're updated and report diagnostics back to the editor.</p></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Req_id (linol.Linol.Server.Req_id)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">linol</a> &#x00BB; <a href="../../index.html">Linol</a> &#x00BB; <a href="../index.html">Server</a> &#x00BB; Req_id</nav><header class="odoc-preamble"><h1>Module <code><span>Server.Req_id</span></code></h1><p>Request ID.</p><p>The unique ID of a request, used by JSONRPC to map each request to its reply.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> t</span><span> = <a href="../../../../jsonrpc/Jsonrpc/Id/index.html#type-t">Jsonrpc.Id.t</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-to_string"><a href="#val-to_string" class="anchor"></a><code><span><span class="keyword">val</span> to_string : <span><a href="#type-t">t</a> <span class="arrow">&#45;&gt;</span></span> string</span></code></div><div class="spec-doc"><p>String representation of the ID</p></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Server (linol.Linol.Server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">linol</a> &#x00BB; <a href="../index.html">Linol</a> &#x00BB; Server</nav><header class="odoc-preamble"><h1>Module <code><span>Linol.Server</span></code></h1><p>Server interface</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-doc_state"><a href="#type-doc_state" class="anchor"></a><code><span><span class="keyword">type</span> <span class="keyword">nonrec</span> doc_state</span><span> = </span><span>{</span></code><ol><li id="type-doc_state.uri" class="def record field anchored"><a href="#type-doc_state.uri" class="anchor"></a><code><span>uri : <a href="../../../lsp/Lsp/Types/DocumentUri/index.html#type-t">Lsp.Types.DocumentUri.t</a>;</span></code></li><li id="type-doc_state.languageId" class="def record field anchored"><a href="#type-doc_state.languageId" class="anchor"></a><code><span>languageId : string;</span></code></li><li id="type-doc_state.version" class="def record field anchored"><a href="#type-doc_state.version" class="anchor"></a><code><span>version : int;</span></code></li><li id="type-doc_state.content" class="def record field anchored"><a href="#type-doc_state.content" class="anchor"></a><code><span>content : string;</span></code></li></ol><code><span>}</span></code></div><div class="spec-doc"><p>Current state of a document.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Req_id"><a href="#module-Req_id" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Req_id/index.html">Req_id</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Request ID.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Make"><a href="#module-Make" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Make/index.html">Make</a></span><span> (<a href="Make/argument-1-IO/index.html">IO</a> : <span class="keyword">sig</span> ... <span class="keyword">end</span>) : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Server interface for some IO substrate.</p></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol (linol.Linol)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol</nav><header class="odoc-preamble"><h1>Module <code><span>Linol</span></code></h1><p>Linol.</p><p>Abstraction over The &quot;Lsp&quot; library, to make it easier to develop LSP servers in OCaml (but not necessarily <b>for</b> OCaml).</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-IO"><a href="#module-type-IO" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-IO/index.html">IO</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Jsonrpc2"><a href="#module-Jsonrpc2" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Jsonrpc2/index.html">Jsonrpc2</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Simple JSON-RPC2 implementation.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Server"><a href="#module-Server" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Server/index.html">Server</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Server interface</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Blocking_IO"><a href="#module-Blocking_IO" class="anchor"></a><code><span><span class="keyword">module</span> <a href="Blocking_IO/index.html">Blocking_IO</a></span><span> : <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Blocking IO with a new thread for each <code>spawn</code>.</p></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Log"><a href="#module-Log" class="anchor"></a><code><span><span class="keyword">module</span> Log</span><span> = <a href="Log/index.html">Log</a></span></code></div></div><div class="odoc-spec"><div class="spec module anchored" id="module-Make"><a href="#module-Make" class="anchor"></a><code><span><span class="keyword">module</span> Make</span><span> = <a href="Jsonrpc2/Make/index.html">Jsonrpc2.Make</a></span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-logs_src"><a href="#val-logs_src" class="anchor"></a><code><span><span class="keyword">val</span> logs_src : <a href="../../logs/Logs/index.html#type-src">Logs.src</a></span></code></div></div></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol__ (linol.Linol__)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol__</nav><header class="odoc-preamble"><h1>Module <code><span>Linol__</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol__Blocking_IO (linol.Linol__Blocking_IO)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol__Blocking_IO</nav><header class="odoc-preamble"><h1>Module <code><span>Linol__Blocking_IO</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol__Common_ (linol.Linol__Common_)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol__Common_</nav><header class="odoc-preamble"><h1>Module <code><span>Linol__Common_</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol__Jsonrpc2 (linol.Linol__Jsonrpc2)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol__Jsonrpc2</nav><header class="odoc-preamble"><h1>Module <code><span>Linol__Jsonrpc2</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol__Server (linol.Linol__Server)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol__Server</nav><header class="odoc-preamble"><h1>Module <code><span>Linol__Server</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Linol__Sigs (linol.Linol__Sigs)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">linol</a> &#x00BB; Linol__Sigs</nav><header class="odoc-preamble"><h1>Module <code><span>Linol__Sigs</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,15 +0,0 @@
# 0.5
- api break: put `spawn` in the server itself, not `IO`
- require OCaml 4.14
- migrate to lsp 1.17
- support inlay hints
- internal tracing with `trace`
- [#24] Expose get_uri for notify_back
- expose log source
- [#22] Threat shutdown and exit requests correctly
- [#20] Handle messages with null value for "params" field
- Handle server requests
- handle workDoneTokens

View file

@ -1,8 +0,0 @@
# Linol [![build](https://github.com/c-cube/linol/actions/workflows/main.yml/badge.svg)](https://github.com/c-cube/linol/actions/workflows/main.yml)
This is a wrapper around the `lsp` library, which provides base types for the protocol. Linol ("linol is not ocaml-lsp") provides an object abstraction so that users can override only the methods they provide, and a Lwt implementation of the jsonrpc wire protocol.
## License
MIT license.

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (linol.index)</title><meta charset="utf-8"/><link rel="stylesheet" href="../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> linol</nav><header class="odoc-preamble"><h1 id="package-linol"><a href="#package-linol" class="anchor"></a>Package linol <nav><a type="text/plain; charset=UTF-8" href="_doc-dir/CHANGES.md">changes</a> <a href="#package_info">more…</a></nav></h1><ul class="modules"><li><a href="Linol/index.html"><code>Linol</code></a> <span class="synopsis">Linol.</span></li></ul></header><nav class="odoc-toc"><ul><li><a href="#package_info">Package info</a></li></ul></nav><div class="odoc-content"><h2 id="package_info"><a href="#package_info" class="anchor"></a>Package info</h2><table class="package info"><tr id="info-changes-files"><td><a href="#info-changes-files" aria-hidden="true" class="anchor"></a>changes-files</td><td><ul><li><a type="text/plain; charset=UTF-8" href="_doc-dir/CHANGES.md">CHANGES.md</a></li></ul></td></tr><tr id="info-readme-files"><td><a href="#info-readme-files" aria-hidden="true" class="anchor"></a>readme-files</td><td><ul><li><a type="text/plain; charset=UTF-8" href="_doc-dir/README.md">README.md</a></li></ul></td></tr></table></div></body></html>

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Collector (trace.Trace_core.Collector)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../index.html">trace</a> &#x00BB; <a href="../index.html">Trace_core</a> &#x00BB; Collector</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core.Collector</span></code></h1><p>A global collector.</p><p>The collector, if present, is responsible for collecting messages and spans, and storing them, recording them, forward them, or offering them to other services and processes.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-dummy_span"><a href="#val-dummy_span" class="anchor"></a><code><span><span class="keyword">val</span> dummy_span : int64</span></code></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-dummy_explicit_span"><a href="#val-dummy_explicit_span" class="anchor"></a><code><span><span class="keyword">val</span> dummy_explicit_span : <span class="xref-unresolved">Trace_core__.Types.explicit_span</span></span></code></div></div><div class="odoc-spec"><div class="spec module-type anchored" id="module-type-S"><a href="#module-type-S" class="anchor"></a><code><span><span class="keyword">module</span> <span class="keyword">type</span> <a href="module-type-S/index.html">S</a></span><span> = <span class="keyword">sig</span> ... <span class="keyword">end</span></span></code></div><div class="spec-doc"><p>Signature for a collector.</p></div></div></div></body></html>

View file

@ -1,95 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>S (trace.Trace_core.Collector.S)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">trace</a> &#x00BB; <a href="../../index.html">Trace_core</a> &#x00BB; <a href="../index.html">Collector</a> &#x00BB; S</nav><header class="odoc-preamble"><h1>Module type <code><span>Collector.S</span></code></h1><p>Signature for a collector.</p><p>This is only relevant to implementors of tracing backends; to instrument your code you only need to look at the <a href="../../../Trace/index.html"><code>Trace</code></a> module.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec value anchored" id="val-with_span"><a href="#val-with_span" class="anchor"></a><code><span><span class="keyword">val</span> with_span :
<span><span class="label">__FUNCTION__</span>:<span>string option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__FILE__</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__LINE__</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">data</span>:
<span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span><span>(<span>int64 <span class="arrow">&#45;&gt;</span></span> <span class="type-var">'a</span>)</span> <span class="arrow">&#45;&gt;</span></span>
<span class="type-var">'a</span></span></code></div><div class="spec-doc"><p>Run the function in a new span.</p><p>This replaces the previous <code>enter_span</code> and <code>exit_span</code> which were too flexible to be efficient to implement in async contexts.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-enter_span"><a href="#val-enter_span" class="anchor"></a><code><span><span class="keyword">val</span> enter_span :
<span><span class="label">__FUNCTION__</span>:<span>string option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__FILE__</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__LINE__</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">data</span>:
<span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
int64</span></code></div><div class="spec-doc"><p>Enter a new implicit span. For many uses cases, <a href="#val-with_span"><code>with_span</code></a> will be easier to use.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exit_span"><a href="#val-exit_span" class="anchor"></a><code><span><span class="keyword">val</span> exit_span : <span>int64 <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Exit span. This should be called on the same thread as the corresponding <a href="#val-enter_span"><code>enter_span</code></a>, and nest properly with other calls to enter/exit_span and <a href="#val-with_span"><code>with_span</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> NEXT_RELEASE</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-enter_manual_span"><a href="#val-enter_manual_span" class="anchor"></a><code><span><span class="keyword">val</span> enter_manual_span :
<span><span class="label">parent</span>:<span><span class="xref-unresolved">Trace_core__.Types.explicit_span</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">flavor</span>:<span><span>[ `Sync <span>| `Async</span> ]</span> option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__FUNCTION__</span>:<span>string option</span> <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__FILE__</span>:string <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">__LINE__</span>:int <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">data</span>:
<span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span class="xref-unresolved">Trace_core__.Types.explicit_span</span></span></code></div><div class="spec-doc"><p>Enter an explicit span. Surrounding scope, if any, is provided by <code>parent</code>, and this function can store as much metadata as it wants in the hmap in the <a href="../../index.html#type-explicit_span"><code>explicit_span</code></a>'s <code>meta</code> field.</p><p>This means that the collector doesn't need to implement contextual storage mapping <a href="../../index.html#type-explicit_span.span"><code>span</code></a> to scopes, metadata, etc. on its side; everything can be transmitted in the <a href="../../index.html#type-explicit_span"><code>explicit_span</code></a>.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-exit_manual_span"><a href="#val-exit_manual_span" class="anchor"></a><code><span><span class="keyword">val</span> exit_manual_span : <span><span class="xref-unresolved">Trace_core__.Types.explicit_span</span> <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Exit an explicit span.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.3</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_data_to_span"><a href="#val-add_data_to_span" class="anchor"></a><code><span><span class="keyword">val</span> add_data_to_span :
<span>int64 <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><ul class="at-tags"><li class="since"><span class="at-tag">since</span> Adds data to the current span.</li></ul><p>0.4</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-add_data_to_manual_span"><a href="#val-add_data_to_manual_span" class="anchor"></a><code><span><span class="keyword">val</span> add_data_to_manual_span :
<span><span class="xref-unresolved">Trace_core__.Types.explicit_span</span> <span class="arrow">&#45;&gt;</span></span>
<span><span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Adds data to the given span.</p><ul class="at-tags"><li class="since"><span class="at-tag">since</span> 0.4</li></ul></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-message"><a href="#val-message" class="anchor"></a><code><span><span class="keyword">val</span> message :
<span><span class="optlabel">?span</span>:int64 <span class="arrow">&#45;&gt;</span></span>
<span><span class="label">data</span>:
<span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Emit a message with associated metadata.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-name_thread"><a href="#val-name_thread" class="anchor"></a><code><span><span class="keyword">val</span> name_thread : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current thread.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-name_process"><a href="#val-name_process" class="anchor"></a><code><span><span class="keyword">val</span> name_process : <span>string <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Give a name to the current process.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_int"><a href="#val-counter_int" class="anchor"></a><code><span><span class="keyword">val</span> counter_int :
<span><span class="label">data</span>:
<span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span>int <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Integer counter.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-counter_float"><a href="#val-counter_float" class="anchor"></a><code><span><span class="keyword">val</span> counter_float :
<span><span class="label">data</span>:
<span><span>(string
* <span>[ <span>`Int of int</span>
<span><span>| `String</span> of string</span>
<span><span>| `Bool</span> of bool</span>
<span><span>| `Float</span> of float</span>
<span>| `None</span> ]</span>)</span>
list</span> <span class="arrow">&#45;&gt;</span></span>
<span>string <span class="arrow">&#45;&gt;</span></span>
<span>float <span class="arrow">&#45;&gt;</span></span>
unit</span></code></div><div class="spec-doc"><p>Float counter.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-shutdown"><a href="#val-shutdown" class="anchor"></a><code><span><span class="keyword">val</span> shutdown : <span>unit <span class="arrow">&#45;&gt;</span></span> unit</span></code></div><div class="spec-doc"><p>Shutdown collector, possibly waiting for it to finish sending data.</p></div></div></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Key (trace.Trace_core.Meta_map.Key)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../../../index.html">trace</a> &#x00BB; <a href="../../index.html">Trace_core</a> &#x00BB; <a href="../index.html">Meta_map</a> &#x00BB; Key</nav><header class="odoc-preamble"><h1>Module <code><span>Meta_map.Key</span></code></h1><p>Keys with a type witness.</p></header><div class="odoc-content"><div class="odoc-spec"><div class="spec type anchored" id="type-t"><a href="#type-t" class="anchor"></a><code><span><span class="keyword">type</span> <span>'a t</span></span></code></div><div class="spec-doc"><p>A key of type <code>'a t</code> is used to access the portion of the map or table that associates keys of type <code>'a</code> to values.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-create"><a href="#val-create" class="anchor"></a><code><span><span class="keyword">val</span> create : <span>unit <span class="arrow">&#45;&gt;</span></span> <span><span class="type-var">'a</span> <a href="#type-t">t</a></span></span></code></div><div class="spec-doc"><p>Make a new key. This is generative, so calling <code>create ()</code> twice with the same return type will produce incompatible keys that cannot see each other's bindings.</p></div></div><div class="odoc-spec"><div class="spec value anchored" id="val-equal"><a href="#val-equal" class="anchor"></a><code><span><span class="keyword">val</span> equal : <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> <span><span><span class="type-var">'a</span> <a href="#type-t">t</a></span> <span class="arrow">&#45;&gt;</span></span> bool</span></code></div><div class="spec-doc"><p>Compare two keys that have compatible types.</p></div></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_core__ (trace.Trace_core__)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">trace</a> &#x00BB; Trace_core__</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core__</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_core__Atomic_ (trace.Trace_core__Atomic_)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">trace</a> &#x00BB; Trace_core__Atomic_</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core__Atomic_</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_core__Collector (trace.Trace_core__Collector)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">trace</a> &#x00BB; Trace_core__Collector</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core__Collector</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_core__Meta_map (trace.Trace_core__Meta_map)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">trace</a> &#x00BB; Trace_core__Meta_map</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core__Meta_map</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>Trace_core__Types (trace.Trace_core__Types)</title><meta charset="utf-8"/><link rel="stylesheet" href="../../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> <a href="../index.html">trace</a> &#x00BB; Trace_core__Types</nav><header class="odoc-preamble"><h1>Module <code><span>Trace_core__Types</span></code></h1></header><div class="odoc-content"><p>This module is hidden.</p></div></body></html>

View file

@ -1,46 +0,0 @@
# 0.6
- add `ppx_trace` for easier instrumentation.
* `let%trace span = "foo" in …` will enter a scope `span` named "foo"
* `let%trace () = "foo" in …` will enter a scope named "foo" with a hidden name
- add `trace-fuchsia` backend, which produces traces in the binary format
of [fuchsia](https://fuchsia.dev/fuchsia-src/reference/tracing/trace-format).
These traces are reasonably efficient to produce (~60ns per span on my machines)
and reasonably compact on disk, at least compared to the TEF backend.
# 0.5
- perf: reduce overhead in trace-tef
- perf: add Mpsc_queue, adapted from picos, to trace-tef
# 0.4
- add `?data` to `counter_int` and `counter_float`
- add `float` to user data
- add `add_data_to_current_span` and `add_data_to_manual_span`
- make `explicit_span.meta` mutable
- trace-tef: write to `trace.json` if env variable `TRACE` is either 1 or true
- trace-tef: emit function name, if provided, as a metadata key/value pair
- re-export trace.core in trace
- perf: in trace-tef, use broadcast instead of signal in the job queue
# 0.3
- add explicit spans, for more precise tracing
- rename repo to ocaml-trace
- trace-tef: add a ticker thread to ensure we flush the file regularly
# 0.2
- trace-tef: additional argument to `with_setup`; env for "stdout"/"stderr"
- refactor: avoid conflicting with stdlib `Trace` module by adding sublibrary `trace.core`.
Programs that use `compiler-libs.toplevel` should use `trace.core`
directly, because using `trace` will cause linking errors.
- perf(trace-tef): improve behavior of collector under contention by
pulling all events at once in the worker
# 0.1
initial release

View file

@ -1,155 +0,0 @@
# Trace
[![Build and Test](https://github.com/c-cube/ocaml-trace/actions/workflows/main.yml/badge.svg)](https://github.com/c-cube/ocaml-trace/actions/workflows/main.yml)
This small library provides basic types that can be used to instrument
a library or application, either by hand or via a ppx.
## Features
- [x] spans
- [x] messages
- [x] counters
- [ ] other metrics?
- [x] ppx to help instrumentation
## Usage
To instrument your code, you can simply add `trace` to your dune/opam files, and then
write code like such:
```ocaml
let f x =
Trace.with_span ~__FILE__ ~__LINE__ "inside-f" @@ fun _sp ->
(* … code for f *)
let g x =
Trace.with_span ~__FILE__ ~__LINE__ "inside-g" @@ fun _sp ->
let y = f x in
(* … code for f *)
let () =
Some_trace_backend.setup () @@ fun () ->
let result = g 42 in
print_result result
```
The file `test/t1.ml` follows this pattern, using `trace-tef` as a simple backend
that emits one JSON object per span/message:
```ocaml
let run () =
Trace.set_process_name "main";
Trace.set_thread_name "t1";
let n = ref 0 in
for _i = 1 to 50 do
Trace.with_span ~__FILE__ ~__LINE__ "outer.loop" @@ fun _sp ->
for _j = 2 to 5 do
incr n;
Trace.with_span ~__FILE__ ~__LINE__ "inner.loop" @@ fun _sp ->
Trace.messagef (fun k -> k "hello %d %d" _i _j);
Trace.message "world";
Trace.counter_int "n" !n
done
done
let () =
Trace_tef.with_setup ~out:(`File "trace.json") () @@ fun () ->
run ()
```
After running this, the file "trace.json" will contain something like:
```json
[{"pid":2,"name":"process_name","ph":"M","args": {"name":"main"}},
{"pid":2,"tid": 3,"name":"thread_name","ph":"M","args": {"name":"t1"}},
{"pid":2,"cat":"","tid": 3,"ts": 2.00,"name":"hello 1 2","ph":"I"},
{"pid":2,"cat":"","tid": 3,"ts": 3.00,"name":"world","ph":"I"},
{"pid":2,"tid":3,"ts":4.00,"name":"c","ph":"C","args": {"n":1}},
```
Opening it in https://ui.perfetto.dev we get something like this:
![screenshot of perfetto UI](media/ui.png)
## ppx_trace
On OCaml >= 4.12, and with `ppxlib` installed, you can install `ppx_trace`.
This is a preprocessor that will rewrite like so:
```ocaml
let%trace f x y z =
do_sth x;
do_sth y;
begin
let%trace () = "sub-span" in
do_sth z
end
```
This more or less corresponds to:
```ocaml
let f x y z =
let _trace_span = Trace_core.enter_span ~__FILE__ ~__LINE__ "Foo.f" in
match
do_sth x;
do_sth y;
begin
let _trace_span = Trace_core.enter_span ~__FILE__ ~__LINE__ "sub-span" in
match do_sth z with
| res ->
Trace_core.exit_span _trace_span;
res
| exception e ->
Trace_core.exit_span _trace_span
raise e
end;
with
| res ->
Trace_core.exit_span _trace_span
res
| exception e ->
Trace_core.exit_span _trace_span
raise e
```
Alternatively, a name can be provided for the span, which is useful if you want
to access it and use functions like `Trace.add_data_to_span`:
```ocaml
let%trace f x y z =
do_sth x;
do_sth y;
begin
let%trace _sp = "sub-span" in
do_sth z;
Trace.add_data_to_span _sp ["x", `Int 42]
end
```
### Dune configuration
In your `library` or `executable` stanza, add: `(preprocess (pps ppx_trace))`.
The dependency on `trace.core` is automatically added. You still need to
configure a backend to actually do collection.
## Backends
Concrete tracing or observability formats such as:
- [x] Fuchsia (see [the spec](https://fuchsia.dev/fuchsia-src/reference/tracing/trace-format) and [tracing](https://github.com/janestreet/tracing).
Can be opened in https://ui.perfetto.dev)
- Catapult
* [x] light bindings here with `trace-tef`.
(Can be opened in https://ui.perfetto.dev)
* [ ] richer bindings with [ocaml-catapult](https://github.com/imandra-ai/catapult),
with multi-process backends, etc.
- [x] Tracy (see [ocaml-tracy](https://github.com/imandra-ai/ocaml-tracy), more specifically `tracy-client.trace`)
- [x] Opentelemetry (see [ocaml-opentelemetry](https://github.com/imandra-ai/ocaml-opentelemetry/), in `opentelemetry.trace`)
- [ ] landmarks?
- [ ] Logs (only for messages, obviously)

View file

@ -1,2 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>index (trace.index)</title><meta charset="utf-8"/><link rel="stylesheet" href="../_odoc-theme/odoc.css"/><meta name="generator" content="odoc 2.4.1"/><meta name="viewport" content="width=device-width,initial-scale=1.0"/><script src="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body class="odoc"><nav class="odoc-nav"><a href="../index.html">Up</a> trace</nav><header class="odoc-preamble"><h1 id="package-trace"><a href="#package-trace" class="anchor"></a>Package trace <nav><a type="text/plain; charset=UTF-8" href="_doc-dir/CHANGES.md">changes</a> <a href="#package_info">more…</a></nav></h1><ul class="modules"><li><a href="Trace/index.html"><code>Trace</code></a> </li><li><a href="Trace_core/index.html"><code>Trace_core</code></a> <span class="synopsis">Trace.</span></li></ul></header><nav class="odoc-toc"><ul><li><a href="#package_info">Package info</a></li></ul></nav><div class="odoc-content"><h2 id="package_info"><a href="#package_info" class="anchor"></a>Package info</h2><table class="package info"><tr id="info-changes-files"><td><a href="#info-changes-files" aria-hidden="true" class="anchor"></a>changes-files</td><td><ul><li><a type="text/plain; charset=UTF-8" href="_doc-dir/CHANGES.md">CHANGES.md</a></li></ul></td></tr><tr id="info-readme-files"><td><a href="#info-readme-files" aria-hidden="true" class="anchor"></a>readme-files</td><td><ul><li><a type="text/plain; charset=UTF-8" href="_doc-dir/README.md">README.md</a></li></ul></td></tr></table></div></body></html>