mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-05 09:01:40 -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
|
||||
|
||||
(define-derived-mode ein:notebooklist-mode fundamental-mode "ein:notebooklist"
|
||||
"IPython notebook list mode.")
|
||||
(define-derived-mode ein:notebooklist-mode special-mode "ein:notebooklist"
|
||||
"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-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))
|
||||
(define-key map "\C-c\C-r" 'ein:notebooklist-reload)
|
||||
(define-key map "g" 'ein:notebooklist-reload)
|
||||
(define-key map "p" 'ein:notebooklist-prev-item)
|
||||
(define-key map "n" 'ein:notebooklist-next-item)
|
||||
(define-key map "q" 'bury-buffer)
|
||||
(easy-menu-define ein:notebooklist-menu map "EIN Notebook List Mode Menu"
|
||||
`("EIN Notebook List"
|
||||
,@(ein:generate-menu
|
||||
'(("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))))))
|
||||
(easy-menu-define ein:notebooklist-menu ein:notebooklist-mode-map
|
||||
"EIN Notebook List Mode Menu"
|
||||
`("EIN Notebook List"
|
||||
,@(ein:generate-menu
|
||||
'(("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)
|
||||
|
||||
|
|
|
@ -73,17 +73,17 @@
|
|||
(beginning-of-line 0)
|
||||
(recenter 0))
|
||||
|
||||
(define-derived-mode ein:pager-mode fundamental-mode "ein:pager"
|
||||
"IPython notebook pager mode."
|
||||
(view-mode)
|
||||
(define-derived-mode ein:pager-mode view-mode "ein:pager"
|
||||
"IPython notebook pager mode.
|
||||
Commands:
|
||||
\\{ein:pager-mode-map}"
|
||||
(font-lock-mode))
|
||||
|
||||
(setq ein:pager-mode-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 "q" 'bury-buffer)
|
||||
map)
|
||||
(defvar ein:pager-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map "\C-c\C-b" 'ein:pager-goto-docstring-bset-loc)
|
||||
map)
|
||||
"Keymap for ein:pager-mode.")
|
||||
|
||||
(provide 'ein-pager)
|
||||
|
||||
|
|
|
@ -244,15 +244,17 @@ shared output buffer. You can open the buffer by the command
|
|||
|
||||
;;; 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."
|
||||
(font-lock-mode))
|
||||
|
||||
(let ((map ein:shared-output-mode-map))
|
||||
(define-key map "\C-c\C-x" 'ein:tb-show)
|
||||
(define-key map "\M-." 'ein:pytools-jump-to-source-command)
|
||||
(define-key map (kbd "C-c C-.") 'ein:pytools-jump-to-source-command)
|
||||
(define-key map "q" 'bury-buffer))
|
||||
(defvar ein:shared-output-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map "\C-c\C-x" 'ein:tb-show)
|
||||
(define-key map "\M-." 'ein:pytools-jump-to-source-command)
|
||||
(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)
|
||||
|
||||
|
|
|
@ -128,7 +128,7 @@
|
|||
(nb (oref traceback :source-notebook))
|
||||
(ws (first (ein:$notebook-worksheets nb)))
|
||||
(cells (ein:worksheet-get-cells ws))
|
||||
|
||||
|
||||
(it (find cellnum cells :key #'(lambda (x)
|
||||
(if (same-class-p x 'ein:codecell)
|
||||
(oref x :input-prompt-number))))))
|
||||
|
@ -163,16 +163,18 @@
|
|||
(interactive)
|
||||
(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))
|
||||
|
||||
(add-hook 'ein:traceback-mode-hook 'ein:truncate-lines-on)
|
||||
|
||||
(let ((map ein:traceback-mode-map))
|
||||
(define-key map (kbd "RET") 'ein:tb-jump-to-source-at-point-command)
|
||||
(define-key map "p" 'ein:tb-prev-item)
|
||||
(define-key map "n" 'ein:tb-next-item)
|
||||
(define-key map "q" 'bury-buffer))
|
||||
(defvar ein:traceback-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(define-key map (kbd "RET") 'ein:tb-jump-to-source-at-point-command)
|
||||
(define-key map "p" 'ein:tb-prev-item)
|
||||
(define-key map "n" 'ein:tb-next-item)
|
||||
map)
|
||||
"Keymap for ein:traceback-mode.")
|
||||
|
||||
(provide 'ein-traceback)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue