39 lines
1.5 KiB
EmacsLisp
39 lines
1.5 KiB
EmacsLisp
;;; tools/ein/config.el -*- lexical-binding: t; -*-
|
|
|
|
(defvar +ein-notebook-dir "~/"
|
|
"Default directory from where Jupyter notebooks are to be opened.")
|
|
|
|
(def-setting! :ein-notebook-dir (dir)
|
|
"Set the default directory from where to open Jupyter notebooks."
|
|
`(setq +ein-notebook-dir ,dir))
|
|
|
|
|
|
(def-package! ein
|
|
:commands (ein:notebooklist-open ein:notebooklist-login ein:jupyter-server-start)
|
|
:init
|
|
(set! :popup "\\*ein:*" :ignore)
|
|
(set! :popup "\\*ein:notebooklist *" '((side . left)) '((size . 40) (select)))
|
|
;; Ace-link on notebook list buffers
|
|
(add-hook! 'ein:notebooklist-mode-hook
|
|
(map! :map ein:notebooklist-mode-map
|
|
"o" #'+ein/ace-link-ein))
|
|
;; Ein uses request to store http cookies. Store them in the cache dir.
|
|
(setq request-storage-directory (concat doom-cache-dir "/request"))
|
|
;; Auto complete with company
|
|
(set! :company-backend '(ein:notebook-multilang-mode ein:notebook-python-mode ein:notebook-plain-mode)
|
|
'ein:company-backend)
|
|
:config
|
|
;; Manually load the autoloads of EIN. This takes time...
|
|
(load "ein-loaddefs.el" nil t t)
|
|
(setq
|
|
;; Slide images into rows so that we can navigate buffers with images more easily
|
|
ein:slice-image t
|
|
ein:jupyter-default-notebook-directory +ein-notebook-dir
|
|
ein:jupyter-default-server-command "/usr/bin/jupyter"
|
|
ein:jupyter-server-args '("--no-browser")
|
|
ein:notebook-modes
|
|
'(ein:notebook-multilang-mode ein:notebook-python-mode ein:notebook-plain-mode))
|
|
;; Avy is required for showing links in the notebook list with ace-link.
|
|
(require 'avy))
|
|
|