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

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

[elpa] externals/eev b2c738a 02/10: Added `find-epackage-links'.


From: Stefan Monnier
Subject: [elpa] externals/eev b2c738a 02/10: Added `find-epackage-links'.
Date: Thu, 7 Nov 2019 23:21:47 -0500 (EST)

branch: externals/eev
commit b2c738ab528f9e5a4e2c6567f1388c8ea76fd520
Author: Eduardo Ochs <edrx@circe.birdland>
Commit: Eduardo Ochs <edrx@circe.birdland>

    Added `find-epackage-links'.
---
 ChangeLog     | 11 ++++++++++
 VERSION       |  4 ++--
 eev-edit.el   |  5 +++--
 eev-elinks.el | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 eev-intro.el  |  4 ++--
 5 files changed, 83 insertions(+), 9 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 800f1b2..d7a1dd5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2019-09-27  Eduardo Ochs  <address@hidden>
+
+       * eev-elinks.el (ee-file-name-nondirectory-slash): new function.
+       (ee-file-expand-wildcards-slash): new function.
+       (ee-find-epackage-links0): new function.
+       (find-epackage-links): new function.
+       (ee-find-epackage-links): use `ee-find-epackage-links0'.
+
+       * eev-edit.el (ee-tag-re-utf-8): new variable.
+       (ee-tag-re): use `ee-tag-re-utf-8'.
+
 2019-09-26  Eduardo Ochs  <address@hidden>
 
        * eev-intro.el (find-eev-quick-intro): small changes.
diff --git a/VERSION b/VERSION
index 2937e33..c213c09 100644
--- a/VERSION
+++ b/VERSION
@@ -1,2 +1,2 @@
-Thu Sep 26 05:57:22 GMT 2019
-Thu Sep 26 02:57:22 -03 2019
+Fri Sep 27 05:51:18 GMT 2019
+Fri Sep 27 02:51:18 -03 2019
diff --git a/eev-edit.el b/eev-edit.el
index 53bc716..218467f 100644
--- a/eev-edit.el
+++ b/eev-edit.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019aug29
+;; Version:    2019sep27
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-edit.el>
@@ -138,7 +138,8 @@ With a prefix argument run 
`ee-copy-preceding-tag-to-kill-ring' instead."
 
 ;; Experimental, 2019aug29
 ;; (defun ee-tag-re () (ee-tolatin1 "«\\([!-~]+\\)»"))
