update
[emacs-init.git] / python / init_python.el
index 9067c16..4c71a2d 100644 (file)
@@ -4,6 +4,9 @@
 ;(require 'python-mode)
 ;(provide 'python)
 ;(provide 'python21)
+
+(global-unset-key "\C-xpn")
+
 (require 'python)
 
 ;; pymacs
@@ -25,8 +28,6 @@
 
 (define-key ropemacs-local-keymap "\M-/" 'hippie-expand)
 
-(global-unset-key "\C-xpn")
-
 (defun write-file-py-cleanup-imports ()
   (save-excursion
     (condition-case nil
 ;;;   2) Yasnippet
 ;;;   all with AutoComplete.el
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defun prefix-list-elements (list prefix)
-  (let (value)
-    (nreverse
-     (dolist (element list value)
-      (setq value (cons (format "%s%s" prefix element) value))))))
-(defvar ac-source-rope
-  '((candidates
-     . (lambda ()
-         (prefix-list-elements (rope-completions) ac-target))))
-  "Source for Rope")
-(defun ac-python-find ()
-  "Python `ac-find-function'."
-  (require 'thingatpt)
-  (let ((symbol (car-safe (bounds-of-thing-at-point 'symbol))))
-    (if (null symbol)
+(if nil
+  (defun prefix-list-elements (list prefix)
+    (let (value)
+      (nreverse
+       (dolist (element list value)
+         (setq value (cons (format "%s%s" prefix element) value))))))
+  (defvar ac-source-rope
+    '((candidates
+       . (lambda ()
+           (prefix-list-elements (rope-completions) ac-target))))
+    "Source for Rope")
+  (defun ac-python-find ()
+    "Python `ac-find-function'."
+    (require 'thingatpt)
+    (let ((symbol (car-safe (bounds-of-thing-at-point 'symbol))))
+      (if (null symbol)
         (if (string= "." (buffer-substring (- (point) 1) (point)))
-            (point)
+          (point)
           nil)
-      symbol)))
-(defun ac-python-candidate ()
-  "Python `ac-candidates-function'"
-  (let (candidates)
-    (dolist (source ac-sources)
-      (if (symbolp source)
+        symbol)))
+  (defun ac-python-candidate ()
+    "Python `ac-candidates-function'"
+    (let (candidates)
+      (dolist (source ac-sources)
+        (if (symbolp source)
           (setq source (symbol-value source)))
-      (let* ((ac-limit (or (cdr-safe (assq 'limit source)) ac-limit))
-             (requires (cdr-safe (assq 'requires source)))
-             cand)
-        (if (or (null requires)
-                (>= (length ac-target) requires))
+        (let* ((ac-limit (or (cdr-safe (assq 'limit source)) ac-limit))
+               (requires (cdr-safe (assq 'requires source)))
+               cand)
+          (if (or (null requires)
+                  (>= (length ac-target) requires))
             (setq cand
                   (delq nil
                         (mapcar (lambda (candidate)
                                   (propertize candidate 'source source))
                                 (funcall (cdr (assq 'candidates source)))))))
-        (if (and (> ac-limit 1)
-                 (> (length cand) ac-limit))
+          (if (and (> ac-limit 1)
+                   (> (length cand) ac-limit))
             (setcdr (nthcdr (1- ac-limit) cand) nil))
-        (setq candidates (append candidates cand))))
-    (delete-dups candidates)))
-(add-hook 'python-mode-hook
-          (lambda ()
-                 (auto-complete-mode 1)
-                 (set (make-local-variable 'ac-sources)
-                      (append ac-sources '(ac-source-rope) '(ac-source-yasnippet)))
-                 (set (make-local-variable 'ac-find-function) 'ac-python-find)
-                 (set (make-local-variable 'ac-candidate-function) 'ac-python-candidate)
-                 (set (make-local-variable 'ac-auto-start) nil)))
-;;Ryan's python specific tab completion
-(defun ryan-python-tab ()
-  ; Try the following:
-  ; 1) Do a yasnippet expansion
-  ; 2) Do a Rope code completion
-  ; 3) Do an indent
-  (interactive)
-  (if (eql (ac-start) 0)
+          (setq candidates (append candidates cand))))
+      (delete-dups candidates)))
+  (add-hook 'python-mode-hook
+            (lambda ()
+              (auto-complete-mode 1)
+              (set (make-local-variable 'ac-sources)
+                   (append ac-sources '(ac-source-rope) '(ac-source-yasnippet)))
+              (set (make-local-variable 'ac-find-function) 'ac-python-find)
+              (set (make-local-variable 'ac-candidate-function) 'ac-python-candidate)
+              (set (make-local-variable 'ac-auto-start) nil)))
+  ;;Ryan's python specific tab completion
+  (defun ryan-python-tab ()
+                                        ; Try the following:
+                                        ; 1) Do a yasnippet expansion
+                                        ; 2) Do a Rope code completion
+                                        ; 3) Do an indent
+    (interactive)
+    (if (eql (ac-start) 0)
       (indent-for-tab-command)))
-(defadvice ac-start (before advice-turn-on-auto-start activate)
-  (set (make-local-variable 'ac-auto-start) t))
-(defadvice ac-cleanup (after advice-turn-off-auto-start activate)
-  (set (make-local-variable 'ac-auto-start) nil))
+  (defadvice ac-start (before advice-turn-on-auto-start activate)
+    (set (make-local-variable 'ac-auto-start) t))
+  (defadvice ac-cleanup (after advice-turn-off-auto-start activate)
+    (set (make-local-variable 'ac-auto-start) nil))
+  )
 ;(define-key py-mode-map "\t" 'ryan-python-tab)
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; End Auto Completion