|
From: | Kevin Rodgers |
Subject: | Re: opening correct source file on compile error |
Date: | Mon, 23 Oct 2006 10:15:00 -0600 |
User-agent: | Thunderbird 1.5.0.7 (Windows/20060909) |
kl.vanw@gmail.com wrote:
Kevin Rodgers wrote:kl.vanw@gmail.com wrote:Here's my situation. My header files (C++) are located in a dir named src/lib. These are the files I edit and are CVS managed. When I run 'make', make copies the headers into include/, which my other source files include. Then if there was an error in one of the headers, and I use 'next-error' in the compilation buffer to open the header, emacs opens the file in the include/ directory, but I really need it to open the header in src/lib. Can I some how help emacs find the right file? Unfortunately, I don't have the option of changing the way our makefile works or the #include statements.Try this: (add-hook 'find-file-hook (lambda () (let* ((file (file-name-nondirectory buffer-file-name)) (directory (file-name-directory buffer-file-name)) (alternate-file (expand-file-name file "../src/lib"))) (when (and (equal (file-name-nondirectory (directory-file-name directory)) "include") (file-exists-p alternate-file)) (find-alternate-file alternate-file))))) -- KevinI tried that, but it didn't work. I also tried specifing the full paths in the above, but it didn't work either. Did you verify that it works for you?
Ah, it works in Emacs 22. To make it work in older versions, use find-file-hooks (plural) instead of find-file-hook. -- Kevin
[Prev in Thread] | Current Thread | [Next in Thread] |