--- Begin Message ---
Subject: |
23.3; python-find-function is broken |
Date: |
Mon, 21 Mar 2011 21:32:42 -0400 |
python-find-function cannot work as the emacs.location_of function is
missing from etc/emacs[23].py
The following seems to work for Python 2.x
def location_of (name, imports):
"""Get location at which NAME is defined (or nil).
Provides a pair (PATH, LINE), where LINE is the start of the definition
in path name PATH.
Exec IMPORTS first."""
locls = {}
if imports:
try: exec (imports, locls)
except: pass
try:
obj = eval (name, globals (), locls)
# Bug: (in Python 2.5) `getsourcefile' only works with modules,
# hence the `getmodule' here.
srcfile = inspect.getsourcefile (inspect.getmodule (obj))
_, line = inspect.getsourcelines (obj)
print '_emacs_out ("%s" . %d)' % (srcfile.replace('\\', '/'), line)
except:
print "_emacs_out ()"
Couple comments:
- it isn't mine, was simply adapted from
http://www.loveshack.ukfsn.org/emacs/emacs.py
- .replace('\\', '/') seems necessary on Windows but feels like an ugly hack
In GNU Emacs 23.3.1 (i386-mingw-nt6.1.7600)
of 2011-03-10 on 3249CTO
Windowing system distributor `Microsoft Corp.', version 6.1.7600
configured using `configure --with-gcc (4.5) --no-opt --cflags
-Ic:/imagesupport/include'
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#8316: 23.3; python-find-function is broken |
Date: |
Mon, 18 Jun 2012 19:35:16 -0400 |
User-agent: |
Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) |
Version: 24.2
Thanks for the report. The Emacs trunk has a new python.el, and it seems
your problem is fixed there. This should appear in Emacs 24.2.
python-find-function is replaced by python-nav-jump-to-defun.
--- End Message ---