diff .elisp/pycomplete.el @ 19:b5d75594b356

Add support for the ipython-mode stuff and remove vestigial pymacs code.
author Augie Fackler <durin42@gmail.com>
date Mon, 08 Dec 2008 10:58:06 -0600
parents
children 014e745b2d04
line wrap: on
line diff
new file mode 100644
--- /dev/null
+++ b/.elisp/pycomplete.el
@@ -0,0 +1,36 @@
+;;; Complete symbols at point using Pymacs.
+
+;;; See pycomplete.py for the Python side of things and a short description
+;;; of what to expect.
+
+(require 'pymacs)
+(require 'python-mode)
+
+(pymacs-load "pycomplete")
+
+(defun py-complete ()
+  (interactive)
+  (let ((pymacs-forget-mutability t)) 
+    (insert (pycomplete-pycomplete (py-symbol-near-point)
+				   (py-find-global-imports)))))
+
+(defun py-find-global-imports ()
+  (save-excursion
+    (let (first-class-or-def imports)
+      (goto-char (point-min))
+      (setq first-class-or-def
+	    (re-search-forward "^ *\\(def\\|class\\) " nil t))
+      (goto-char (point-min))
+      (setq imports nil)
+      (while (re-search-forward
+	      "^\\(import \\|from \\([A-Za-z_][A-Za-z_0-9]*\\) import \\).*"
+	      nil t)
+	(setq imports (append imports
+			      (list (buffer-substring
+				     (match-beginning 0)
+				     (match-end 0))))))
+      imports)))
+
+(define-key py-mode-map "\M-\C-i"  'py-complete)
+
+(provide 'pycomplete)