emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/eev 0d6ae77866: Added `ee-symbol-function'; added eev-l


From: ELPA Syncer
Subject: [elpa] externals/eev 0d6ae77866: Added `ee-symbol-function'; added eev-lean4.el.
Date: Wed, 24 Jul 2024 15:58:08 -0400 (EDT)

branch: externals/eev
commit 0d6ae77866450faf5e543d5b679d638347c88879
Author: Eduardo Ochs <eduardoochs@gmail.com>
Commit: Eduardo Ochs <eduardoochs@gmail.com>

    Added `ee-symbol-function'; added eev-lean4.el.
---
 ChangeLog     |   7 +
 VERSION       |   4 +-
 eev-blinks.el |  39 ++++-
 eev-intro.el  |  48 +++++-
 eev-lean4.el  | 487 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 572 insertions(+), 13 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6a68cfcc47..89ac17b6ea 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2024-07-24  Eduardo Ochs  <eduardoochs@gmail.com>
+
+       * eev-blinks.el (ee-closure-to-lambda, ee-symbol-function): new
+       functions.
+       (ee-defun-sexp-for, ee-shortdefp, find-efunctionpp): use
+       `ee-symbol-function'.
+
 2024-07-22  Eduardo Ochs  <eduardoochs@gmail.com>
 
        * eev-intro.el (find-lean4-intro): small changes.
diff --git a/VERSION b/VERSION
index 0d0211ace5..6adcd6f687 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Mon Jul 22 05:40:28 GMT 2024
-Mon Jul 22 02:40:28 -03 2024
+Wed Jul 24 18:34:05 GMT 2024
+Wed Jul 24 15:34:05 -03 2024
diff --git a/eev-blinks.el b/eev-blinks.el
index 8edc9bd0c1..dfe3a22630 100644
--- a/eev-blinks.el
+++ b/eev-blinks.el
@@ -21,7 +21,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20240530
+;; Version:    20240724
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-blinks.el>
@@ -73,6 +73,7 @@
 ;; «.find-einternals»          (to "find-einternals")
 ;; «.find-einsert»             (to "find-einsert")
 ;; «.find-eunicode»            (to "find-eunicode")
+;;   «.ee-symbol-function»     (to "ee-symbol-function")
 ;; «.find-eejumps»             (to "find-eejumps")
 ;; «.find-eeshortdefs»         (to "find-eeshortdefs")
 ;; «.find-eaproposf»           (to "find-eaproposf")
@@ -1407,7 +1408,7 @@ that `find-epp' would print in a single line."
         (body (format ";; %s\n;; See: %S\n;;\n%s\n"
                       fefpp
                       '(find-eev "eev-blinks.el" "find-efunctionpp")
-                      (pp-to-string (symbol-function symbol)))))
+                      (pp-to-string (ee-symbol-function symbol)))))
     (apply 'find-estring-elisp body pos-spec-list)))
 
 ;; Test: (find-eppp-with-prefix ";; HELLO\n" '(1 "2" (3 4)))
@@ -1680,6 +1681,30 @@ Hint: install the Debian package \"unicode-data\".")
 
 
 
+;;;       _                               
+;;;   ___| | ___  ___ _   _ _ __ ___  ___ 
+;;;  / __| |/ _ \/ __| | | | '__/ _ \/ __|
+;;; | (__| | (_) \__ \ |_| | | |  __/\__ \
+;;;  \___|_|\___/|___/\__,_|_|  \___||___/
+;;;                                       
+;; «ee-symbol-function»  (to ".ee-symbol-function")
+;; This is an experimental hack for handling some versions of Emacs31. See:
+;; https://lists.gnu.org/archive/html/help-gnu-emacs/2024-07/msg00292.html
+;; https://lists.gnu.org/archive/html/help-gnu-emacs/2024-07/msg00311.html
+
+(defun ee-closure-to-lambda (c)
+  "Experimental!!! See the comments in the source!"
+  `(lambda ,(aref c 0) ,@(aref c 1)))
+
+(defun ee-symbol-function (sym)
+  "Experimental!!! See the comments in the source!"
+  (let ((o (symbol-function sym)))
+    (if (closurep o)
+       (ee-closure-to-lambda o)
+      o)))
+
+
+
 
 
 ;;;   __ _           _                  _                           
