- Mailling list -CoqHelp wanted
描述
An official Coq layer was recently added to develop in pull #6911 - thanks to all who made that possible, especially @bixuanzju!
I'm the author of https://github.com/tchajed/spacemacs-coq and use it on a regular basis, and I saw a few changes to the configuration and keybindings in the official layer that I was surprised by. I didn't see any discussion about the customizations in the pull request.
I'd like to have those who use Coq with Spacemacs discuss these changes so we're all happy using the official layer. This is a long list - please feel free to comment on individual points.
- `company-coq-disabled-features '(hello'): this turns off the company-coq tutorial message; for new users, this should be enabled by default with a prominent note on in the layer README pointing out the tutorial and how to disable the message.
- In line with other layer READMEs, the layer should point out that it combines proof-general and company-coq.
- If the settings
proof-three-window-mode-policy 'hybridandproof-script-fly-past-comments tare widely desired, they should be proposed as changes to the proof-general defaults. These options and how to configure them should also be documented in the layer, if people disagree on the right settings. proof-splash-screen tI agree with @cpitclaudel's comment in pull #6911 that this should be enabled, and again the layer can document how to disable it.- I personally really like having F2 F3 F4 to navigate proofs, especially because they work equally well as insert mode bindings. The current layer only retains
SPC m [,SPC m ]andSPC m .. I'd like to see F2/F3/F4 provided as well (the way my version does), or at least a single layer configuration to enable all of them correctly. - It looks like @syl20bnr changed
,pcto,pifor interrupt and,pxto,pqfor exit. I don't mind the interrupt binding, but I was actually matching the proof-general bindings. I prefer,pkas a mnemonic for "kill", though. - I don't like
,aA/,aB/,aCfor querying at all. I've used my keybindings for some time and they were carefully chosen, but I'd appreciate opinions from others who use Coq significantly if they're experience differs from mine. First, I usednas a mnemonic for "notations", which is really why you would want to show "all". Second, I rarely need to check with implicits or notations, so having memorable shortcuts (like prefixing with "n") works out better for me. I don't mind switching,apto,aamake it faster, though I'm not sure if I print more often then the other queries. It might be worth having a "check if this is a theorem, otherwise print" command from proof-general, which would be a good binding for,aa. SPC m g lforproof-goto-end-of-lockedis a misguided mnemonic; nobody thinks of the currently processed region as "locked", whereasg .to me means "go to the last (processed) period". This is also a case where I mimicked the proof-general keybinding.- There's a bug with window-purposes that causes proof-general to kill the current frame when starting the proof process. @aroig provided a fix in #6911 that should be applied. I don't think requiring
window-purposeis necessary to give it apost-init, though. smartparensandvi-tilde-fringeare not dependencies ofcoq; my understanding (based on this description of configuring auto-complete) is that thepost-init-functions should not require the layers they configure, and they just won't be called if those packages aren't installed.