-(defun ee-tag-re () "«\\([!-~]+\\)»")
+(defvar ee-tag-re-utf-8 "«\\([!-~]+\\)»")
+(defun  ee-tag-re () ee-tag-re-utf-8)
 
 (defun ee-copy-preceding-tag-to-kill-ring ()
   "Copy the preceding tag to the kill ring and highlight (\"flash\") it.
diff --git a/eev-elinks.el b/eev-elinks.el
index 50dd5f5..42ccd4a 100644
--- a/eev-elinks.el
+++ b/eev-elinks.el
@@ -19,7 +19,7 @@
 ;;
 ;; Author:     Eduardo Ochs <address@hidden>
 ;; Maintainer: Eduardo Ochs <address@hidden>
-;; Version:    2019aug06
+;; Version:    2019sep27
 ;; Keywords:   e-scripts
 ;;
 ;; Latest version: <http://angg.twu.net/eev-current/eev-elinks.el>
@@ -73,6 +73,7 @@
 ;; «.ee-hyperlink-prefix»      (to "ee-hyperlink-prefix")
 ;; «.find-eface-links»         (to "find-eface-links")
 ;; «.find-color-links»         (to "find-color-links")
+;; «.find-epackage-links»      (to "find-epackage-links")
 
 ;; «.find-here-links»          (to "find-here-links")
 ;; «.find-here-links-beginner» (to "find-here-links-beginner")
@@ -1093,6 +1094,68 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
 
 
 
+;;;   __ _           _                             _                          
_ 
+;;;  / _(_)_ __   __| |       ___ _ __   __ _  ___| | ____ _  __ _  ___      | 
|
+;;; | |_| | '_ \ / _` |_____ / _ \ '_ \ / _` |/ __| |/ / _` |/ _` |/ _ \_____| 
|
+;;; |  _| | | | | (_| |_____|  __/ |_) | (_| | (__|   < (_| | (_| |  __/_____| 
|
+;;; |_| |_|_| |_|\__,_|      \___| .__/ \__,_|\___|_|\_\__,_|\__, |\___|     
|_|
+;;;                              |_|                         |___/             
 
+;;
+;; «find-epackage-links»  (to ".find-epackage-links")
+;; Tests: (find-epackage-links "eev")
+;;        (find-estring (ee-find-epackage-links0 "0x0"))
+;;        (find-estring (ee-find-epackage-links0 "eev"))
+;;
+(defun find-epackage-links (&optional pkgname &rest pos-spec-list)
+"Visit a temporary buffer containing hyperlinks for an Emacs package."
+  (interactive)
+  (setq pkgname (or pkgname "{pkgname}"))
+  (apply 'find-elinks
+   `((find-epackage-links ,pkgname ,@pos-spec-list)
+     ;; Convention: the first sexp always regenerates the buffer.
+     (find-efunction 'find-epackage-links)
+     (find-elpafile "")
+     ""
+     ,(ee-find-epackage-links0 pkgname)
+     )
+   pos-spec-list))
+
+(defun ee-find-epackage-links0 (pkgname)
+  "This is an internal function used by `find-epackage-links'."
+  (let* ((spkgname (format "\n  %s " pkgname))
+        (pattern (format "%s%s-*" ee-elpadir pkgname))
+        (fnames (ee-file-expand-wildcards-slash pattern))
+        (sexps (mapcar (lambda (s) (list 'find-elpafile s)) fnames))
+        (sexps (reverse sexps))
+        (lines (mapconcat 'ee-HS sexps "\n"))
+        )
+    (ee-template0 "\
+# (find-epackages {(ee-S spkgname)})
+# (find-epackage '{pkgname})
+{lines}
+
+# http://elpa.gnu.org/packages/{pkgname}.html
+# http://melpa.org/#/{pkgname}
+")))
+
+
+(defun ee-file-name-nondirectory-slash (fname)
+  "Like `file-name-nondirectory', but appends a / to FNAME if it is a 
directory.
+This is an internal function used by `ee-find-epackage-links'."
+  (concat (file-name-nondirectory fname)
+         (if (file-directory-p fname) "/" "")))
+
+(defun ee-file-expand-wildcards-slash (pattern)
+  "Like `file-expand-wildcards' but with `ee-file-name-nondirectory-slash' & 
sort.
+This is an internal function used by `ee-find-epackage-links'."
+  (let* ((fnames0 (file-expand-wildcards pattern))
+        (fnames1 (mapcar 'ee-file-name-nondirectory-slash fnames0))
+        (fnames2 (sort fnames1 'string<)))
+    fnames2))
+
+
+
+
 
 ;;;   __ _           _       _                         _ _       _        
 ;;;  / _(_)_ __   __| |     | |__   ___ _ __ ___      | (_)_ __ | | _____ 
@@ -1176,8 +1239,7 @@ This needs a temporary directory; see: 
(find-prepared-intro)"
 (defun  ee-epackage-bufferp () (ee-buffer-help ee-epackage-re 1))
 (defun  ee-find-epackage-links ()
   (let ((p (ee-epackage-bufferp)))
-    `((find-epackages ,(format "\n  %s " p) t)
-      (find-epackage ',p))))
+    (list (ee-find-epackage-links0 p))))
 
 ;; By buffer name (when the mode is man)
 (defvar ee-man-re "^\\*Man \\(.*\\)\\*$")
diff --git a/eev-intro.el b/eev-intro.el
index dd704a8..6b8adeb 100644
--- a/eev-intro.el
+++ b/eev-intro.el
@@ -4710,8 +4710,8 @@ sexp `(shell)' by running it in a certain way.
 
 
 
-2.3. `(eepitch)'
-----------------
+2.3. `eepitch'
+--------------
 The documentation for `eepitch' says:
 
   (eepitch CODE)



reply via email to

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