Показать вложенную функцию с помощью которого функция-режим в Emacs - PullRequest
1 голос
/ 18 февраля 2010

При включении режима какой-функции в Emacs имя функции отображается в строке состояния текущей функции, в которой находится курсор.Однако, когда внутри класса есть вложенные функции или метод, отображается только самая внешняя функция.

Например, у меня есть следующий класс в C ++.


class Foo
{
   void func1()
   {
      ...
   }
};

Когда курсорнаходится внутри func1 (), имя класса Foo отображается в строке состояния.Как мне сделать так, чтобы отображался Foo plus func1?Что-то вроде Foo.func1 или Foo :: func1 было бы хорошо.

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

Функция which-func по умолчанию использует функции imenu, чтобы получить отображаемое имя. Я не думаю, что есть способ получить функцию, которую вы ищете по умолчанию.

Если вы установите CEDET , он может переопределить функцию which-func для получения имен, используя свою систему синтаксического анализа, тогда он будет делать именно то, что вы описываете, хотя и использует "." по умолчанию.

0 голосов
/ 04 января 2012

Вы можете попробовать это с загруженной библиотекой imenu+.el. Не знаю, поможет ли это. В противном случае вы можете попробовать настроить определение which-function, чтобы оно использовало функцию, например symbol-name-near-point, которая находится в библиотеке thingatpt+.el. См. Также Вещь в точке + .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...