Skip to content

Instantly share code, notes, and snippets.

@karansag
Created August 31, 2016 21:07
Show Gist options
  • Save karansag/7c1ad0caf1b1eae12a87f8376d6d6e19 to your computer and use it in GitHub Desktop.
Save karansag/7c1ad0caf1b1eae12a87f8376d6d6e19 to your computer and use it in GitHub Desktop.
(defun null? (x)
(eq nil x))
;; (advice-add 'cider-refresh :around #'custom-cider-refresh)
(defun cider-repl-open-current-ns ()
(interactive)
(cider-find-ns nil (cider-current-ns)))
(global-set-key (kbd "C-c m") 'cider-repl-open-current-ns)
(defun cider-test-get-current-file-test-ns ()
(interactive)
(funcall cider-test-infer-test-ns (cider-current-ns t)))
(defun cider-test-find-test-ns ()
(interactive)
(cider--find-ns
(cider-test-get-current-file-test-ns)
t))
;; Listing all clj buffers
(defun clj-buffers ()
;; (cider-switch-to-repl-buffer)
(defun cc (bflist)
(let* ((filename (buffer-file-name (car bflist))))
(if (null? bflist)
nil
(if (null? filename)
(cc (cdr bflist))
(if (string-match ".clj$" filename)
(cons (car bflist) (cc (cdr bflist)))
(cc (cdr bflist)))))))
(cc (buffer-list)))
(require 'cl-lib)
(defun cider-repl-recent-ns ()
(interactive)
(cl-remove-if 'null?
(mapcar (lambda (b)
(with-current-buffer b
(clojure-find-ns)))
(clj-buffers))))
;; Cycling through REPL namespaces
(defvar my/recent-ns nil)
(defun my/cycle-cider-repl-ns ()
(interactive)
(if (null? my/recent-ns)
(setq my/recent-ns (cider-repl-recent-ns)))
(cider-repl-set-ns (car my/recent-ns))
(setq my/recent-ns (cdr my/recent-ns)))
(global-set-key (kbd "C-c n") 'my/cycle-cider-repl-ns)
(global-set-key (kbd "C-c C-n") 'my/cycle-cider-repl-ns)
(add-hook 'clojure-mode-hook
(lambda () (setq my/recent-ns nil)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment