change to favorite buffer functionality done. M-` is the keybinding

This commit is contained in:
Sameer Rahmani 2017-08-21 12:33:29 +01:00
parent b8fbf43f5e
commit 93fc64e873
2 changed files with 17 additions and 2 deletions

View File

@ -1,5 +1,10 @@
(require 'extensions/clojure/core)
;;;###autoload
(defun set-clojure-favorite-buffer ()
"Set the favorite buffer to cider repl"
(setq *favorite-buffer* "\*cider-repl\s.*\*"))
;;;###autoload
(defun extensions/clojure-initialize ()
; Clojure development initialization
@ -11,6 +16,8 @@
(add-to-list 'auto-mode-alist '("\\.cljs$" . clojurescript-mode))
(add-hook 'cider-mode-hook #'eldoc-mode)
(add-hook 'cider-mode-hook #'set-clojure-favorite-buffer)
(add-hook 'clojure-mode-hook #'paredit-mode)
(setq cider-cljs-lein-repl "(do (use 'figwheel-sidecar.repl-api) (start-figwheel!) (cljs-repl))")

View File

@ -10,13 +10,15 @@ Repeated invocations toggle between the two most recently open buffers."
(interactive)
(switch-to-buffer (other-buffer (current-buffer) 1)))
(defun buffer-match-p (buf)
(string-match-p *favorite-buffer* (buffer-name buf)))
(defun switch-to-buffer-by-regex ()
"Switch to buffer which the name match the *favorite-buffer* regex."
(interactive)
(if *favorite-buffer*
(switch-to-buffer
(car (remove-if-not (apply-partially #'string-match-p *favorite-buffer*)
(buffer-list))))
(car (remove-if-not #'buffer-match-p (buffer-list))))
(eshell)))
(defun switch-to-favorite-buffer ()
@ -31,6 +33,12 @@ For exampe in clojure mode it would the name of repl buffer. The *favorite-buff
(if (string= (buffer-name) "*eshell*")
(switch-to-previous-buffer)
(eshell))))
(defun reset-favorite-buffer-value ()
(message "reseting favorite buffer value...")
(message *favorite-buffer*)
(setq *favorite-buffer* nil))
(add-hook 'change-major-mode-hook 'reset-favorite-buffer-value)
(provide 'extensions/editor/buffers)
;;; buffers.el ends here