Неполная подсветка в режиме С++ с помощью Emacs

Я работаю с C++ в emacs, и он работает отлично, за исключением одной детали при выделении кода. Всякий раз, когда я пишу функцию с более чем одним аргументом (иногда даже с одним), она не распознает функцию как функцию, например, в:

double Gamma(double x, double mean, double gamma){
  //some code
}

Gamma подсвечивается не как функция, а как обычный текст, в то время как в #define square(x) x*x правильно подсвечивается square, а также в

complex<double> magphase2c(double mag, double phase){
// some code
}

где magphace2c выделен как функция.

То же самое происходит, когда у меня есть, например,

TF1 *fitBWResult = new TF1("fitBWResult", BreitWigner, ResMassMin, ResMassMax, 3);
// versus
double Mass = 0.776132;

где fitBWResult не распознается как переменная, а Mass распознается. Эта последняя проблема возникает только тогда, когда я использую указатели.

Я использую Emacs 23.4.1, я не знаю версию cc-mode, но я запускаю последнюю установку тестирования Debian (хрипит).

Заранее спасибо!


person oxio    schedule 27.07.2012    source источник
comment
У меня работает нормально. (Emacs 23.3.1 из репозитория, Ubuntu 12.04, в основном настройки по умолчанию). Может быть, вы можете скачать более новый cc-mode? Кроме того, вы уверены, что он находится в режиме C++, а не в режиме C? (Возможно, но проверить не помешает)   -  person noisecapella    schedule 28.07.2012
comment
Я дважды проверял (ну, почти сто раз). Конфигурация почти стандартная. Я не пробовал с более новым cc-режимом, думал. Я думаю, что вторая проблема связана с указателями, а не с конкретным форматом. Я не могу попробовать это сейчас, но я попробую ваше предложение с более новым режимом cc. Спасибо!   -  person oxio    schedule 28.07.2012
comment
Наконец-то я пришел к ответу: нойзкапелла была права, проблема была в версии cc-mode. Debian Wheezy поставляется с версией 5.31.something, и проблема исправлена ​​в версии 5.32.3 (последней на странице проекта).   -  person oxio    schedule 03.08.2012


Ответы (1)


Я думаю, что этот вопрос не должен оставаться без ответа, а так как я решил его благодаря идее пользователя Noisecapella, то выкладываю найденное решение:

Debian Wheezy в то время использовал режим cc-mode 5.31.8 с Emacs 23.4.1, и эта версия cc-mode вызывает проблемы. Решение заключается в установке более новой версии (возможно, старая тоже подойдет) пакета, со своей главной страницы. В частности, я решил проблему установкой версии 5.32.3, более новой на данный момент.

person oxio    schedule 02.08.2012