diff --git a/README.md b/README.md index 8ce4f42..626777d 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,10 @@ Description This program is derived from comint-mode and provides the following features. - * token completion, same as Node.js REPL - * file name completion in string - * incremental history search - * sending JavaScript codes to REPL +* token completion, same as Node.js REPL +* file name completion in string +* incremental history search +* sending JavaScript codes to REPL Usage ----- @@ -19,20 +19,24 @@ Usage Put this file in your Emacs lisp path (e.g. ~/.emacs.d/site-lisp) and add the following line to your .emacs: - (require 'nodejs-repl) +```elisp +(require 'nodejs-repl) +``` Type `M-x nodejs-repl` to run Node.js REPL. See also `comint-mode` to check key bindings. You can define key bindings to send JavaScript codes to REPL like below: - (add-hook 'js-mode-hook - (lambda () - (define-key js-mode-map (kbd "C-x C-e") 'nodejs-repl-send-last-expression) - (define-key js-mode-map (kbd "C-c C-j") 'nodejs-repl-send-line) - (define-key js-mode-map (kbd "C-c C-r") 'nodejs-repl-send-region) - (define-key js-mode-map (kbd "C-c C-l") 'nodejs-repl-load-file) - (define-key js-mode-map (kbd "C-c C-z") 'nodejs-repl-switch-to-repl))) +```elisp +(add-hook 'js-mode-hook + (lambda () + (define-key js-mode-map (kbd "C-x C-e") 'nodejs-repl-send-last-expression) + (define-key js-mode-map (kbd "C-c C-j") 'nodejs-repl-send-line) + (define-key js-mode-map (kbd "C-c C-r") 'nodejs-repl-send-region) + (define-key js-mode-map (kbd "C-c C-l") 'nodejs-repl-load-file) + (define-key js-mode-map (kbd "C-c C-z") 'nodejs-repl-switch-to-repl))) +``` When a version manager such as nvm is used to run different versions of Node.js, it is often desirable to start the REPL of the version @@ -40,19 +44,23 @@ specified in the .nvmrc file per project. In such case, customize the `nodejs-repl-command` variable with a function symbol. That function should query nvm for the Node.js command to run. For example: - (require 'nodejs-repl) - (defun nvm-which () - (let* ((shell (concat (getenv "SHELL") " -l -c 'nvm which'")) - (output (shell-command-to-string shell))) - (cadr (split-string output "[\n]+" t)))) - (setq nodejs-repl-command #'nvm-which) +```elisp +(require 'nodejs-repl) +(defun nvm-which () + (let* ((shell (concat (getenv "SHELL") " -l -c 'nvm which'")) + (output (shell-command-to-string shell))) + (cadr (split-string output "[\n]+" t)))) +(setq nodejs-repl-command #'nvm-which) +``` The `nvm-which` function can be simpler, and perhaps can run faster, too, if using Bash: - (defun nvm-which () - (let ((output (shell-command-to-string "source ~/.nvm/nvm.sh; nvm which"))) - (cadr (split-string output "[\n]+" t)))) +```elisp +(defun nvm-which () + (let ((output (shell-command-to-string "source ~/.nvm/nvm.sh; nvm which"))) + (cadr (split-string output "[\n]+" t)))) +``` Author ------ @@ -63,7 +71,7 @@ Takeshi Arabiki (abicky) Copyright and License --------------------- -Copyright (C) 2012-2017 Takeshi Arabiki (abicky) +Copyright (C) 2012-2018 Takeshi Arabiki (abicky) 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 diff --git a/nodejs-repl.el b/nodejs-repl.el index 9a16def..f7bac73 100644 --- a/nodejs-repl.el +++ b/nodejs-repl.el @@ -44,6 +44,26 @@ ;; (define-key js-mode-map (kbd "C-c C-l") 'nodejs-repl-load-file) ;; (define-key js-mode-map (kbd "C-c C-z") 'nodejs-repl-switch-to-repl))) ;; +;; When a version manager such as nvm is used to run different versions +;; of Node.js, it is often desirable to start the REPL of the version +;; specified in the .nvmrc file per project. In such case, customize the +;; `nodejs-repl-command` variable with a function symbol. That function +;; should query nvm for the Node.js command to run. For example: +;; +;; (require 'nodejs-repl) +;; (defun nvm-which () +;; (let* ((shell (concat (getenv "SHELL") " -l -c 'nvm which'")) +;; (output (shell-command-to-string shell))) +;; (cadr (split-string output "[\n]+" t)))) +;; (setq nodejs-repl-command #'nvm-which) +;; +;; The `nvm-which` function can be simpler, and perhaps can run faster, +;; too, if using Bash: +;; +;; (defun nvm-which () +;; (let ((output (shell-command-to-string "source ~/.nvm/nvm.sh; nvm which"))) +;; (cadr (split-string output "[\n]+" t)))) +;; (require 'cc-mode) (require 'comint)