[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 4dcd315 292/348: counsel.el: Improve counsel-package
From: |
Oleh Krehel |
Subject: |
[elpa] master 4dcd315 292/348: counsel.el: Improve counsel-package |
Date: |
Sat, 8 Apr 2017 11:04:17 -0400 (EDT) |
branch: master
commit 4dcd31568a8c225120d5e8a792ff10d6565c9309
Author: Justin Burkett <address@hidden>
Commit: Justin Burkett <address@hidden>
counsel.el: Improve counsel-package
Retain more info about packages in candidate list to make adding actions
easier,
and update action functions.
counsel.el (counsel-package): Update
counsel.el (counsel-package-action): Update
counsel.el (counsel-package-action-describe): Update
counsel.el (counsel-package-action-homepage): Add
---
counsel.el | 46 ++++++++++++++++++++++++++--------------------
1 file changed, 26 insertions(+), 20 deletions(-)
diff --git a/counsel.el b/counsel.el
index ba2a5d4..d7b3909 100644
--- a/counsel.el
+++ b/counsel.el
@@ -2215,17 +2215,7 @@ Additional Actions:
(package-initialize t))
(unless package-archive-contents
(package-refresh-contents))
- (let ((cands (mapcar (lambda (pkg)
- (let* ((pkg (car pkg))
- (pkg-name (symbol-name pkg)))
- (if (package-installed-p pkg)
- (cons
- (format "-%s" pkg-name)
- pkg-name)
- (cons pkg-name pkg-name)
- (cons
- (format "+%s" pkg-name)
- pkg-name))))
+ (let ((cands (mapcar #'counsel-package-make-package-cell
package-archive-contents)))
(ivy-read "Packages (install +pkg or delete -pkg): "
(cl-sort cands #'counsel--package-sort)
@@ -2234,15 +2224,32 @@ Additional Actions:
:require-match t
:caller 'counsel-package)))
+(defun counsel-package-make-package-cell (pkg)
+ (let* ((pkg-sym (car pkg))
+ (pkg-name (symbol-name pkg-sym)))
+ (cons (format "%s%s"
+ (if (package-installed-p pkg-sym) "-" "+")
+ pkg-name)
+ pkg)))
+
(defun counsel-package-action (pkg-cons)
- (if (equal (car pkg-cons) "+")
- (package-install (cdr pkg-cons))
- (package-delete (cdr pkg-cons))))
+ (let ((pkg (cadr pkg-cons)))
+ (if (package-installed-p pkg)
+ (package-delete pkg)
+ (package-install pkg))))
(defun counsel-package-action-describe (pkg-cons)
- "Call `describe-package'."
- (message "%s" pkg-cons)
- (describe-package (intern (cdr pkg-cons))))
+ "Call `describe-package' for package in PKG-CONS."
+ (describe-package (cadr pkg-cons)))
+
+(defun counsel-package-action-homepage (pkg-cons)
+ "Open homepage for package in PKG-CONS."
+ (let* ((desc-list (cddr pkg-cons))
+ (desc (if (listp desc-list) (car desc-list) desc-list))
+ (url (cdr (assoc :url (package-desc-extras desc)))))
+ (when url
+ (require 'browse-url)
+ (browse-url url))))
(defun counsel--package-sort (a b)
"Sort function for `counsel-package'."
@@ -2254,9 +2261,8 @@ Additional Actions:
(and (eq a-inst b-inst) (string-lessp a b)))))
(ivy-set-actions 'counsel-package
- ;; Ideas for more:
- ;; 1. Jump to package homepage
- '(("d" counsel-package-action-describe "describe package")))
+ '(("d" counsel-package-action-describe "describe package")
+ ("h" counsel-package-action-homepage "open package
homepage")))
;;** `counsel-tmm'
(defvar tmm-km-list nil)
- [elpa] master 4dd650c 257/348: Make counsel-ag prompt for extra args when using prefix arg., (continued)
- [elpa] master 4dd650c 257/348: Make counsel-ag prompt for extra args when using prefix arg., Oleh Krehel, 2017/04/08
- [elpa] master a77a265 263/348: Set `outline-regexp' directory local, Oleh Krehel, 2017/04/08
- [elpa] master 109170b 264/348: Remap `backward-delete-char-untabify' to `ivy-backward-delete-char', Oleh Krehel, 2017/04/08
- [elpa] master 039c58a 254/348: counsel.el: added three new counsel commands., Oleh Krehel, 2017/04/08
- [elpa] master 5b66c18 267/348: Update copyright year, Oleh Krehel, 2017/04/08
- [elpa] master 1870f41 272/348: counsel.el: Fix counsel-command-history, Oleh Krehel, 2017/04/08
- [elpa] master c2b0d30 284/348: Add missing parameter for ag, Oleh Krehel, 2017/04/08
- [elpa] master 58372db 281/348: Add command `counsel-mark-ring', Oleh Krehel, 2017/04/08
- [elpa] master 5f732cd 297/348: Add compatibility with evil-ex-search., Oleh Krehel, 2017/04/08
- [elpa] master d23d1fe 296/348: swiper.el (swiper-font-lock-exclude): Add nix-mode, Oleh Krehel, 2017/04/08
- [elpa] master 4dcd315 292/348: counsel.el: Improve counsel-package,
Oleh Krehel <=
- [elpa] master 2b8d324 299/348: counsel.el (counsel-org-tag-action): Fix "C-M-m", Oleh Krehel, 2017/04/08
- [elpa] master c5fa8c2 308/348: Run wgrep-setup when entering ivy-occur-grep-mode, Oleh Krehel, 2017/04/08
- [elpa] master 90aaf8b 307/348: ivy.el (ivy-completing-read): Set :caller to this-command, Oleh Krehel, 2017/04/08
- [elpa] master e9219e7 313/348: ivy-hydra.el: Use ivy-minibuffer-map, Oleh Krehel, 2017/04/08
- [elpa] master 7f5b268 311/348: ivy-hydra.el: Add an alternative "M-o" using hydra, Oleh Krehel, 2017/04/08
- [elpa] master beffa78 323/348: counsel.el (counsel-grep-base-command): Single quote regex, Oleh Krehel, 2017/04/08
- [elpa] master 7b453c8 329/348: ivy.el (ivy-completion-in-region-action): Work for cons cells, Oleh Krehel, 2017/04/08
- [elpa] master 1e739de 331/348: ivy-overlay.el (ivy-left-pad): Trim cands to window-width, Oleh Krehel, 2017/04/08
- [elpa] master 16b002a 343/348: doc/Changelog.org: Link all issues, Oleh Krehel, 2017/04/08
- [elpa] master e1351c8 348/348: Merge commit 'ace01d5603ddf49b025eb811b612af72ec38dcfb' from swiper, Oleh Krehel, 2017/04/08