Hi folks,
it’s been a while, but we are happy to announce a new release of coq-lsp
.
Install for Coq 8.17 and Visual Studio Code is as easy as:
$ opam install coq-lsp && code --install-extension ejgallego.coq-lsp
The 0.1.7 release has been focused on refinement and bugfixes; we’d like to thank all the users and contributors for their feedback and work, and in particular Alex Sanchez-Stern who did a large amount of beta testing and tweaks.
Following a suggestion by Hugo Herbelin, we now follow a naming scheme reminiscent of Isabelle’s:
coq-lsp
refers to the Coq LSP servercoq-lsp/Editor
refers to a particular client forEditor
, such as
coq-lsp/Emacs
,coq-lsp/VSCode
, orcoq-lsp/NeoVIM
.
This release also ships with some new features:
-
fcc
, the “Flèche Coq Compiler”, an extensible, machine-friendly command line compiler that provides direct access tocoq-lsp
internal checking engine (Flèche). A very preliminary plugin API for Flèche is also available.fcc
does understand Coq markdown files (.mv
), and can use the programmable error recovery mode from Flèche, etc… -
Coq Markdown files (
.mv
) are now regular Markdown files incoq-lsp/VSCode
, thus one can do live proofs and use standard Markdown mode commands like preview at the same time (contributed by @4ever2) -
The UI for error display was improved by Tomás Díaz.
-
The goal panel now display information about open and solved obligations.
-
coq-lsp/VSCode
is now a web extension, and thus it will activate ongithub.dev
andvscode.dev
. The server has been refactored so it can run on the Browser context, full support is expected in the next release. -
A new notification for performance data has been added to server, and a prototype panel displaying this data is now available for
coq-lsp/VSCode
.
coq-lsp
release notes are archived at https://github.com/ejgallego/coq-lsp/tree/main/etc/release_notes
We’d like to highlight some interesting third party contributions we are aware of, and that could be of your interest:
- Bhakti Shah contributed support for her ZX Calculus Visualizer
- Arthur Azevedo de Amorim started an Emacs client for coq-lsp
- Pedro Carrott and Nuno Saavedra are developing a Python
coq-lsp
client
Please find below the full list of changes:
coq-lsp 0.1.7: Just-in-time
- New command line compiler
fcc
.fcc
allows to access most
features ofcoq-lsp
without the need for a command line client,
and it has been designed to be extensible and machine-friendly
(@ejgallego, #507, fixes #472) - Enable web extension support. For now this will not try to start
the coq-lsp worker as it is not yet built. (@ejgallego, #430, fixes
#234) - Improvements and clenaups on hover display, in particular we don’t
print repeatedNotation
strings (@ejgallego, #422) - Don’t fail on missing serlib plugins, they are indeed an
optimization; this mostly impacts 8.16 by lowering the SerAPI
requirements (@ejgallego, #421) - Fix bug that prevented “Goal after tactic” from working properly
(@ejgallego, #438, reported by David Ilcinkas) - Fix “Error message browser becomes non-visible when there are many
goals” by using a fixed-position separated error display (@TDiazT,
#445, fixes #441) - Message about workspace detection was printing the wrong file,
(@ejgallego, #444, reported by Alex Sanchez-Stern) - Display the list of pending obligations in info panel (@ejgallego,
#262) - Preliminary support to display document performance data in panel
(@ejgallego, #181) - Fix cases when workspace / root URIs are
null
, as per LSP spec,
(#453 , reported by orilahav, fixes #283) - Pass implicit argument information to hover printer (@ejgallego, #453,
fixes #448) - Fix keybinding for the “Show Goals at Point” command (@4ever2, #460)
- Alert when
rootPath
is relative (#465, @ejgallego, report by Alex
Sanchez-Stern) - Hook coq-lsp to ViZX extension (@bhaktishh, #469)
proof/goals
request now takes an optional formatting parameter
so clients can specify it per-request (@ejgallego, @bhaktishh, #470)- New command line argument
--idle-delay=$secs
that controls how
much an idle server will sleep before going back to request
processing. Default setting is0.1
, using more aggressive
settings like0.01
can decrease latency of requests by ~4x
(@ejgallego, @hazardouspeach, #467, #471) - Warnings from
_CoqProject
files are now applied (@ejgallego,
reported by @arthuraa, #500) - Be more resilient when serializing unknowns Asts (@ejgallego, #503,
reported by Gijs Pennings) - Coq’s STM is not linked anymore to
coq-lsp
(@ejgallego, #511) - More granular options
send_perf_data
send_diags
,verbosity
will set them now (@ejgallego, #517) - Preliminary plugin API for completion events (@ejgallego, #518,
fixes #506) - Limit the number of messages displayed in the goal window to 101,
as to workaround slow render of Coq’s pretty printing format. This
is an issue for example in Search where we can get thousand of
results. We also speed up the rendering a bit by not hashing twice,
and fix a parameter-passing bug. (@ejgallego, #523, reported by
Anton Podkopaev)
Kind regards,
The coq-lsp team