From a921439a4eb5b0d96182748e779c78e2f6a41a5f Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Tue, 11 Dec 2018 18:48:51 -0500 Subject: Cleanup patch; Moving defvar to toplevel Move `defvar`s used to silence warnings outside of eval-when-compile. Make sure they don't actually give a value to the var. * pg-init.el: Simplify. Use (if t ...) to avoid running `require` at compile-time. Don't add subdirs to load-path here since this code is never used. (pg-init--script-full-path, pg-init--pg-root): Inline their definition into their sole user. * generic/proof-utils.el (proof-resize-window-tofit): Inline definitions of window-leftmost-p and window-rightmost-p previously in proof-compat.el. * lib/proof-compat.el (proof-running-on-win32): Remove, not used. (mac-key-mode): Remove, there's no carbon-emacs-package-version in Emacs≥24.3. (pg-custom-undeclare-variable): Use dolist. (save-selected-frame): Remove, save-selected-window also saves&restores the selected frame at the same time. Update all users (which already used save-selected-window around it). (window-leftmost-p, window-rightmost-p, window-bottom-p) (find-coding-system): Remove, unused. * hol-light/hol-light.el (caml-font-lock-keywords): Don't try to defvar it to a dummy value and... (hol-light): ...check its existence before using it instead. * coq/coq.el (coq-may-use-prettify): Simplify initialization. --- generic/pg-user.el | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'generic/pg-user.el') diff --git a/generic/pg-user.el b/generic/pg-user.el index 126901cb..5a5d6d13 100644 --- a/generic/pg-user.el +++ b/generic/pg-user.el @@ -3,7 +3,7 @@ ;; This file is part of Proof General. ;; Portions © Copyright 1994-2012 David Aspinall and University of Edinburgh -;; Portions © Copyright 2003, 2012, 2014 Free Software Foundation, Inc. +;; Portions © Copyright 2003-2018 Free Software Foundation, Inc. ;; Portions © Copyright 2001-2017 Pierre Courtieu ;; Portions © Copyright 2010, 2016 Erik Martin-Dorel ;; Portions © Copyright 2011-2013, 2016-2017 Hendrik Tews @@ -863,10 +863,9 @@ The function `substitute-command-keys' is called on the argument." (interactive "e") (if proof-query-identifier-command (save-selected-window - (save-selected-frame - (save-excursion - (mouse-set-point event) - (pg-identifier-near-point-query)))))) + (save-excursion + (mouse-set-point event) + (pg-identifier-near-point-query))))) ;;;###autoload (defun pg-identifier-near-point-query () -- cgit v1.2.3 From 632a3d7f9ded16faaf58e1c0769bcd4f7c8193e3 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Wed, 12 Dec 2018 15:20:08 -0500 Subject: Use `cl-lib` instead of `cl` everywhere Use lexical-binding in a few files where it was easy. Don't require `proof-compat` when it's not used. * coq/coq-db.el: Use lexical-binding. * coq/coq-system.el: Use lexical-binding. (coq--extract-prog-args): Use concatenated-args rather than recomputing it. * coq/coq.el: Require `span` to silence some warnings. * generic/pg-user.el: Use lexical-binding. (complete, add-completion, completion-min-length): Silence warnings. * generic/pg-xml.el: Use lexical-binding. (pg-xml-string-of): Prefer mapconcat to reduce+concat. * generic/proof-depends.el: Use lexical-binding. (proof-dep-split-deps): Use `push`. * generic/proof-shell.el: Require `span` to silence some warnings. (proof-shell-invisible-command): Don't use lexical-let just to build a wasteful η-redex! * lib/holes.el: Use lexical-binding. Remove redundant :group args. * lib/span.el: Use lexical-binding. (span-read-only-hook): Use user-error. (span-raise): Remove, unused. --- generic/pg-user.el | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'generic/pg-user.el') diff --git a/generic/pg-user.el b/generic/pg-user.el index 5a5d6d13..a5ed27a9 100644 --- a/generic/pg-user.el +++ b/generic/pg-user.el @@ -1,4 +1,4 @@ -;;; pg-user.el --- User level commands for Proof General +;;; pg-user.el --- User level commands for Proof General -*- lexical-binding:t -*- ;; This file is part of Proof General. @@ -26,9 +26,7 @@ (require 'proof-script) ; we build on proof-script -(require 'cl) -(eval-when-compile - (require 'completion)) ; Loaded dynamically at runtime. +(eval-when-compile (require 'cl-lib)) ;cl-decf (defvar which-func-modes) ; Defined by which-func. (declare-function proof-segment-up-to "proof-script") @@ -557,26 +555,29 @@ Uses `add-completion' with a negative number of uses and ancient last use time, to discourage saving these into the users database." (interactive) (require 'completion) + (defvar completion-min-length) + (declare-function add-completion "completion" + (string &optional num-uses last-use-time)) (mapcar (lambda (cmpl) ;; completion gives error; trapping is tricky so test again (if (>= (length cmpl) completion-min-length) (add-completion cmpl -1000 0))) (proof-ass completion-table))) -;; completion not autoloaded in GNU Emacs -(or (fboundp 'complete) - (autoload 'complete "completion")) - ;; NB: completion table is expected to be set when proof-script ;; is loaded! Call `proof-script-add-completions' to update. -(unless (bound-and-true-p byte-compile-current-file) +(unless (bound-and-true-p byte-compile-current-file) ;FIXME: Yuck! (eval-after-load "completion" '(proof-add-completions))) (defun proof-script-complete (&optional arg) - "Like `complete' but case-fold-search set to proof-case-fold-search." + "Like `complete' but case-fold-search set to `proof-case-fold-search'." (interactive "*p") + ;; completion not autoloaded in GNU Emacs + ;; FIXME: It's probably because we shouldn't use it ;-) + (require 'completion) + (declare-function complete "completion" (&optional arg)) (let ((case-fold-search proof-case-fold-search)) (complete arg))) @@ -889,13 +890,12 @@ a popup with the information in it." (pg-identifier-query identifier ctxt ;; the callback - (lexical-let ((s start) (e end)) - (lambda (x) - (save-excursion - (let ((idspan (span-make s e))) - ;; (span-set-property idspan 'priority 90) ; highest - (span-set-property idspan 'help-echo - (pg-last-output-displayform)))))))))) + (lambda (_) + (save-excursion + (let ((idspan (span-make start end))) + ;; (span-set-property idspan 'priority 90) ; highest + (span-set-property idspan 'help-echo + (pg-last-output-displayform))))))))) (defvar proof-query-identifier-history nil "History for `proof-query-identifier'.") @@ -1253,7 +1253,7 @@ the locked region." (while (> repeat 0) (pg-protected-undo-1 newarg) ; do some safe undos step by step (setq last-command 'undo) ; need for this assignment meanwhile - (decf repeat))))) + (cl-decf repeat))))) (defun pg-protected-undo-1 (arg) "This function is intended to be called by `pg-protected-undo'. -- cgit v1.2.3