Dear all,
We’re happy to announce the 0.2.4 release of coq-lsp
.
This release contains some bug fixes and refinements, and a few
important new features:
-
the extension includes a Rocq 9.1 WebAssembly version that can be
used directly without installation, using Shachar Itzhaky’s
excellentocaml-wasm
jsCoq port.To use Rocq online, go to
vscode.dev
orgithub.dev
and install
thecoq-lsp
VSCode extension. That should be it!As of now, only Rocq’s
Stdlib
is available. See thecoq-lsp
FAQ
for more information. -
Official Alectryon support.
-
Support for Rocq 9.1,
_RocqProject
,rocq
markdown and LaTeX
codeblocks. -
Support for
Notation
,Ltac
, andLtac Notation
in document
outlines. -
A new visual feedback mode that will highlight Rocq sentences that
take a long time to process by making them glow in VSCode. -
The experimental “layout printer” has been merged.
-
Better configuration for completion.
We’d like to thank all the contributors, testers, and bug reporters
for their work on the 0.2.4 release.
Detailed changelog:
coq-lsp 0.2.4: (W)Activation
- [js] [deps] Bump to findlib 1.9.8, use vanilla API for loading and
remove our own local wrapper (@ejgallego, #975). - [petanque] New
petanque/ast
andpetanque/ast_at_pos
(@ejgallego@JulesViennotFranca, #980) - [serlib] Support for generic Ast analyzers. This opens the door to
many feature requests such as syntax coloring, dependency
extraction, etc… (@ejgallego, @JulesViennotFranca, #981) - [fleche] Support “rocq” markdown delimiters in .mv files
(@ejgallego, #987) - [workspace] Support _RocqProject (@ejgallego, #988, fixes #934)
- [lsp] [getDocument] Allow to get goals in one shot. We also
refactor the response type to accommodate different
meta-data. Note: (!) breaking change. (@ejgallego, #985, fixes
#862, thanks to the Alectryon team) - [lsp] Better error handling in URI parsing (@ejgallego, #994, thanks to
Adrien from Zulip) - [lsp] Better protocol-level handling for our non-standard
Lang.Point
andLang.Diagnostic
types, via global flags that allow us to
choose the input/output representation for non-standard field such
as [Point.offset]. This ensures that leaks of these non-standard
fields are rarer. (@ejgallego, #995, cc #279, cc #2, thanks to
Adrien from Zulip) - [lsp] [completion] Rework completion configuration into a
coq-lsp.completion
json object. Theunicode_completion
setting
is now deprecated, and has been replaced by
completion.unicode.enable
(@ejgallego, #993) - [lsp] [completion] [vscode] Unicode completion commit characters
are now configurable via the server setting variable
completion.unicode.commit_chars
. (@Durbatuluk1701, #993) - [goals] [config] New (global) option for goal display method
proof/goals
:messages_follow_goal
. Iftrue
,proof/goals
will show errors and messages for the same sentence goals are
shown; iffalse
, it will always show errors and messages for the
specifiedposition
, if there is a Rocq sentence at hand
(@jpoiret, @ejgallego, #999, fixes: #941) - [coq] Install full state before parsing. Before we did only
Pcoq.unfreeze
but that is not enough, in particular the call to
get_default_proof_mode
will not be correct (@ejgallego, @pimotte,
#1011, fixes #656) - [misc] Don’t depend on Jane Street’s base (@patrick-nicodemus
@ejgallego, #1004) - [wasm worker] Add WebAssembly based worker based on waCoq. This is
now the default for the .vsix binary build. For now, we include
Rocq’s Stdlib and Waterproof (@corwin-of-amber, @ejgallego,
@pimotte, #1008, cc #833, fixes #907, fixes #908, fixes #913) - [opam] Added
x-maintenance-intent
intent field. (@ejgallego,
#1020) - [lsp] [didOpen]
languageId
now takes priority over uri extension
in LSPdidOpen
. (@ejgallego, #1021, fixes #1005) - [coq] incorporate experimental
coq-layout-engine
printer, both in
client and server parts (@ejgallego, #668, see also #72 and
[draft] New printer prototype by ejgallego · Pull Request #282 · jscoq/jscoq · GitHub ) - [lsp] [code] New notification
$/coq/executionInformation
which will signal clients when rocq-lsp does intent to start to execute a sentence. Experimentally, this is used to provide a red glow on long-running commands in coq-lsp/VSCode, to provide better user
feedback (@ejgallego, suggested by @jpoiret, #1002)