Skip to content

Commit

Permalink
Separated ne2wm-shell.el for finer autoload
Browse files Browse the repository at this point in the history
  • Loading branch information
tkf committed Apr 3, 2012
1 parent 39b23be commit d50b177
Show file tree
Hide file tree
Showing 5 changed files with 153 additions and 61 deletions.
2 changes: 1 addition & 1 deletion ne2wm-setup.el
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
;;; Code:

(require 'ne2wm-utils)
(require 'ne2wm-shell)
(require 'ne2wm-toggle)
(ne2wm:load-files "^ne2wm-plugin-.*\\.el$")
(ne2wm:load-files "^ne2wm-pst-.*\\.el$")

Expand Down
63 changes: 3 additions & 60 deletions ne2wm-shell.el → ne2wm-toggle-core.el
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
;;; ne2wm-shell.el --- shell utilities for e2wm
;;; ne2wm-toggle-core.el --- buffer-toggling utilities for e2wm

;; Copyright (C) 2012 Takafumi Arakaki

Expand All @@ -24,10 +24,6 @@

(eval-when-compile (require 'cl))
(require 'e2wm)
(require 'term nil t)
(require 'eshell nil t)
(require 'em-prompt nil t) ; to suppress warning about `eshell-emit-prompt'

(require 'ne2wm-utils)


Expand Down Expand Up @@ -68,58 +64,5 @@ which is buffer local in the *target* buffer."
(when cb-at-target (funcall cb-at-target))))))


(defun ne2wm:toggle-shell-ansi-term (&optional change-directory)
"Toggle ansi-term in the current window.
When the prefix argument is given, current working directory in
the shell will be changed to the directory of the buffer."
(interactive "P")
(let ((target-buffer
(when (and (boundp 'term-ansi-buffer-name)
term-ansi-buffer-name)
;; `term-ansi-buffer-name' is actually a buffer; strange!
(buffer-name term-ansi-buffer-name)))
(cd-cmd (format "cd %s\n" default-directory)))
(ne2wm:toggle-buffer-with-callbacks
target-buffer
(lambda () (ansi-term explicit-shell-file-name))
(when change-directory
(lambda () (term-send-raw-string cd-cmd))))))


(defun ne2wm:toggle-shell-shell (&optional change-directory)
"Toggle *shell* buffer in the current window.
When the prefix argument is given, current working directory in
the shell will be changed to the directory of the buffer."
(interactive "P")
(let ((target-buffer "*shell*")
(cd-cmd (format "cd %s\n" default-directory)))
(ne2wm:toggle-buffer-with-callbacks
target-buffer
#'shell
(when change-directory
(lambda ()
(goto-char (point-max))
(insert cd-cmd))))))


(defun ne2wm:toggle-shell-eshell (&optional change-directory)
"Toggle eshell in the current window.
When the prefix argument is given, current working directory in
the shell will be changed to the directory of the buffer."
(interactive "P")
(let ((target-buffer eshell-buffer-name)
(cd-cmd (format "cd %s\n" default-directory)))
(ne2wm:toggle-buffer-with-callbacks
target-buffer
#'eshell
(when change-directory
(lambda ()
(eshell-interactive-print cd-cmd)
(eshell-emit-prompt))))))


(provide 'ne2wm-shell)
;;; ne2wm-shell.el ends here
(provide 'ne2wm-toggle-core)
;;; ne2wm-toggle-core.el ends here
49 changes: 49 additions & 0 deletions ne2wm-toggle-eshell.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
;;; ne2wm-toggle-eshell.el --- eshell utilities for e2wm

;; Copyright (C) 2012 Takafumi Arakaki

;; Author: Takafumi Arakaki
;; Keywords: tools, window manager

;; 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/>.

;;; Commentary:

;;; Code:

(require 'ne2wm-toggle-core)
(require 'eshell nil t)
(require 'em-prompt nil t) ; to suppress warning about `eshell-emit-prompt'


;;;###autoload
(defun ne2wm:toggle-eshell (&optional change-directory)
"Toggle eshell in the current window.
When the prefix argument is given, current working directory in
the shell will be changed to the directory of the buffer."
(interactive "P")
(let ((target-buffer eshell-buffer-name)
(cd-cmd (format "cd %s\n" default-directory)))
(ne2wm:toggle-buffer-with-callbacks
target-buffer
#'eshell
(when change-directory
(lambda ()
(eshell-interactive-print cd-cmd)
(eshell-emit-prompt))))))


(provide 'ne2wm-toggle-eshell)
;;; ne2wm-toggle-eshell.el ends here
68 changes: 68 additions & 0 deletions ne2wm-toggle-shell.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
;;; ne2wm-toggle-shell.el --- shell/ansi-term utilities for e2wm

;; Copyright (C) 2012 Takafumi Arakaki

;; Author: Takafumi Arakaki
;; Keywords: tools, window manager

;; 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/>.

;;; Commentary:

;;; Code:

(require 'ne2wm-toggle-core)
(require 'term nil t)


;;;###autoload
(defun ne2wm:toggle-ansi-term (&optional change-directory)
"Toggle ansi-term in the current window.
When the prefix argument is given, current working directory in
the shell will be changed to the directory of the buffer."
(interactive "P")
(let ((target-buffer
(when (and (boundp 'term-ansi-buffer-name)
term-ansi-buffer-name)
;; `term-ansi-buffer-name' is actually a buffer; strange!
(buffer-name term-ansi-buffer-name)))
(cd-cmd (format "cd %s\n" default-directory)))
(ne2wm:toggle-buffer-with-callbacks
target-buffer
(lambda () (ansi-term explicit-shell-file-name))
(when change-directory
(lambda () (term-send-raw-string cd-cmd))))))


;;;###autoload
(defun ne2wm:toggle-shell (&optional change-directory)
"Toggle *shell* buffer in the current window.
When the prefix argument is given, current working directory in
the shell will be changed to the directory of the buffer."
(interactive "P")
(let ((target-buffer "*shell*")
(cd-cmd (format "cd %s\n" default-directory)))
(ne2wm:toggle-buffer-with-callbacks
target-buffer
#'shell
(when change-directory
(lambda ()
(goto-char (point-max))
(insert cd-cmd))))))


(provide 'ne2wm-toggle-shell)
;;; ne2wm-toggle-shell.el ends here
32 changes: 32 additions & 0 deletions ne2wm-toggle.el
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
;;;; ne2wm-toggle.el --- buffer-toggling utilities for e2wm

;; Copyright (C) 2012 Takafumi Arakaki

;; Author: Takafumi Arakaki
;; Keywords: tools, window manager

;; 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/>.

;;; Commentary:

;;; Code:

(autoload 'ne2wm:toggle-ansi-term "ne2wm-toggle-shell" nil t)
(autoload 'ne2wm:toggle-shell "ne2wm-toggle-shell" nil t)
(autoload 'ne2wm:toggle-eshell "ne2wm-toggle-eshell" nil t)

(defalias 'ne2wm:toggle-shell-ansi-term 'ne2wm:toggle-ansi-term)

(provide 'ne2wm-toggle)
;;; ne2wm-toggle.el ends here

0 comments on commit d50b177

Please sign in to comment.