mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-05 17:11:41 -05:00
derived modes inherit from special-mode or view-mode as appropriate
this means that the derived modes get all the standard keybinding in the standard way.
This commit is contained in:
parent
f10d2896a2
commit
99de3360c3
4 changed files with 50 additions and 39 deletions
|
@ -789,28 +789,35 @@ Now you can open notebook list by `ein:notebooklist-open'." url-or-port))
|
||||||
|
|
||||||
;;; Notebook list mode
|
;;; Notebook list mode
|
||||||
|
|
||||||
(define-derived-mode ein:notebooklist-mode fundamental-mode "ein:notebooklist"
|
(define-derived-mode ein:notebooklist-mode special-mode "ein:notebooklist"
|
||||||
"IPython notebook list mode.")
|
"IPython notebook list mode.
|
||||||
|
Commands:
|
||||||
|
\\{ein:notebooklist-mode-map}}"
|
||||||
|
(set (make-local-variable 'revert-buffer-function)
|
||||||
|
'ein:notebooklist-reload))
|
||||||
|
|
||||||
(defun ein:notebooklist-prev-item () (interactive) (move-beginning-of-line 0))
|
(defun ein:notebooklist-prev-item () (interactive) (move-beginning-of-line 0))
|
||||||
(defun ein:notebooklist-next-item () (interactive) (move-beginning-of-line 2))
|
(defun ein:notebooklist-next-item () (interactive) (move-beginning-of-line 2))
|
||||||
|
|
||||||
(setq ein:notebooklist-mode-map (copy-keymap widget-keymap))
|
(defvar ein:notebooklist-mode-map
|
||||||
|
(let ((map (make-sparse-keymap)))
|
||||||
|
(set-keymap-parent map (make-composed-keymap widget-keymap
|
||||||
|
special-mode-map))
|
||||||
|
(define-key map "\C-c\C-r" 'ein:notebooklist-reload)
|
||||||
|
(define-key map "p" 'ein:notebooklist-prev-item)
|
||||||
|
(define-key map "n" 'ein:notebooklist-next-item)
|
||||||
|
map)
|
||||||
|
"Keymap for ein:notebooklist-mode.")
|
||||||
|
|
||||||
(let ((map ein:notebooklist-mode-map))
|
(easy-menu-define ein:notebooklist-menu ein:notebooklist-mode-map
|
||||||
(define-key map "\C-c\C-r" 'ein:notebooklist-reload)
|
"EIN Notebook List Mode Menu"
|
||||||
(define-key map "g" 'ein:notebooklist-reload)
|
`("EIN Notebook List"
|
||||||
(define-key map "p" 'ein:notebooklist-prev-item)
|
,@(ein:generate-menu
|
||||||
(define-key map "n" 'ein:notebooklist-next-item)
|
'(("Reload" ein:notebooklist-reload)
|
||||||
(define-key map "q" 'bury-buffer)
|
("New Notebook" ein:notebooklist-new-notebook)
|
||||||
(easy-menu-define ein:notebooklist-menu map "EIN Notebook List Mode Menu"
|
("New Notebook (with name)"
|
||||||
`("EIN Notebook List"
|
ein:notebooklist-new-notebook-with-name)
|
||||||
,@(ein:generate-menu
|
("New Junk Notebook" ein:junk-new)))))
|
||||||
'(("Reload" ein:notebooklist-reload)
|
|
||||||
("New Notebook" ein:notebooklist-new-notebook)
|
|
||||||
("New Notebook (with name)"
|
|
||||||
ein:notebooklist-new-notebook-with-name)
|
|
||||||
("New Junk Notebook" ein:junk-new))))))
|
|
||||||
|
|
||||||
(provide 'ein-notebooklist)
|
(provide 'ein-notebooklist)
|
||||||
|
|
||||||
|
|
|
@ -73,17 +73,17 @@
|
||||||
(beginning-of-line 0)
|
(beginning-of-line 0)
|
||||||
(recenter 0))
|
(recenter 0))
|
||||||
|
|
||||||
(define-derived-mode ein:pager-mode fundamental-mode "ein:pager"
|
(define-derived-mode ein:pager-mode view-mode "ein:pager"
|
||||||
"IPython notebook pager mode."
|
"IPython notebook pager mode.
|
||||||
(view-mode)
|
Commands:
|
||||||
|
\\{ein:pager-mode-map}"
|
||||||
(font-lock-mode))
|
(font-lock-mode))
|
||||||
|
|
||||||
(setq ein:pager-mode-map (make-sparse-keymap))
|
(defvar ein:pager-mode-map
|
||||||
|
(let ((map (make-sparse-keymap)))
|
||||||
(let ((map ein:pager-mode-map))
|
(define-key map "\C-c\C-b" 'ein:pager-goto-docstring-bset-loc)
|
||||||
(define-key map "\C-c\C-b" 'ein:pager-goto-docstring-bset-loc)
|
map)
|
||||||
(define-key map "q" 'bury-buffer)
|
"Keymap for ein:pager-mode.")
|
||||||
map)
|
|
||||||
|
|
||||||
(provide 'ein-pager)
|
(provide 'ein-pager)
|
||||||
|
|
||||||
|
|
|
@ -244,15 +244,17 @@ shared output buffer. You can open the buffer by the command
|
||||||
|
|
||||||
;;; ein:shared-output-mode
|
;;; ein:shared-output-mode
|
||||||
|
|
||||||
(define-derived-mode ein:shared-output-mode fundamental-mode "ein:so"
|
(define-derived-mode ein:shared-output-mode special-mode "ein:so"
|
||||||
"Shared output mode."
|
"Shared output mode."
|
||||||
(font-lock-mode))
|
(font-lock-mode))
|
||||||
|
|
||||||
(let ((map ein:shared-output-mode-map))
|
(defvar ein:shared-output-mode-map
|
||||||
(define-key map "\C-c\C-x" 'ein:tb-show)
|
(let ((map (make-sparse-keymap)))
|
||||||
(define-key map "\M-." 'ein:pytools-jump-to-source-command)
|
(define-key map "\C-c\C-x" 'ein:tb-show)
|
||||||
(define-key map (kbd "C-c C-.") 'ein:pytools-jump-to-source-command)
|
(define-key map "\M-." 'ein:pytools-jump-to-source-command)
|
||||||
(define-key map "q" 'bury-buffer))
|
(define-key map (kbd "C-c C-.") 'ein:pytools-jump-to-source-command)
|
||||||
|
map)
|
||||||
|
"The map for ein:shared-output-mode-map.")
|
||||||
|
|
||||||
(add-hook 'ein:shared-output-mode-hook 'ein:truncate-lines-on)
|
(add-hook 'ein:shared-output-mode-hook 'ein:truncate-lines-on)
|
||||||
|
|
||||||
|
|
|
@ -128,7 +128,7 @@
|
||||||
(nb (oref traceback :source-notebook))
|
(nb (oref traceback :source-notebook))
|
||||||
(ws (first (ein:$notebook-worksheets nb)))
|
(ws (first (ein:$notebook-worksheets nb)))
|
||||||
(cells (ein:worksheet-get-cells ws))
|
(cells (ein:worksheet-get-cells ws))
|
||||||
|
|
||||||
(it (find cellnum cells :key #'(lambda (x)
|
(it (find cellnum cells :key #'(lambda (x)
|
||||||
(if (same-class-p x 'ein:codecell)
|
(if (same-class-p x 'ein:codecell)
|
||||||
(oref x :input-prompt-number))))))
|
(oref x :input-prompt-number))))))
|
||||||
|
@ -163,16 +163,18 @@
|
||||||
(interactive)
|
(interactive)
|
||||||
(ewoc-goto-next (oref ein:%traceback% :ewoc) 1))
|
(ewoc-goto-next (oref ein:%traceback% :ewoc) 1))
|
||||||
|
|
||||||
(define-derived-mode ein:traceback-mode fundamental-mode "ein:tb"
|
(define-derived-mode ein:traceback-mode special-mode "ein:tb"
|
||||||
(font-lock-mode))
|
(font-lock-mode))
|
||||||
|
|
||||||
(add-hook 'ein:traceback-mode-hook 'ein:truncate-lines-on)
|
(add-hook 'ein:traceback-mode-hook 'ein:truncate-lines-on)
|
||||||
|
|
||||||
(let ((map ein:traceback-mode-map))
|
(defvar ein:traceback-mode-map
|
||||||
(define-key map (kbd "RET") 'ein:tb-jump-to-source-at-point-command)
|
(let ((map (make-sparse-keymap)))
|
||||||
(define-key map "p" 'ein:tb-prev-item)
|
(define-key map (kbd "RET") 'ein:tb-jump-to-source-at-point-command)
|
||||||
(define-key map "n" 'ein:tb-next-item)
|
(define-key map "p" 'ein:tb-prev-item)
|
||||||
(define-key map "q" 'bury-buffer))
|
(define-key map "n" 'ein:tb-next-item)
|
||||||
|
map)
|
||||||
|
"Keymap for ein:traceback-mode.")
|
||||||
|
|
||||||
(provide 'ein-traceback)
|
(provide 'ein-traceback)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue