-
Notifications
You must be signed in to change notification settings - Fork 100
feat(coq): insert named goal selectors #856
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(coq): insert named goal selectors #856
Conversation
rswarbrick
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi there! I was feeling enthusiastic about reading some elisp again, so I thought I'd go through and leave a review. I hope it's useful!
Hey @rswarbrick, thanks for the review! Agreeing with all of your comments, I'll make the appropriate changes promptly. By the way, |
978141b to
a74e5dc
Compare
|
This looks good to me. I did a re-review and realised that all the stuff that had made me raise my eyebrows is now deleted! :-D |
|
Hi! Very nice idea! I want to merge but I have one question first. I see that you sneaked into holes.el (which I thought nobody cared about). But I am planning to remove holes.el in a short future and rely on yasnippet instead (opt in). What do you think of that? I will adapt your code when this happens of course. |
I used holes.el since that was the solution used in |
|
Thanks @dhalilov and @rswarbrick ! |
This PR implements the
coq-insert-named-goal-selectorsfunction that automatically generates named goal selectors (of the form[name]: tac.) for each open named goal. I bound it toC-c C-a C-gby default.The implementation is based on the output of
Show Existentials, and notably checks for the absence of(only printing)in the output to distinguish focusable goal names from unfocusable goals (see rocq-prover/rocq#20809).This feature is mainly intended to be used in conjunction with automatically named goals in Rocq 9.2.
Here's a demo:
