Dê uma olhada em ff-find-other-file , em find-file.el . Se os arquivos .h e .cpp estiverem no mesmo diretório, isso simplesmente funcionará, mas você poderá usá-lo com locais diferentes, modificando o valor de ff-search-directories .
Existe uma função do Emacs que alterna entre arquivos .cpp
e .hpp
que não estão nos mesmos diretórios?
Eu sei que há toggle-source.el , mas aparentemente ele não controla o caso em que .cpp
e .hpp
estão em diretórios diferentes. Mas minha estrutura de diretórios é assim:
project1/src/foo.cpp
project1/include/foo.hpp
project2/src/bar.cpp
project2/include/bar.hpp
Não deve ser difícil alternar entre src/foo.cpp
e include/foo.hpp
, mas não falo Lisp.
Obrigado pela dica Brad! Caso mais pessoas encontrem essa questão, aqui está uma maneira que funcionou para mim (no emacs-23.2.1):
(setq cc-other-file-alist
'(("\.c" (".h"))
("\.cpp" (".h"))
("\.h" (".c"".cpp"))))
(setq ff-search-directories
'("." "../src" "../include"))
;;; Bind the toggle function to a global key
(global-set-key "\M-t" 'ff-find-other-file)