diff options
Diffstat (limited to 'cider-interaction-mode.el')
-rw-r--r-- | cider-interaction-mode.el | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/cider-interaction-mode.el b/cider-interaction-mode.el new file mode 100644 index 00000000..f9826850 --- /dev/null +++ b/cider-interaction-mode.el @@ -0,0 +1,116 @@ +;;; cider-interaction-mode.el --- Minor mode for REPL interactions + +;; Copyright © 2012-2013 Tim King, Phil Hagelberg +;; Copyright © 2013 Bozhidar Batsov, Hugo Duncan, Steve Purcell +;; +;; Author: Tim King <kingtim@gmail.com> +;; Phil Hagelberg <technomancy@gmail.com> +;; Bozhidar Batsov <bozhidar@batsov.com> +;; Hugo Duncan <hugo@hugoduncan.org> +;; Steve Purcell <steve@sanityinc.com> + +;; 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: + +;; Minor mode for REPL interactions. + +;;; Code: + +(require 'cider-interaction) + +(defvar cider-interaction-mode-map + (let ((map (make-sparse-keymap))) + (define-key map (kbd "M-.") 'cider-jump) + (define-key map (kbd "M-,") 'cider-jump-back) + (define-key map (kbd "M-TAB") 'complete-symbol) + (define-key map (kbd "C-M-x") 'cider-eval-expression-at-point) + (define-key map (kbd "C-c C-c") 'cider-eval-expression-at-point) + (define-key map (kbd "C-x C-e") 'cider-eval-last-expression) + (define-key map (kbd "C-c C-e") 'cider-eval-last-expression) + (define-key map (kbd "C-c C-p") 'cider-pprint-eval-last-expression) + (define-key map (kbd "C-c C-r") 'cider-eval-region) + (define-key map (kbd "C-c C-n") 'cider-eval-ns-form) + (define-key map (kbd "C-c C-m") 'cider-macroexpand-1) + (define-key map (kbd "C-c M-m") 'cider-macroexpand-all) + (define-key map (kbd "C-c M-n") 'cider-set-ns) + (define-key map (kbd "C-c C-d") 'cider-doc) + (define-key map (kbd "C-c C-s") 'cider-src) + (define-key map (kbd "C-c C-z") 'cider-switch-to-repl-buffer) + (define-key map (kbd "C-c C-Z") 'cider-switch-to-relevant-repl-buffer) + (define-key map (kbd "C-c M-o") 'cider-find-and-clear-repl-buffer) + (define-key map (kbd "C-c C-k") 'cider-load-current-buffer) + (define-key map (kbd "C-c C-l") 'cider-load-file) + (define-key map (kbd "C-c C-b") 'cider-interrupt) + (define-key map (kbd "C-c C-j") 'cider-javadoc) + (define-key map (kbd "C-c M-s") 'cider-selector) + (define-key map (kbd "C-c M-r") 'cider-rotate-connection) + (define-key map (kbd "C-c M-d") 'cider-display-current-connection-info) + (define-key map (kbd "C-c C-q") 'cider-quit) + map)) + +;;;###autoload +(define-minor-mode cider-interaction-mode + "Minor mode for REPL interaction from a Clojure buffer. + +\\{cider-interaction-mode-map}" + nil + " cider" + cider-interaction-mode-map + (make-local-variable 'completion-at-point-functions) + (add-to-list 'completion-at-point-functions + 'cider-complete-at-point)) + +(easy-menu-define cider-interaction-mode-menu cider-interaction-mode-map + "Menu for CIDER interaction mode" + '("CIDER" + ["Jump" cider-jump] + ["Jump back" cider-jump-back] + "--" + ["Complete symbol" complete-symbol] + "--" + ["Eval expression at point" cider-eval-expression-at-point] + ["Eval last expression" cider-eval-last-expression] + ["Eval last expression in popup buffer" cider-pprint-eval-last-expression] + ["Eval region" cider-eval-region] + ["Eval ns form" cider-eval-ns-form] + "--" + ["Load current buffer" cider-load-current-buffer] + ["Load file" cider-load-file] + "--" + ["Macroexpand-1 last expression" cider-macroexpand-1] + ["Macroexpand-all last expression" cider-macroexpand-all] + "--" + ["Display documentation" cider-doc] + ["Display Source" cider-src] + ["Display JavaDoc" cider-javadoc] + "--" + ["Set ns" cider-set-ns] + ["Switch to REPL" cider-switch-to-repl-buffer] + ["Switch to Relevant REPL" cider-switch-to-relevant-repl-buffer] + ["Toggle REPL Pretty Print" cider-pretty-toggle] + ["Clear REPL" cider-find-and-clear-repl-buffer] + ["Interrupt" cider-interrupt] + ["Quit" cider-quit] + ["Restart" cider-restart] + "--" + ["Display current nrepl connection" cider-display-current-connection-info] + ["Rotate current nrepl connection" cider-rotate-connection] + "--" + ["Version info" cider-version])) + +(provide 'cider-interaction-mode) +;;; cider-interaction-mode.el ends here |