123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154(************************************************************************)(* Copyright 2019 MINES ParisTech -- Dual License LGPL 2.1+ / GPL3+ *)(* Copyright 2019-2024 Inria -- Dual License LGPL 2.1+ / GPL3+ *)(* Copyright 2024-2025 Emilio J. Gallego Arias -- LGPL 2.1+ / GPL3+ *)(* Copyright 2025 CNRS -- LGPL 2.1+ / GPL3+ *)(* Written by: Emilio J. Gallego Arias & coq-lsp contributors *)(************************************************************************)moduleCompletion=struct(** Module that enables LaTeX-like completion for unicode symbols *)moduleUnicode=structmoduleMode=structtypet=|Off|Internal_small|Normal|Extendedendletdefault_commit_chars=[" ";"(";")";",";".";"-";"'";"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"]typet={enabled:Mode.t;commit_chars:stringlist[@defaultdefault_commit_chars](** Characters to use for accepting/commiting a completion during
unicode completion *)}letdefault=letenabled=Mode.Normalinletcommit_chars=default_commit_charsin{enabled;commit_chars}endtypet={unicode:Unicode.t}letdefault=letunicode=Unicode.defaultin{unicode}endtypet={mem_stats:bool[@defaultfalse](** [mem_stats] Call [Obj.reachable_words] for every sentence. This is
very slow and not very useful, so disabled by default *);gc_quick_stats:bool[@defaulttrue](** [gc_quick_stats] Show the diff of [Gc.quick_stats] data for each
sentence *);client_version:string[@default"any"];eager_diagnostics:bool[@defaulttrue](** [eager_diagnostics] Send (full) diagnostics after processing each *);goal_after_tactic:bool[@defaulttrue](** [proof/goals] setting: if [false], show goals before executing the
tactic, if [true], show goals after. If there is no sentence at
[position], show the goals of the closest sentence in the document
backwards. *);messages_follow_goal:bool[@defaultfalse](** [proof/goals] setting: if [true], messages and errors will be
displayed following the [goal_after_tactic] setting. When [false],
the default, we will always shows messages and errors corresponding
to the sentence at [position]. If there is no sentence at
[position], we show nothing. *);show_coq_info_messages:bool[@defaultfalse](** Show `msg_info` messages in diagnostics *);show_notices_as_diagnostics:bool[@defaultfalse](** Show `msg_notice` messages in diagnostics *);admit_on_bad_qed:bool[@defaulttrue](** [admit_on_bad_qed] There are two possible error recovery strategies
when a [Qed] fails: one is not to add the constant to the state, the
other one is admit it. We find the second behavior more useful, but
YMMV. *);debug:bool[@defaultfalse](** Enable debug on Coq side, including backtraces *);unicode_completion:Completion.Unicode.Mode.toption[@defaultNone](** deprecated, use [completion.unicode.enabled] *);max_errors:int[@default150];pp_type:int[@default0](** Pretty-printing type in Info Panel Request, 0 = string; 1 = Pp.t; 2
= Coq Layout Engine *);show_stats_on_hover:bool[@defaultfalse](** Show stats on hover *);show_loc_info_on_hover:bool[@defaultfalse](** Show loc info on hover *);show_universes_on_hover:bool[@defaultfalse](** Show universe data on hover *);show_state_hash_on_hover:bool[@defaultfalse](** Show state hash on hover, useful for debugging *);pp_json:bool[@defaultfalse](** Whether to pretty print the protocol JSON on the wire *);send_perf_data:bool[@defaulttrue](** Whether to send the perf data notification *);send_diags:bool[@defaulttrue](** Whether to send the diagnostics notification *);verbosity:int[@default2](** Verbosity, 1 = reduced, 2 = default. As of today reduced will
disable all logging, and the diagnostics and perf_data notification *);check_only_on_request:bool[@defaultfalse](** Experimental setting to check document lazily *);send_diags_extra_data:bool[@defaultfalse](** Send extra diagnostic data on the `data` diagnostic field. *);send_serverStatus:bool[@defaulttrue](** Send server status client notification to the client *);send_execinfo:bool[@defaultfalse](** Send execution information to client *);completion:Completion.t[@defaultCompletion.default]}letdefault={mem_stats=false;gc_quick_stats=true;client_version="any";eager_diagnostics=true;goal_after_tactic=true;messages_follow_goal=false;show_coq_info_messages=false;show_notices_as_diagnostics=false;admit_on_bad_qed=true;debug=false;unicode_completion=None;max_errors=150;pp_type=0;show_stats_on_hover=false;show_loc_info_on_hover=false;show_universes_on_hover=false;show_state_hash_on_hover=false;verbosity=2;pp_json=false;send_perf_data=true;send_diags=true;check_only_on_request=false;send_diags_extra_data=false;send_serverStatus=true;send_execinfo=false;completion=Completion.default}letv=refdefault