Ответ 1
Я не всегда имел успех с WhatFunction, но он должен хорошо работать с кодом C/С++. Эта настройка добавит новую функцию в схему распознавания, которая сообщит вам, когда вы находитесь в блоке #ifdef.
(require 'which-func)
(which-function-mode 1)
(defun name-of-current-conditional ()
"rather inelegant coding, but it works"
(interactive)
(let (outer)
(condition-case nil
(dotimes (myv 10)
(save-excursion
(c-up-conditional (1+ myv))
(setq outer (buffer-substring-no-properties
(line-beginning-position)
(line-end-position)))))
(error nil))
outer))
(setq which-func-functions '(name-of-current-conditional))