[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master cafcfb9 10/18: Allow "C-." to jump to current symbol defin
From: |
Oleh Krehel |
Subject: |
[elpa] master cafcfb9 10/18: Allow "C-." to jump to current symbol definition |
Date: |
Mon, 20 Apr 2015 12:39:05 +0000 |
branch: master
commit cafcfb9b588e0dd0f0279ba027a0d33a02b1263f
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>
Allow "C-." to jump to current symbol definition
* counsel.el (counsel-describe-map): New defvar.
(counsel-find-symbol): New defun.
(counsel--find-symbol): New defun - jump to definition of function or
symbol or library.
(counsel-describe-variable): Use `counsel-describe-map'.
(counsel-describe-function): Use `counsel-describe-map'.
---
counsel.el | 30 ++++++++++++++++++++++++++++--
1 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/counsel.el b/counsel.el
index 33364f7..ee9535a 100644
--- a/counsel.el
+++ b/counsel.el
@@ -40,6 +40,32 @@
(counsel--generic
(lambda (str) (all-completions str obarray))))
+(defvar counsel-describe-map
+ (let ((map (make-sparse-keymap)))
+ (define-key map (kbd "C-.") 'counsel-find-symbol)
+ map))
+
+(defun counsel-find-symbol ()
+ "Jump to the definition of the current symbol."
+ (interactive)
+ (setq ivy--action 'counsel--find-symbol)
+ (setq ivy-exit 'done)
+ (exit-minibuffer))
+
+(defun counsel--find-symbol ()
+ (let ((sym (read ivy--current)))
+ (cond ((boundp sym)
+ (find-variable sym))
+ ((fboundp sym)
+ (find-function sym))
+ ((or (featurep sym)
+ (locate-library
+ (prin1-to-string sym)))
+ (find-library (prin1-to-string sym)))
+ (t
+ (error "Couldn't fild definition of %s"
+ sym)))))
+
(defun counsel-describe-variable (variable &optional buffer frame)
"Forward to (`describe-variable' VARIABLE BUFFER FRAME)."
(interactive
@@ -59,7 +85,7 @@
(and (boundp vv) (not (keywordp vv))))
(push (symbol-name vv) cands))))
cands)
- nil nil nil preselect))
+ nil nil counsel-describe-map preselect))
(list (if (equal val "")
v
(intern val)))))
@@ -81,7 +107,7 @@
(when (fboundp x)
(push (symbol-name x) cands))))
cands)
- nil nil nil preselect))
+ nil nil counsel-describe-map preselect))
(list (if (equal val "")
fn (intern val)))))
(describe-function function))
- [elpa] master updated (d4a79d3 -> 2f4c2c1), Oleh Krehel, 2015/04/20
- [elpa] master d2f754d 02/18: ivy.el (ivy-alt-done): Update for 0 candidates, Oleh Krehel, 2015/04/20
- [elpa] master 378ee58 03/18: Add "C-v" and "M-v" scrolling, Oleh Krehel, 2015/04/20
- [elpa] master f5a32bf 04/18: Add a command to grep the current git repo, Oleh Krehel, 2015/04/20
- [elpa] master 9f21e1d 06/18: Add a matching optimization, Oleh Krehel, 2015/04/20
- [elpa] master a9a4e81 05/18: counsel.el (counsel-git-grep): Fix the default-directory, Oleh Krehel, 2015/04/20
- [elpa] master 539fe7d 07/18: ivy.el (ivy-completions): Fix an optimization, Oleh Krehel, 2015/04/20
- [elpa] master 23c0e6a 08/18: ivy.el (ivy-done): Update for non-matching file names, Oleh Krehel, 2015/04/20
- [elpa] master a94ca83 01/18: swiper.el: Add a work-around for window-start not being current, Oleh Krehel, 2015/04/20
- [elpa] master cafcfb9 10/18: Allow "C-." to jump to current symbol definition,
Oleh Krehel <=
- [elpa] master d0f3826 11/18: ivy.el (ivy--preselect-index): Give priority to perfect match, Oleh Krehel, 2015/04/20
- [elpa] master 297008b 09/18: Allow to customize the file sorting order, Oleh Krehel, 2015/04/20
- [elpa] master 3282f78 13/18: Speed up the default file sorting even more, Oleh Krehel, 2015/04/20
- [elpa] master 525a19d 14/18: Propertize directories with ivy-subdir face, Oleh Krehel, 2015/04/20
- [elpa] master 10af5a6 16/18: ivy.el (ivy-done): Still expand "./" though, Oleh Krehel, 2015/04/20
- [elpa] master e71e4d2 12/18: Speed up the default file sorting, Oleh Krehel, 2015/04/20
- [elpa] master 61a95c4 15/18: Don't expand the default when completing file names, Oleh Krehel, 2015/04/20
- [elpa] master efa18ec 17/18: swiper.el: Bump version, Oleh Krehel, 2015/04/20
- [elpa] master 2f4c2c1 18/18: Merge commit 'efa18eca10e5a0e05043f872cf9945842bb3a034' from swiper, Oleh Krehel, 2015/04/20