Resaltado incompleto en modo C++ con Emacs

Trabajo con C++ en emacs, y funciona perfecto, salvo un detalle al resaltar el código. Siempre que escribo una función con más de un argumento (a veces, incluso con uno solo), no reconoce la función como función, por ejemplo, en:

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

Gamma no se resalta como una función, sino como texto sin formato, mientras que en #define square(x) x*x, square está correctamente resaltado, también en

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

donde magphace2c se resalta como una función.

El mismo comportamiento ocurre cuando tengo, por ejemplo,

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

sin que importe fitBWResult no se reconoce como una variable, pero Mass es. Este último problema solo ocurre cuando uso punteros.

Estoy usando Emacs 23.4.1, no conozco la versión de cc-mode, pero estoy ejecutando una instalación actualizada de Debian testing (sibilante).

Gracias de antemano!

preguntado el 27 de julio de 12 a las 21:07

Funciona bien para mí. (Emacs 23.3.1 del repositorio, Ubuntu 12.04, en su mayoría configuraciones predeterminadas). ¿Tal vez puedas descargar un modo cc más nuevo? Además, ¿estás seguro de que está en modo C++ y no en modo C? (Probablemente lo sea, pero no está de más comprobarlo) -

Lo he comprobado dos veces (bueno, casi cien veces). La configuración es casi la predeterminada. No he probado con un modo cc más nuevo, pensó. Creo que el segundo problema tiene que ver con los punteros, más que con un formato en particular. No puedo probarlo ahora, pero intentaré su sugerencia con un modo cc más nuevo. ¡Gracias! -

Finalmente llegué a una respuesta: Noisecapella tenía razón, el problema era la versión en modo cc. Debian Wheezy vino con 5.31.algo, y el problema se solucionó en la versión 5.32.3 (la última en la página del proyecto). -

1 Respuestas

Creo que esta pregunta no debe quedar sin respuesta, y como la resolví gracias a la idea del usuario noisecapella, publico la solución que encontré:

Debian Wheezy, en ese momento, usa cc-mode 5.31.8 con Emacs 23.4.1, y este La versión de cc-mode es la que tiene el problema. La solución es instalar la versión más nueva (tal vez una antigua también pueda hacer el trabajo) del paquete, desde su página de inicio. En particular, solucioné el problema instalando la versión 5.32.3, la más nueva en este momento.

Respondido 02 ago 12, 21:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.