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

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

[elpa] master ca04f69 39/63: Make `yas-about' more informative


From: Noam Postavsky
Subject: [elpa] master ca04f69 39/63: Make `yas-about' more informative
Date: Mon, 17 Jul 2017 22:54:16 -0400 (EDT)

branch: master
commit ca04f69c101cff4fd6e71a4c1642e3a169a0057b
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>

    Make `yas-about' more informative
    
    * yasnippet.el (yas--loaddir): New constant.
    (yas-installed-snippets-dir): Use it to compute value.
    (yas-about): Get version from git or `package' if available.
---
 yasnippet.el | 25 ++++++++++++++++++++-----
 1 file changed, 20 insertions(+), 5 deletions(-)

diff --git a/yasnippet.el b/yasnippet.el
index 47b8ff5..9934b4d 100644
--- a/yasnippet.el
+++ b/yasnippet.el
@@ -152,10 +152,13 @@
   :prefix "yas-"
   :group 'editing)
 
+(defconst yas--loaddir
+  (file-name-directory (or load-file-name buffer-file-name))
+  "Directory that yasnippet was loaded from.")
+
 (defvar yas-installed-snippets-dir nil)
 (setq yas-installed-snippets-dir
-      (when load-file-name
-        (expand-file-name "snippets" (file-name-directory load-file-name))))
+      (expand-file-name "snippets" yas--loaddir))
 
 (defconst yas--default-user-snippets-dir
   (expand-file-name "snippets" user-emacs-directory))
@@ -1977,9 +1980,21 @@ This works by stubbing a few functions, then calling
 
 (defun yas-about ()
   (interactive)
-  (message (concat "yasnippet (version "
-                   yas--version
-                   ") -- pluskid/joaotavora/npostavs")))
+  (message "yasnippet (version %s) -- pluskid/joaotavora/npostavs"
+           (or (ignore-errors (car (let ((default-directory yas--loaddir))
+                                     (process-lines "git" "describe"
+                                                    "--tags" "--dirty"))))
+               (when (and (featurep 'package) (fboundp 'package-desc-version))
+                 (ignore-errors
+                   (let* ((yas-pkg (cdr (assq 'yasnippet package-alist)))
+                          (version (package-version-join
+                                    (package-desc-version (car yas-pkg)))))
+                     ;; Special case for MELPA's bogus version numbers.
+                     (if (string-match 
"\\`20..[01][0-9][0-3][0-9][.][0-9]\\{3,4\\}\\'"
+                                       version)
+                         (concat yas--version "-snapshot" version)
+                       version))))
+               yas--version)))
 
 
 ;;; Apropos snippet menu:



reply via email to

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