diff options
author | 2002-07-01 00:25:58 +0000 | |
---|---|---|
committer | 2002-07-01 00:25:58 +0000 | |
commit | 0784610ca6e3f5d985c7797277bf9e23e951021e (patch) | |
tree | afbe54c34278c1aca1f637319098fbdd71adbebb | |
parent | 502ad99fd1c6a04630ffe182253333fb8e51ff0b (diff) |
Added isabelle-load-isar-keywords mimic of script startup.
-rw-r--r-- | isa/isabelle-system.el | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/isa/isabelle-system.el b/isa/isabelle-system.el index d48de66e..6ca185c7 100644 --- a/isa/isabelle-system.el +++ b/isa/isabelle-system.el @@ -11,9 +11,11 @@ ;; -------------------------------------------------------------- ;; -(require 'proof) +(require 'proof) ; for proof-assistant-symbol, etc. +(require 'proof-syntax) ; for proof-string-match -(defconst isa-running-isar (eq proof-assistant-symbol 'isar)) +(defconst isa-running-isar + (eq proof-assistant-symbol 'isar)) ;; If we're using Isabelle/Isar then the isabelle custom ;; group won't have been defined yet. @@ -265,6 +267,27 @@ until Proof General is restarted." "Isabelle logics menu. Constructed when PG is loaded.") +;; Added in PG 3.4: load isar-keywords file. +;; This roughly follows the method given in the interface script. +;; It could be used to add an elisp command at the bottom of +;; a theory file, if we sorted out the load order a bit, or +;; added a facility to reconfigure. +;; TODO: also add something to spill out a keywords file? +(defun isabelle-load-isar-keywords (&optional kw) + (interactive "Load isar keywords: %s") + (let ((userhome (isa-getenv "ISABELLE_HOME_USER")) + (isahome (isa-getenv "ISABELLE_HOME")) + (isarkwel "%s/etc/isar-keywords-%s.el") + (isarel "%s/etc/isar-keywords.el") + (ifrdble (lambda (f) (if (file-readable-p f) f)))) + (load-file + (or + (and kw (funcall ifrdble (format isarkwel userhome kw))) + (and kw (funcall ifrdble (format isarkwel isahome kw))) + (funcall ifrdble (format isarel userhome)) + (funcall ifrdble (format isarel isahome)) + (locate-library "isar-keywords"))))) + ;;; ========== Mirroring Proof General options in Isabelle process ======== |