From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Schulte Subject: Re: IDE tools for maintaining Emacs Lisp programs (Org in particular) Date: Sat, 21 Apr 2012 11:28:06 -0400 Message-ID: <87397xp0jd.fsf@gmx.com> References: <80y5pqm8av.fsf@somewhere.org> <81bomlvgoi.fsf@gmail.com> <817gx9vfxb.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:40854) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SLe6f-0002md-NH for emacs-orgmode@gnu.org; Sat, 21 Apr 2012 13:28:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SLe6b-0007yD-F8 for emacs-orgmode@gnu.org; Sat, 21 Apr 2012 13:28:21 -0400 Received: from mailout-us.gmx.com ([74.208.5.67]:38327) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1SLe6b-0007xz-8i for emacs-orgmode@gnu.org; Sat, 21 Apr 2012 13:28:17 -0400 In-Reply-To: <817gx9vfxb.fsf@gmail.com> (Jambunathan K.'s message of "Sat, 21 Apr 2012 10:29:12 +0530") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Jambunathan K Cc: Orgmode Jambunathan K writes: > Jambunathan K writes: > >> For all practical purposes, I find this be sufficient. >> >> (global-set-key (kbd "C-c f") >> (lambda () >> (interactive) >> (require 'finder) >> (let ((thing (intern (thing-at-point 'symbol)))) >> (if (functionp thing) >> (find-function thing) >> (find-variable thing))))) >> >> Put your cursor on a variable or a function, C-c f and you are staring >> right at the definition of the variable or function. For this to work, >> the library defining the function or variable should already be >> loaded. > > Just discovered this from find-func.el > > (require 'find-func) > (find-function-setup-keys) > > will install the below keymap for you. > Thanks for pointing this out, I have a feeling the find-func functionality will quickly become core to my elisp file navigation. To answer the original question, I also tend towards a minimal setup. I do all of my editing directly in elisp source files, and I don't use tags or etags or anything like that. I use the describe-function and describe-variable help functions with tab completion *very* frequently to find functions and variables relevant to my current task, and to then jump to their source. When drilling into either a bug or unfamiliar functionality I find edebug invaluable. Evaluating functions with a prefix argument "C-u eval-defun" instruments them for interactive step-by-step evaluation with edebug. Also, I highly recommend both paredit and the sexp-edit operations (kill-sexp, paredit-backward-up, paredit-forward, etc...) to anyone working on any lisp source code. -- Eric Schulte http://cs.unm.edu/~eschulte/