doomemacs/modules/feature/jump/autoload.el
2017-05-15 20:44:25 +02:00

50 lines
1.5 KiB
EmacsLisp

;;; feature/jump/autoload.el
;;;###autoload
(defun +jump/definition (&optional other-window)
"Find definition, falling back to dumb-jump, then
`evil-goto-definition' otherwise."
(interactive "p")
(let ((orig-pt (point))
(orig-file (buffer-file-name))
(sym (thing-at-point 'symbol t)))
(cond ((ignore-errors (xref-find-definitions sym)
t))
((and (fboundp 'dumb-jump-go)
(progn (dumb-jump-go)
(and (= orig-pt (point))
(equal (file-truename orig-file)
(file-truename buffer-file-name))))))
((fboundp 'counsel-ag)
(counsel-ag sym (doom-project-root)))
(t (error "Couldn't find '%s'" sym)))))
;;;###autoload
(defun +jump/references (&optional other-window)
"TODO"
(interactive "p")
(let ((sym (thing-at-point 'symbol t)))
(cond ((progn
(ignore-errors (xref-find-references sym)
t)))
((fboundp 'counsel-ag)
(counsel-ag sym (doom-project-root)))
(t (error "Couldn't find '%s'" sym)))))
;;;###autoload
(defun +jump/online (where &optional search)
"TODO"
(interactive
(list (completing-read "Search on: "
(mapcar #'car +jump-search-url-alist)
nil t)))
(let ((url (cdr (assoc where +jump-search-url-alist)))
(search (or search (read-string "Query: "))))
(browse-url (format url (url-encode-url search)))))