Merge branch 'master' into documenting

This commit is contained in:
John Miller 2017-07-14 20:56:15 -05:00
commit b855d0bfd4
3 changed files with 60 additions and 22 deletions

View file

@ -38,8 +38,8 @@
(when (require 'auto-complete nil t)
(require 'ein-ac))
(cond
((and (or ein:use-auto-complete
ein:use-auto-complete-superpack)
((and (or (eql ein:completion-backend 'ein:use-ac-backend)
(eql ein:completion-backend 'ein:use-ac-jedi-backend))
(ein:eval-if-bound 'auto-complete-mode)
(fboundp 'ein:completer-finish-completing-ac))
#'ein:completer-finish-completing-ac)
@ -67,7 +67,7 @@
(beg (ein:completer-beginning matched-text))
(word (if (and beg matches)
(completing-read "Complete: " matches
nil nil matched-text))))
nil nil matched-text))))
(when word
(delete-region beg end)
(insert word))))
@ -115,13 +115,13 @@
must be `t' to enable this option. This variable has effect on
notebook buffers and connected buffers."
:type 'boolean
:group 'ein)
:group 'ein-completion)
(defun ein:complete-on-dot-install (map &optional func)
(if (and ein:complete-on-dot
(featurep 'auto-complete)
(or ein:use-auto-complete
ein:use-auto-complete-superpack))
(or (eql ein:completion-backend 'ein:use-ac-backend)
(eql ein:completion-backend 'ein:use-ac-jedi-backend)))
(define-key map "." (or func #'ein:completer-dot-complete))
(define-key map "." nil)))

View file

@ -673,9 +673,11 @@ notebook buffer then the user will be prompted to select an opened notebook."
(defun ein:notebook-complete-dot ()
"Insert dot and request completion."
(interactive)
(if (and ein:%notebook% (ein:codecell-p (ein:get-cell-at-point)))
(ein:completer-dot-complete)
(insert ".")))
(unless (or (eql ein:completion-backend 'ein:use-company-backend)
(eql ein:completion-backend 'ein:use-company-jedi-backend))
(if (and ein:%notebook% (ein:codecell-p (ein:get-cell-at-point)))
(ein:completer-dot-complete)
(insert "."))))
(defun ein:notebook-kernel-interrupt-command ()
"Interrupt the kernel.
@ -1654,8 +1656,20 @@ This hook is run regardless the actual major mode used."
(defun ein:notebook-mode ()
(funcall (ein:notebook-choose-mode))
(ein:complete-on-dot-install
ein:notebook-mode-map 'ein:notebook-complete-dot)
(case ein:completion-backend
(ein:use-ac-backend (ein:complete-on-dot-install ein:notebook-mode-map 'ein:notebook-complete-dot)
(auto-complete-mode +1))
(ein:use-ac-jedi-backend (jedi:setup)
(add-to-list 'ein:connect-mode-hook 'ein:jedi-setup)
(auto-complete-mode +1))
(ein:use-company-backend (require 'ein-company)
(add-to-list 'company-backends 'ein:company-backend)
(company-mode +1))
(ein:use-company-jedi-backend (warn "Support for jedi+company currently not implemented. Defaulting to just company-mode")
(require 'ein-company)
(add-to-list 'company-backends 'ein:company-backend)
(company-mode +1))
(t (warn "No autocompletion backend has been selected - see `ein:completion-backend'.")))
(ein:aif ein:helm-kernel-history-search-key
(define-key ein:notebook-mode-map it 'helm-ein-kernel-history))
(ein:aif ein:anything-kernel-history-search-key

View file

@ -31,19 +31,36 @@
(declare-function ein:ac-config-once "ein-ac")
(declare-function ein:smartrep-config-once "ein-smartrep")
(defcustom ein:completion-backend 'ein:use-ac-backend
"Determines which completion backend to used in opened EIN notebooks.
(defcustom ein:use-auto-complete nil
"Set to `t' to use preset auto-complete configuration.
Use `ein:use-auto-complete-superpack' when you need more powerful
auto completion."
:type 'boolean
:group 'ein)
After changing the value of this variable it is recommended that
you restart Emacs. The available completion backends are:
* ein:use-ac-backend : Use auto-complete with IPython's builtin completion engine.
* ein:use-ac-jedi-backend : Use auto-complete with the Jedi backend.
* ein:use-company-backend : Use company-mode with IPython's builtin completiong engine.
* ein:use-company-jedi-backends : Use company-mode with the Jedi backend (currently not implemented).
"
:type '(radio
(const :tag "Auto-Complete" 'ein:use-ac-backend)
(const :tag "Auto-Complete + Jedi" 'ein:use-ac-jedi-backend)
(const :tag "Company Mode" 'ein:use-company-backend)
(const :tag "Company Mode + Jedi" 'ein:use-company-jedi-backend))
:group 'ein-completion)
;; (defcustom ein:use-auto-complete nil
;; "Set to `t' to use preset auto-complete configuration.
;; Use `ein:use-auto-complete-superpack' when you need more powerful
;; auto completion."
;; :type 'boolean
;; :group 'ein-completion)
(defcustom ein:use-auto-complete-superpack nil
"Set to `t' to use preset a little bit hacky auto-complete configuration.
When this option is enabled, cached omni completion is available."
:type 'boolean
:group 'ein)
:group 'ein-completion)
(defcustom ein:use-smartrep nil
"Set to `t' to use preset smartrep configuration.
@ -68,16 +85,23 @@ When this option is enabled, cached omni completion is available."
(defun ein:subpackages-load ()
"Load sub-packages depending on configurations."
(when (or ein:use-auto-complete
ein:use-auto-complete-superpack)
(require 'ein-ac)
(ein:ac-config-once ein:use-auto-complete-superpack))
(case ein:completion-backend
((ein:use-ac-backend ein:use-ac-jedi-backend)
(require 'ein-ac)
(ein:ac-config-once ein:use-auto-complete-superpack))
(t (if (boundp 'ein:use-auto-complete)
(progn
(warn "ein:use-auto-complete has been deprecated. Please see `ein:completion-backend' for configuring autocompletion in ein.")
(setq ein:completion-backend 'ein:use-ac-backend)
(require 'ein-ac)
(ein:ac-config-once ein:use-auto-complete-superpack)))))
(when ein:use-smartrep
(require 'ein-smartrep)
(ein:smartrep-config-once))
(when ein:load-dev
(require 'ein-dev)))
(defun ein:subpackages-reload ()
"Reload sub-packages."
(interactive)