diff options
author | EuAndreh <eu@euandre.org> | 2018-04-01 22:15:34 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2018-04-01 22:15:34 -0300 |
commit | c6098c30ca5a7c7eabe5d31f6ba748ec34e0858c (patch) | |
tree | 2115e0dcf02f15cb89bbbf6a81b890efb7345a6c | |
parent | Add pixels as submodule and push to rsyncent master (diff) | |
download | dotfiles-c6098c30ca5a7c7eabe5d31f6ba748ec34e0858c.tar.gz dotfiles-c6098c30ca5a7c7eabe5d31f6ba748ec34e0858c.tar.xz |
Add re-jump.el configuration
-rw-r--r-- | emacs/re-jump.el | 57 | ||||
-rw-r--r-- | spacemacs.el | 3 |
2 files changed, 59 insertions, 1 deletions
diff --git a/emacs/re-jump.el b/emacs/re-jump.el new file mode 100644 index 0000000..b86728f --- /dev/null +++ b/emacs/re-jump.el @@ -0,0 +1,57 @@ +;; Taken from: +;; https://github.com/oliyh/re-jump.el + +;;; re-jump.el --- emacs navigation for re-frame projects + +;; Copyright © 2017 Oliver Hine +;; +;; Author: Oliver Hine + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see <http://www.gnu.org/licenses/>. + +;; This file is not part of GNU Emacs. + +;;; Commentary: + +;; Jump to registrations of re-frame subscriptions, event handlers and fx + +;;; Code: +(require 'cider-util) +(require 'cider-resolve) +(require 'cider-client) +(require 'cider-common) +(require 'cider-interaction) +(require 'clojure-mode) + +(defun re-frame-jump-to-reg () + (interactive) + (let* ((kw (cider-symbol-at-point 'look-back)) + (ns-qualifier (and + (string-match "^:+\\(.+\\)/.+$" kw) + (match-string 1 kw))) + (kw-ns (if ns-qualifier + (cider-resolve-alias (cider-current-ns) ns-qualifier) + (cider-current-ns))) + (kw-to-find (concat "::" (replace-regexp-in-string "^:+\\(.+/\\)?" "" kw)))) + + (when (and ns-qualifier (string= kw-ns (cider-current-ns))) + (error "Could not resolve alias \"%s\" in %s" ns-qualifier (cider-current-ns))) + + (progn (cider-find-ns "-" kw-ns) + (search-forward-regexp (concat "reg-[a-zA-Z-]*[ \\\n]+" kw-to-find) nil 'noerror)))) + +(global-set-key (kbd "M->") 're-frame-jump-to-reg) + +(provide 're-jump) +;;; re-jump.el ends here diff --git a/spacemacs.el b/spacemacs.el index 48d5db0..4c500e9 100644 --- a/spacemacs.el +++ b/spacemacs.el @@ -567,7 +567,8 @@ It is called immediately after `dotspacemacs/init', before layer configuration clojurex-mode cider-clojure-interaction-mode)) -(defvar custom-el-files '("~/dev/nu/nudev/ides/emacs/nu.el")) +(defvar custom-el-files '("~/dev/nu/nudev/ides/emacs/nu.el" + "~/annex/dev/code/dotfiles/emacs/re-jump.el")) (defvar custom-keybindings '(("C-x M-b" . ibuffer) ("M-SPC" . (lambda () (interactive) (just-one-space -1))) |