mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-05 09:01:40 -05:00
Add [+] button
This commit is contained in:
parent
1fe2c1cb15
commit
1848fc2f6a
1 changed files with 39 additions and 20 deletions
|
@ -40,6 +40,7 @@
|
|||
|
||||
(defvar ein:header-line-format '(:eval (ein:header-line)))
|
||||
(defvar ein:header-line-tab-map (make-sparse-keymap))
|
||||
(defvar ein:header-line-insert-tab-map (make-sparse-keymap))
|
||||
(defvar ein:header-line-tab-help
|
||||
"\
|
||||
mouse-1 (left click) : switch to this tab
|
||||
|
@ -222,26 +223,33 @@ insert-prev insert-next move-prev move-next)"
|
|||
(get-name (oref tab :get-name)))
|
||||
(ein:join-str
|
||||
" "
|
||||
(loop for i from 1
|
||||
for elem in list
|
||||
if (eq elem current)
|
||||
collect (propertize
|
||||
(or (ein:and-let* ((name (funcall get-name elem)))
|
||||
(format "/%d: %s\\" i name))
|
||||
(format "/%d\\" i))
|
||||
'ein:worksheet elem
|
||||
'keymap ein:header-line-tab-map
|
||||
'help-echo ein:header-line-tab-help
|
||||
'mouse-face 'highlight
|
||||
'face 'ein:notification-tab-selected)
|
||||
else
|
||||
collect (propertize
|
||||
(format "/%d\\" i)
|
||||
'ein:worksheet elem
|
||||
'keymap ein:header-line-tab-map
|
||||
'help-echo ein:header-line-tab-help
|
||||
'mouse-face 'highlight
|
||||
'face 'ein:notification-tab-normal)))))
|
||||
(append
|
||||
(loop for i from 1
|
||||
for elem in list
|
||||
if (eq elem current)
|
||||
collect (propertize
|
||||
(or (ein:and-let* ((name (funcall get-name elem)))
|
||||
(format "/%d: %s\\" i name))
|
||||
(format "/%d\\" i))
|
||||
'ein:worksheet elem
|
||||
'keymap ein:header-line-tab-map
|
||||
'help-echo ein:header-line-tab-help
|
||||
'mouse-face 'highlight
|
||||
'face 'ein:notification-tab-selected)
|
||||
else
|
||||
collect (propertize
|
||||
(format "/%d\\" i)
|
||||
'ein:worksheet elem
|
||||
'keymap ein:header-line-tab-map
|
||||
'help-echo ein:header-line-tab-help
|
||||
'mouse-face 'highlight
|
||||
'face 'ein:notification-tab-normal))
|
||||
(list
|
||||
(propertize "[+]"
|
||||
'keymap ein:header-line-insert-tab-map
|
||||
'help-echo "Click (mouse-1) to insert a new tab."
|
||||
'mouse-face 'highlight
|
||||
'face 'ein:notification-tab-normal))))))
|
||||
|
||||
|
||||
;;; Header line
|
||||
|
@ -255,6 +263,9 @@ insert-prev insert-next move-prev move-next)"
|
|||
(define-key map [header-line mouse-2] 'ein:header-line-delete-this-tab)
|
||||
(define-key map [header-line mouse-3] 'ein:header-line-pop-to-this-tab))
|
||||
|
||||
(define-key ein:header-line-insert-tab-map
|
||||
[header-line mouse-1] 'ein:header-line-insert-new-tab)
|
||||
|
||||
(defmacro ein:with-destructuring-bind-key-event (key-event &rest body)
|
||||
(declare (debug (form &rest form))
|
||||
(indent 1))
|
||||
|
@ -312,6 +323,14 @@ Generated by `ein:header-line-define-mouse-commands'" slot)
|
|||
ein:header-line-move-next-tab :move-next
|
||||
)
|
||||
|
||||
(defun ein:header-line-insert-new-tab (key-event)
|
||||
"Insert new tab."
|
||||
(interactive "e")
|
||||
(ein:header-line-select-window key-event)
|
||||
(let ((notification (oref ein:%notification% :tab)))
|
||||
(funcall (oref notification :insert-next)
|
||||
(car (last (funcall (oref notification :get-list)))))))
|
||||
|
||||
(defun ein:header-line ()
|
||||
(format
|
||||
"IP[%s]: %s"
|
||||
|
|
Loading…
Add table
Reference in a new issue