|
|
@ -326,29 +326,37 @@ This handy function is a customized ripoff of custom-save-all |
|
|
(setq venv-name "emacs-default-venv"))) |
|
|
(setq venv-name "emacs-default-venv"))) |
|
|
(rlbr/setup-python-venv-dirlocals library-root venv-name) |
|
|
(rlbr/setup-python-venv-dirlocals library-root venv-name) |
|
|
venv-name)) |
|
|
venv-name)) |
|
|
|
|
|
|
|
|
|
|
|
(require 'dash) |
|
|
(defun rlbr/init-venv () |
|
|
(defun rlbr/init-venv () |
|
|
(when (eq major-mode 'python-mode) |
|
|
(when (eq major-mode 'python-mode) |
|
|
(unless (apply |
|
|
|
|
|
'string-prefix-p |
|
|
|
|
|
(mapcar |
|
|
|
|
|
'file-truename |
|
|
|
|
|
(list |
|
|
|
|
|
(pyvenv-workon-home) |
|
|
|
|
|
buffer-file-name))) |
|
|
|
|
|
(if (and pyvenv-workon (not (member pyvenv-workon (pyvenv-virtualenv-list)))) |
|
|
|
|
|
(if (y-or-n-p |
|
|
|
|
|
(format "Venv '%s' is specified but does not exist. Create it?" pyvenv-workon)) |
|
|
|
|
|
|
|
|
(unless |
|
|
|
|
|
(let ((buffer-file-name (file-truename buffer-file-name))) |
|
|
|
|
|
(-any (lambda (file-prefix) (string-prefix-p file-prefix buffer-file-name)) |
|
|
|
|
|
(mapcar 'file-truename |
|
|
|
|
|
(list |
|
|
|
|
|
(elpy-rpc-get-or-create-virtualenv) |
|
|
|
|
|
(pyvenv-workon-home))))) |
|
|
|
|
|
(cond |
|
|
|
|
|
((and pyvenv-workon (not (member pyvenv-workon (pyvenv-virtualenv-list)))) |
|
|
|
|
|
(if (y-or-n-p |
|
|
|
|
|
(format "Venv '%s' is specified but does not exist. Create it?" pyvenv-workon)) |
|
|
|
|
|
(progn |
|
|
(pyvenv-create pyvenv-workon (rlbr/get-python-executable)) |
|
|
(pyvenv-create pyvenv-workon (rlbr/get-python-executable)) |
|
|
((rlbr/save-buffer-func-to-file |
|
|
|
|
|
(let ((default-directory (elpy-library-root))) |
|
|
|
|
|
(expand-file-name |
|
|
|
|
|
".dir-locals.el")) |
|
|
|
|
|
'delete-dir-local-variable |
|
|
|
|
|
'(python pyvenv-workon)))) |
|
|
|
|
|
|
|
|
(pyvenv-workon pyvenv-workon)) |
|
|
|
|
|
(rlbr/save-buffer-func-to-file |
|
|
|
|
|
(let ((default-directory (elpy-library-root))) |
|
|
|
|
|
(expand-file-name |
|
|
|
|
|
".dir-locals.el")) |
|
|
|
|
|
'add-dir-local-variable |
|
|
|
|
|
'(python-mode pyvenv-workon "emacs-default-venv")) |
|
|
|
|
|
(setq-local |
|
|
|
|
|
pyvenv-workon |
|
|
|
|
|
"emacs-default-venv"))) |
|
|
|
|
|
((not pyvenv-workon) |
|
|
(setq-local |
|
|
(setq-local |
|
|
pyvenv-workon |
|
|
pyvenv-workon |
|
|
(rlbr/init-python-venv-in-library-root))))))) |
|
|
|
|
|
|
|
|
(rlbr/init-python-venv-in-library-root)))) |
|
|
|
|
|
(pyvenv-workon pyvenv-workon)))) |
|
|
#+END_SRC |
|
|
#+END_SRC |
|
|
*** bindings/settings |
|
|
*** bindings/settings |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|