update elpy
[emacs.git] / .emacs.d / config / emacs.org
index 71f3a9f..2ccd0ca 100644 (file)
@@ -103,8 +103,8 @@ one variable and go over that in a loop.
 (defvar jj-elisp-subdirs '(local gnus icicle org/contrib tiny mo-git-blame cedet
                            cedet/eieio ecb jdee/lisp sunrise multiple-cursors
                            auto-complete yasnippet magit mmm emms/lisp
-                           elpy find-file-in-project fuzzy idomenu nose
-                           popup pyvenv git-rebase-mode git-commit-mode)
+                           elpy find-file-in-project fuzzy idomenu
+                           popup git-rebase-mode git-commit-mode)
   "List of subdirectories in jj-elisp-dir to add to load-path")
 
 (let (dirval)
@@ -3371,58 +3371,98 @@ up here to be used.
 Use elpy for the emacs python fun, but dont let it initialize all the
 various variables. Elpy author may like them, but I'm not him...
 #+BEGIN_SRC emacs-lisp :tangle yes
-(safe-load (concat jj-elisp-dir "/elpy/elpy-autoloads.el"))
-(defalias 'elpy-initialize-variables 'jj-init-elpy)
-(defun jj-init-elpy ()
-  "Initialize elpy in a way i like"
-  ;; Local variables in `python-mode'. This is not removed when Elpy
-  ;; is disabled, which can cause some confusion.
-  (add-hook 'python-mode-hook 'elpy-initialize-local-variables)
-
-  ;; `flymake-no-changes-timeout': The original value of 0.5 is too
-  ;; short for Python code, as that will result in the current line to
-  ;; be highlighted most of the time, and that's annoying. This value
-  ;; might be on the long side, but at least it does not, in general,
-  ;; interfere with normal interaction.
-  (setq flymake-no-changes-timeout 60)
-
-  ;; `flymake-start-syntax-check-on-newline': This should be nil for
-  ;; Python, as;; most lines with a colon at the end will mean the next
-  ;; line is always highlighted as error, which is not helpful and
-  ;; mostly annoying.
-  (setq flymake-start-syntax-check-on-newline nil)
-
-  ;; `ac-auto-show-menu': Short timeout because the menu is great.
-  (setq ac-auto-show-menu 0.4)
-
-  ;; `ac-quick-help-delay': I'd like to show the menu right with the
-  ;; completions, but this value should be greater than
-  ;; `ac-auto-show-menu' to show help for the first entry as well.
-  (setq ac-quick-help-delay 0.5)
-
-  ;; `yas-trigger-key': TAB, as is the default, conflicts with the
-  ;; autocompletion. We also need to tell yasnippet about the new
-  ;; binding. This is a bad interface to set the trigger key. Stop
-  ;; doing this.
-  (let ((old (when (boundp 'yas-trigger-key)
-               yas-trigger-key)))
-    (setq yas-trigger-key "C-c C-i")
-    (when (fboundp 'yas--trigger-key-reload)
-      (yas--trigger-key-reload old)))
-
-  ;; yas-snippet-dirs can be a string for a single directory. Make
-  ;; sure it's a list in that case so we can add our own entry.
-  (when (not (listp yas-snippet-dirs))
-    (setq yas-snippet-dirs (list yas-snippet-dirs)))
-  (add-to-list 'yas-snippet-dirs
-               (concat (file-name-directory (locate-library "elpy"))
-                       "snippets/")
-               t)
-
-  ;; Now load yasnippets.
-  (yas-reload-all))
-(elpy-enable)
-(elpy-use-ipython)
+(use-package elpy
+  :defer t
+  :mode ("\.py" . elpy-mode)
+  :init
+  (progn
+    (safe-load (concat jj-elisp-dir "/elpy/elpy-autoloads.el"))
+    )
+  :config
+  (progn
+
+    (use-package nose
+      :ensure nose
+      :commands (nosetests-all nosetests-module nosetests-one
+                               nosetests-failed nosetests-pdb-all
+                               nosetests-pdb-module nosetests-pdb-one)
+      )
+
+    (use-package pyvenv
+      :ensure pyvenv
+      :commands (pyvenv-activate pyvenv-deactivate pyvenv-mode pyvenv-restart-python)
+      )
+
+    (use-package idomenu
+      :ensure idomenu
+      :commands (idomenu)
+      :defer t)
+
+    (use-package highlight-indentation
+      :ensure t
+      :commands (highlight-indentation-mode))
+
+    (use-package find-file-in-project
+      :ensure t
+      :commands (find-file-in-project ffip-project-files ffip ))
+
+    (use-package fuzzy
+      :ensure t)
+
+    ;; Local variables in `python-mode'. This is not removed when Elpy
+    ;; is disabled, which can cause some confusion.
+    (add-hook 'python-mode-hook 'elpy-initialize-local-variables)
+
+    ;; Flymake support using flake8, including warning faces.
+    (when (and (executable-find "flake8")
+               (not (executable-find python-check-command)))
+      (setq python-check-command "flake8"))
+
+    ;; `flymake-no-changes-timeout': The original value of 0.5 is too
+    ;; short for Python code, as that will result in the current line to
+    ;; be highlighted most of the time, and that's annoying. This value
+    ;; might be on the long side, but at least it does not, in general,
+    ;; interfere with normal interaction.
+    (setq flymake-no-changes-timeout 60)
+
+    ;; `flymake-start-syntax-check-on-newline': This should be nil for
+    ;; Python, as;; most lines with a colon at the end will mean the next
+    ;; line is always highlighted as error, which is not helpful and
+    ;; mostly annoying.
+    (setq flymake-start-syntax-check-on-newline nil)
+
+    ;; `ac-auto-show-menu': Short timeout because the menu is great.
+    (setq ac-auto-show-menu 0.4)
+
+    ;; `ac-quick-help-delay': I'd like to show the menu right with the
+    ;; completions, but this value should be greater than
+    ;; `ac-auto-show-menu' to show help for the first entry as well.
+    (setq ac-quick-help-delay 0.5)
+
+    ;; `yas-trigger-key': TAB, as is the default, conflicts with the
+    ;; autocompletion. We also need to tell yasnippet about the new
+    ;; binding. This is a bad interface to set the trigger key. Stop
+    ;; doing this.
+    (let ((old (when (boundp 'yas-trigger-key)
+                 yas-trigger-key)))
+      (setq yas-trigger-key "C-c C-i")
+      (when (fboundp 'yas--trigger-key-reload)
+        (yas--trigger-key-reload old)))
+
+    ;; yas-snippet-dirs can be a string for a single directory. Make
+    ;; sure it's a list in that case so we can add our own entry.
+    (when (not (listp yas-snippet-dirs))
+      (setq yas-snippet-dirs (list yas-snippet-dirs)))
+    (add-to-list 'yas-snippet-dirs
+                 (concat (file-name-directory (locate-library "elpy"))
+                         "snippets/")
+                 t)
+
+    ;; Now load yasnippets.
+    (yas-reload-all)
+    (elpy-enable t)
+    (elpy-use-ipython)))
+
 #+END_SRC
 
 Below is old setup