@@ -1696,7 +1721,7 @@ Hint: install the Debian package \"unicode-data\".")
 ;; Related to: (find-eev "eejump.el")
 
 (defun ee-defun-sexp-for (symbol) 
-  `(defun ,symbol ,@(cdr (symbol-function symbol))))
+  `(defun ,symbol ,@(cdr (ee-symbol-function symbol))))
 
 (defun ee-defun-str-for (symbol)
   (replace-regexp-in-string
@@ -1752,10 +1777,10 @@ Hint: install the Debian package \"unicode-data\".")
 (defun ee-shortdefp (sym)
   (and (fboundp  sym)
        (commandp sym)
-       (listp      (symbol-function  sym))
-       (eq (car    (symbol-function  sym)) 'lambda)
-       (<= (length (symbol-name      sym)) ee-shortdefp-maxlen-name)
-       (<= (length (ee-defun-str-for sym)) ee-shortdefp-maxlen-def)))
+       (listp      (ee-symbol-function sym))
+       (eq (car    (ee-symbol-function sym)) 'lambda)
+       (<= (length (symbol-name        sym)) ee-shortdefp-maxlen-name)
+       (<= (length (ee-defun-str-for   sym)) ee-shortdefp-maxlen-def)))
 
 (defun ee-shortdef-symbols ()
   (apropos-internal "^.*$" 'ee-shortdefp))
diff --git a/eev-intro.el b/eev-intro.el
index 1b812342a3..86a212ed2e 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
 ;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
-;; Version:    20240722
+;; Version:    20240724
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://anggtwu.net/eev-current/eev-intro.el>
@@ -17807,6 +17807,9 @@ UNFINISHED! UNTESTED!
 
 0. Prerequisites
 ================
+  (find-eev-quick-intro \"7. Quick access to one-liners\")
+  (find-eev-quick-intro \"7. Quick access to one-liners\" \"forget\")
+
   http://anggtwu.net/2024-lean4-oficina-0.html
   (find-windows-beginner-intro)
   (find-windows-beginner-intro \"6. Learn the basics of Emacs and eev\")
@@ -17883,8 +17886,8 @@ UNFINISHED! UNTESTED!
 
 2. Setup the ~/.emacs
 =====================
-  http://anggtwu.net/2024-find-dot-emacs-links.html
-  (find-dot-emacs-links \"eev angges melpa lean4 maxima5470 mfms\")
+See: http://anggtwu.net/2024-find-dot-emacs-links.html
+Use: (find-dot-emacs-links \"eev angges melpa lean4 maxima5470 mfms\")
 
 
 
@@ -17914,9 +17917,46 @@ UNFINISHED! UNTESTED!
 
 
 
+
 5. Install lean4-mode
 =====================
-  (find-es \"lean\" \"lean4-mode-vc\")
+Check the version of your Emacs:
+  (emacs-version)
+If it is at least 29, then running this sexp should be enough:
+
+  (package-vc-install \"https://github.com/leanprover-community/lean4-mode\";)
+
+If not then you need to download lean4-mode with this eepitch block,
+
+ (eepitch-shell)
+ (eepitch-kill)
+ (eepitch-shell)
+# (find-fline \"~/.emacs.d/elpa/lean4-mode/\")
+  rm -Rfv  ~/.emacs.d/elpa/lean4-mode/
+  mkdir -p ~/.emacs.d/elpa/lean4-mode/
+  cd       ~/.emacs.d/elpa/lean4-mode/
+  git clone https://github.com/leanprover-community/lean4-mode .
+
+Then add \"~/.emacs.d/elpa/lean4-mode/\" to the Emacs load-path, with:
+
+(add-to-list 'load-path \"~/.emacs.d/elpa/lean4-mode/\")
+;; Tests: (find-fline \"~/.emacs.d/elpa/lean4-mode/\")
+;;        (ee-locate-library \"lean4-mode\")
+;;        (find-eppp load-path)
+
+
+
+
+See: https://github.com/leanprover-community/lean4-mode
+
+
+
+
+     (find-es \"lean\" \"lean4-mode-vc\")
+     (find-efunction 'ee-locate-library)
+     (ee-locate-library \"lean4-mode\")
+     (find-eev \"eev-lean4.el\" \"etc\")
+
   (package-vc-install \"https://github.com/leanprover-community/lean4-mode\";)
   (find-lean4modefile \"README.md\")
 
diff --git a/eev-lean4.el b/eev-lean4.el
new file mode 100644
index 0000000000..65534498e2
--- /dev/null
+++ b/eev-lean4.el
@@ -0,0 +1,487 @@
+;;; eev-lean4.el -- Definitions for a workshop on Lean4.  -*- lexical-binding: 
nil; -*-
+
+;; Copyright (C) 2024 Free Software Foundation, Inc.
+;;
+;; This file is part of GNU eev.
+;;
+;; GNU eev is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GNU eev is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+;;
+;; Author:     Eduardo Ochs <eduardoochs@gmail.com>
+;; Maintainer: Eduardo Ochs <eduardoochs@gmail.com>
+;; Version:    20240707
+;; Keywords:   e-scripts
+;;
+;; Latest version: <http://anggtwu.net/eev-current/eev-lean4.el>
+;;       htmlized: <http://anggtwu.net/eev-current/eev-lean4.el.html>
+;;       See also: <http://anggtwu.net/eev-current/eev-beginner.el.html>
+;;                 <http://anggtwu.net/eev-intros/find-lean4-intro.html>
+;;                                               (find-lean4-intro)
+
+;;; Comment:
+;;
+;; This file contains part of the setup for this workshop:
+;;
+;;   http://anggtwu.net/2024-lean4-oficina-0.html
+;;
+;; This is very experimental and very undocumented!
+;;
+;; (load (buffer-file-name))
+
+;;
+
+;; Index:
+;; «.PATH»                     (to "PATH")
+;; «.etc»                      (to "etc")
+;; «.ee-let*-macro-leandoc»    (to "ee-let*-macro-leandoc")
+;; «.code-leandocpdf»          (to "code-leandocpdf")
+;; «.find-leandocprep-links»   (to "find-leandocprep-links")
+;; «.find-leanbook-links»      (to "find-leanbook-links")
+;; «.find-leanrstdoc-links»    (to "find-leanrstdoc-links")
+;;
+;; «.books»                    (to "books")
+;; «.leandoc-specs»            (to "leandoc-specs")
+;;   «.ee-leandoc-:fplean4»    (to "ee-leandoc-:fplean4")
+;;   «.ee-leandoc-:lean4»      (to "ee-leandoc-:lean4")
+;;   «.ee-leandoc-:leanmeta»   (to "ee-leandoc-:leanmeta")
+;;   «.ee-leandoc-:tclean4»    (to "ee-leandoc-:tclean4")
+;;   «.ee-leandoc-:tpil4»      (to "ee-leandoc-:tpil4")
+
+
+
+
+;;;  ____   _  _____ _   _ 
+;;; |  _ \ / \|_   _| | | |
+;;; | |_) / _ \ | | | |_| |
+;;; |  __/ ___ \| | |  _  |
+;;; |_| /_/   \_\_| |_| |_|
+;;;                        
+;; «PATH»  (to ".PATH")
+;; See: (find-es "lean" "install-2024")
+;; export PATH=$HOME/.elan/bin:$PATH
+(setenv "PATH" (format "%s/.elan/bin:%s" (getenv "HOME") (getenv "PATH")))
+;; (find-sh "echo $PATH")
+;; (find-sh "echo $PATH | tr : '\n'")
+
+
+;; «etc»  (to ".etc")
+;; (find-lean4prefile "")
+;; (find-lean4presh "find * | sort")
+(code-c-d "lean4pre"  
"~/.elan/toolchains/leanprover--lean4---stable/src/lean/")
+
+;; If lean4-mode or lsp-mode are not installed
+;; these `code-c-d's will do weird things.
+;;
+;; (find-code-c-d "lean4mode" (ee-locate-library "lean4-mode"))
+;; (find-code-c-d "lspmode"   (ee-locate-library "lsp-mode"))
+        (code-c-d "lean4mode" (ee-locate-library "lean4-mode"))
+        (code-c-d "lspmode"   (ee-locate-library "lsp-mode"))
+;; (find-lean4modefile "")
+;; (find-lspmodefile "")
+
+;; (find-es "lean" "lean4-mode-vc")
+;; (find-es "lsp" "lsp-mode-git")
+
+(defun l () (interactive) (find-es "lean"))
+(defun a () (interactive) (mkdir "/tmp/L/" t) (find-fline "/tmp/L/a.lean"))
+
+;; See: (find-eev "eev-tlinks.el" "ee-copy-rest-3-intro")
+(defun cr3 () (interactive)
+  (insert "# (ee-copy-rest-3m nil \"-- end\" \"/tmp/L/a.lean\")\n\n-- end\n"))
+
+
+
+
+
+;;;  _      _                                             
+;;; | | ___| |___/\__      _ __ ___   __ _  ___ _ __ ___  
+;;; | |/ _ \ __\    /_____| '_ ` _ \ / _` |/ __| '__/ _ \ 
+;;; | |  __/ |_/_  _\_____| | | | | | (_| | (__| | | (_) |
+;;; |_|\___|\__| \/       |_| |_| |_|\__,_|\___|_|  \___/ 
+;;;                                                       
+;; «ee-let*-macro-leandoc»  (to ".ee-let*-macro-leandoc")
+;; See: (find-templates-intro "7. let* macros")
+;; Skel: (find-let*-macro-links "leandoc" "plist" "g kw kill baseweb gitrepo 
gitname")
+;; Test: (ee-let*-macro-leandoc '(:usrc "~/bigsrc/") usrc)
+;;
+(defmacro ee-let*-macro-leandoc (pl &rest code)
+  "An internal function used by `find-leandoc-links'."
+  `(cl-letf*
+       ((pl        ,pl)
+       (plist     (if (symbolp pl) (symbol-value pl) pl))
+       ((symbol-function 'g) (lambda (field) (plist-get plist field)))
+       (kw        (or (g :kw)       "{kw}"))
+       (kill      (or (g :kill)     "{kill}"))
+       (k2        (or (g :k2)       "{k2}"))
+       (base      (or (g :base)     "{base}"))
+       (baseweb   (or (g :base-web) "{baseweb}"))
+       (rst       (or (g :rst)      ".rst"))
+       (usrc      (or (g :usrc)     "~/usrc/"))
+       (gitrepo   (or (g :git-repo) "{gitrepo}"))
+       (gitsubdir (or (g :git-subdir) ""))
+       (username  user-login-name)
+       (basewebl  (ee-url-to-fname0 baseweb))
+       (baseweblu (format "file://%s" (ee-url-to-fname  baseweb)))
+       (baseweb-  (replace-regexp-in-string "https://"; "" baseweb))
+       (gitname   (replace-regexp-in-string "^.*/\\([^/]*\\)/?$" "\\1" 
gitrepo))
+        (gitdir    (or (g :git-dir) (format "%s%s/" usrc gitname)))
+       (baserst   (cond ((g :base-rst) (g :base-rst))
+                        ((g :git-repo) (format "%s%s" gitdir gitsubdir))
+                        (t             "/BASE-RST/")))
+       (baserst-  (replace-regexp-in-string "~/" "" baserst))
+       )
+     ,@code))
+
+
+
+;;;  _                      _                      _  __ 
+;;; | | ___  __ _ _ __   __| | ___   ___ _ __   __| |/ _|
+;;; | |/ _ \/ _` | '_ \ / _` |/ _ \ / __| '_ \ / _` | |_ 
+;;; | |  __/ (_| | | | | (_| | (_) | (__| |_) | (_| |  _|
+;;; |_|\___|\__,_|_| |_|\__,_|\___/ \___| .__/ \__,_|_|  
+;;;                                     |_|              
+;;
+;; «code-leandocpdf»  (to ".code-leandocpdf")
+;; Skel: (find-code-xxx-links "leandocpdf" "pl" "")
+;; Test: (find-code-leandocpdf 'ee-leandoc-:lean4)
+;;
+(defun      code-leandocpdf (pl)
+  (eval (ee-read      (ee-code-leandocpdf pl))))
+(defun find-code-leandocpdf (pl)
+  (let ((ee-buffer-name
+        (or ee-buffer-name "*find-code-leandocpdf*")))
+    (find-estring-elisp (ee-code-leandocpdf pl))))
+(defun   ee-code-leandocpdf (pl)
+  (ee-let*-macro-leandoc
+   pl
+   (ee-template0 "\
+;; (find-code-leandocpdf '{(ee-S pl)})
+;;      (code-leandocpdf '{(ee-S pl)})
+;;
+;; The fields of this leandoc spec are (probably) here:
+;;   (find-eev \"eev-lean4.el\" \"ee-leandoc-:{kw}\")
+;; The code that generates this temporary buffer is here:
+;;   (find-eev \"eev-lean4.el\" \"code-leandocpdf\")
+
+;; Try: (find-{kw}doc  \"{base}\")
+;;      (find-{kw}docw \"{base}\")
+;;      (find-{kw}docr \"{base}\")
+;;      (find-{kw}docrfile \"\")
+;;      (find-rstdoc-links :{kw})
+;;      (find-code-rstdoc :{kw})
+;;      (find-{kw}page)
+;;      (find-{kw}text)
+
+;; The `setq' below creates a rstdoc spec from this leandoc spec.
+;; See: (find-rstdoc-intro)
+;;
+(setq ee-rstdoc-:{kw}
+      '(:base      \"{base}\"
+        :base-web  \"{baseweb}\"
+        :base-html \"file:///home/{username}/snarf/https/{baseweb-}\"
+        :base-rst  \"{baserst}\"
+        :rst       \"{rst}\"
+        :res       (\"#.*$\" \"\\\\?.*$\"
+                    \"\\\\.html$\" \"\\\\.txt$\" \"\\\\.rst$\" \"\\\\.md$\" 
\"\\\\.lean$\"
+                    \"^file://+\" \"^/\" \"^home/{username}/\" \"^~/\" 
\"^snarf/\" \"^https:?/+\"
+                    \"^{baseweb-}\"
+                    \"^{baserst-}\")
+        :kill      {kill}
+        ))
+
+;; Try: (find-code-rstdoc :{kw})
+             (code-rstdoc :{kw})
+
+(code-c-d \"{kw}doc\" \"{basewebl}\")
+;; (find-{kw}docfile \"\")
+;; (find-{kw}docfile \"\" \"print\")
+
+(code-c-d \"{kw}\" \"{gitdir}\")
+;; (find-{kw}file \"\")
+
+;; Try: (find-{kw}page)
+;;      (find-{kw}text)
+(code-pdf-page  \"{kw}\" \"{basewebl}print.pdf\")
+(code-pdf-text8 \"{kw}\" \"{basewebl}print.pdf\")
+
+;; Try: ({k2}l \"Copyright\")
+(defun {k2}l (&rest rest) (interactive)
+  (apply 'find-leanbook-links '{kw} rest))
+
+;; See: (find-leandocprep-links '{(ee-S pl)})
+
+")))
+
+
+;;;  _                      _                                 
+;;; | | ___  __ _ _ __   __| | ___   ___ _ __  _ __ ___ _ __  
+;;; | |/ _ \/ _` | '_ \ / _` |/ _ \ / __| '_ \| '__/ _ \ '_ \ 
+;;; | |  __/ (_| | | | | (_| | (_) | (__| |_) | | |  __/ |_) |
+;;; |_|\___|\__,_|_| |_|\__,_|\___/ \___| .__/|_|  \___| .__/ 
+;;;                                     |_|            |_|    
+;;
+;; «find-leandocprep-links»  (to ".find-leandocprep-links")
+;; Skel: (find-find-links-links-new "leandocprep" "pl" "ee-buffer-name")
+;; Test: (find-leandocprep-links 'ee-leandoc-:lean4)
+;;
+(defun find-leandocprep-links (&optional pl &rest pos-spec-list)
+"Visit a temporary buffer containing a script for preparing the
+local files for the leandoc PL."
+  (interactive)
+  (setq pl (or pl "{pl}"))
+  (let* ((ee-buffer-name "*find-leandocprep-links*"))
+    (ee-let*-macro-leandoc
+     pl
+     (apply
+      'find-elinks-elisp
+      `((find-leandocprep-links ',pl ,@pos-spec-list)
+       ;; Convention: the first sexp always regenerates the buffer.
+       (find-efunction 'find-leandocprep-links)
+       ""
+       ,(ee-template0 "\
+;; 1. Make sure that we have a local copy of the htmls:
+;;    (find-fline \"{basewebl}\")
+;;    (find-wgetrecursive-links \"{baseweb}\")
+
+
+;; 2. Produce the files `print.pdf' and `print.txt'.
+;;
+;;  a) Do we already have the print.pdf and print.txt? Check:
+;;     (find-fline \"{basewebl}\")
+;;     (find-fline \"{basewebl}\" \"print\")
+;;
+;;  b) If not, then use `M-x brg' on the url below, and
+;;     make the browser print it to /tmp/print.pdf:
+;;     (kill-new \"/tmp/print.pdf\")
+;;     {baseweb}print.html
+;;
+;;  c) Copy the `print.pdf' to the right place:
+;;     (find-sh0 \"cp -v /tmp/print.pdf {basewebl}\")
+;;
+;;  d) Generate the `print.txt':
+;;     (find-{kw}docfile \"\")
+;;     (find-{kw}docfile \"\" \"print\")
+;;     (find-{kw}docsh \"pdftotext -layout print.pdf print.txt\")
+;;     (find-{kw}docfile \"print.txt\")
+
+
+;; 3. I use this to adjust how blogme htmlizes `find-{kw}doc':
+;;    (find-blogme3-rstdoc-links \"{kw}\")
+;;    ^ This only works on my machine!
+")
+       )
+      pos-spec-list))))
+
+
+
+;;;  _                  _                 _    
+;;; | | ___  __ _ _ __ | |__   ___   ___ | | __
+;;; | |/ _ \/ _` | '_ \| '_ \ / _ \ / _ \| |/ /
+;;; | |  __/ (_| | | | | |_) | (_) | (_) |   < 
+;;; |_|\___|\__,_|_| |_|_.__/ \___/ \___/|_|\_\
+;;;                                            
+;; «find-leanbook-links»  (to ".find-leanbook-links")
+;; Skel: (find-find-links-links-new "leanbook" "bk secname" "ee-buffer-name")
+;; Test: (find-leanbook-links 'leanmeta)
+;;
+(defun find-leanbook-links (&optional bk secname &rest pos-spec-list)
+"Visit a temporary buffer containing hyperlinks for leanbook."
+  (interactive)
+  (setq bk (or bk "{bk}"))
+  (setq secname (or secname "{secname}"))
+  (let* ((ee-buffer-name (format "*(find-leanbook-links '%s ...)*" bk)))
+    (apply
+     'find-elinks
+     `((find-leanbook-links ',bk ,secname ,@pos-spec-list)
+       (fpl ,secname)
+       (ldl ,secname)
+       (lml ,secname)
+       (tcl ,secname)
+       (tpl ,secname)
+       ;; Convention: the first sexp always regenerates the buffer.
+       (find-efunction 'find-leanbook-links)
+       ""
+       ,(ee-template0 "\
+# (find-eev \"eev-lean4.el\" \"ee-leandoc-:{bk}\")
+# (find-{bk}doc)
+# (find-{bk}docw)
+# (find-{bk}docr)
+# (find-{bk}docrfile \"\")
+# (find-{bk}page)
+# (find-{bk}text)
+# (find-{bk}text 1 \"{secname}\")
+# (find-{bk}docfile \"\" \"print\")
+# (find-{bk}docfile \"print.txt\")
+# (find-{bk}docgrep \"grep --color=auto -nH --null -e '{secname}' print.txt\")
+
+")
+       )
+     pos-spec-list)))
+
+
+
+;; «find-leanrstdoc-links»  (to ".find-leanrstdoc-links")
+;; Superseded by: (find-efunction 'find-code-leandocpdf)
+
+
+
+
+
+;;;  _                       _                 _                      
+;;; | |    ___  __ _ _ __   | |__   ___   ___ | | _____      __ _ ___ 
+;;; | |   / _ \/ _` | '_ \  | '_ \ / _ \ / _ \| |/ / __|    / _` / __|
+;;; | |__|  __/ (_| | | | | | |_) | (_) | (_) |   <\__ \_  | (_| \__ \
+;;; |_____\___|\__,_|_| |_| |_.__/ \___/ \___/|_|\_\___( )  \__,_|___/
+;;;  _                      _                          |/            
+;;; | | ___  __ _ _ __   __| | ___   ___   ___ _ __   ___  ___ ___ 
+;;; | |/ _ \/ _` | '_ \ / _` |/ _ \ / __| / __| '_ \ / _ \/ __/ __|
+;;; | |  __/ (_| | | | | (_| | (_) | (__  \__ \ |_) |  __/ (__\__ \
+;;; |_|\___|\__,_|_| |_|\__,_|\___/ \___| |___/ .__/ \___|\___|___/
+;;;                                           |_|                  
+;; «books»  (to ".books")
+;; «leandoc-specs»  (to ".leandoc-specs")
+
+;; «ee-leandoc-:fplean4»  (to ".ee-leandoc-:fplean4")
+;;  "Functional Programming in Lean".
+;; Try: (find-fplean4doc  "introduction")
+;;      (find-fplean4docw "introduction")
+;;      (find-fplean4docr "introduction")
+;;      (find-fplean4docrfile "")
+;;      (find-rstdoc-links :fplean4)
+;;      (find-code-rstdoc :fplean4)
+;;      (find-fplean4page)
+;;      (find-fplean4text)
+(setq ee-leandoc-:fplean4
+ '(:kw         "fplean4"
+   :kill       "fpk"
+   :k2         "fp"
+   :rst        ".md"
+   :base-web   "https://lean-lang.org/functional_programming_in_lean/";
+   :git-repo   "https://github.com/leanprover/fp-lean";
+   :git-subdir "functional-programming-lean/src/"
+   :base       "introduction"
+   ))
+;; (find-code-leandocpdf 'ee-leandoc-:fplean4)
+        (code-leandocpdf 'ee-leandoc-:fplean4)
+
+;; «ee-leandoc-:lean4»  (to ".ee-leandoc-:lean4")
+;;  "Lean Manual".
+;; Try: (find-lean4doc  "whatIsLean")
+;;      (find-lean4docw "whatIsLean")
+;;      (find-lean4docr "whatIsLean.md")
+;;      (find-lean4docrfile "")
+;;      (find-rstdoc-links :lean4)
+;;      (find-code-rstdoc :lean4)
+;;      (find-lean4page)
+;;      (find-lean4text)
+(setq ee-leandoc-:lean4
+ '(:kw         "lean4"
+   :kill       "ldk"
+   :k2         "ld"
+   :base-web   "https://lean-lang.org/lean4/doc/";
+   :git-repo   "https://github.com/leanprover/lean4";
+   :usrc       "~/bigsrc/"
+   :base-rst   "~/bigsrc/lean4/doc/"
+   :base       "whatIsLean"
+   :rst        ""
+   ))
+;; (find-code-leandocpdf 'ee-leandoc-:lean4)
+        (code-leandocpdf 'ee-leandoc-:lean4)
+
+;; «ee-leandoc-:leanmeta»  (to ".ee-leandoc-:leanmeta")
+;;  "Metaprogramming in Lean 4".
+;; Try: (find-leanmetadoc  "main/01_intro")
+;;      (find-leanmetadocw "main/01_intro")
+;;      (find-leanmetadocr "main/01_intro")
+;;      (find-leanmetadocrfile "")
+;;      (find-rstdoc-links :leanmeta)
+;;      (find-code-rstdoc :leanmeta)
+;;      (find-leanmetapage)
+;;      (find-leanmetatext)
+(setq ee-leandoc-:leanmeta
+ '(:kw         "leanmeta"
+   :kill       "lmk"
+   :k2         "lm"
+   :rst        ".lean"
+   :base-web   
"https://leanprover-community.github.io/lean4-metaprogramming-book/";
+   :git-repo   
"https://github.com/leanprover-community/lean4-metaprogramming-book";
+   :git-subdir "lean/"
+   :base       "main/01_intro"
+   ))
+;; (find-code-leandocpdf 'ee-leandoc-:leanmeta)
+        (code-leandocpdf 'ee-leandoc-:leanmeta)
+
+;; «ee-leandoc-:tclean4»  (to ".ee-leandoc-:tclean4")
+;;  "Type Checking in Lean 4".
+;; Try: (find-tclean4doc  "title_page")
+;;      (find-tclean4docw "title_page")
+;;      (find-tclean4docr "title_page")
+;;      (find-tclean4docrfile "")
+;;      (find-rstdoc-links :tclean4)
+;;      (find-code-rstdoc :tclean4)
+;;      (find-tclean4page)
+;;      (find-tclean4text)
+(setq ee-leandoc-:tclean4
+ '(:kw         "tclean4"
+   :kill       "tck"
+   :k2         "tc"
+   :rst        ".md"
+   :base-web   "https://ammkrn.github.io/type_checking_in_lean4/";
+   :git-repo   "https://github.com/ammkrn/type_checking_in_lean4";
+   :git-subdir "src/"
+   :base       "title_page"
+   ))
+;; (find-code-leandocpdf 'ee-leandoc-:tclean4)
+        (code-leandocpdf 'ee-leandoc-:tclean4)
+;;
+;; (find-2a nil '(find-leanrstdoc-links 'ee-leandoc-:tclean4))
+
+
+;; «ee-leandoc-:tpil4»  (to ".ee-leandoc-:tpil4")
+;;  "Theorem Proving in Lean 4".
+;; Try: (find-tpil4doc  "introduction")
+;;      (find-tpil4docw "introduction")
+;;      (find-tpil4docr "introduction")
+;;      (find-tpil4docrfile "")
+;;      (find-rstdoc-links :tpil4)
+;;      (find-code-rstdoc :tpil4)
+;;      (find-tpil4page)
+;;      (find-tpil4text)
+(setq ee-leandoc-:tpil4
+ '(:kw         "tpil4"
+   :kill       "tpk"
+   :k2         "tp"
+   :rst        ".md"
+   :base-web   "https://lean-lang.org/theorem_proving_in_lean4/";
+   :git-repo   "https://github.com/leanprover/theorem_proving_in_lean4";
+   :git-subdir ""
+   :base       "introduction"
+   ))
+;; (find-code-leandocpdf 'ee-leandoc-:tpil4)
+        (code-leandocpdf 'ee-leandoc-:tpil4)
+
+
+
+
+
+
+
+
+
+
+(provide 'eev-lean4)
+
+;; Local Variables:
+;; coding:            utf-8-unix
+;; no-byte-compile:   t
+;; End:



reply via email to

[Prev in Thread] Current Thread [Next in Thread]