No me puedo desplazamiento cero para algunas cosas para mis archivos de cabecera de C++ en emacs aunque tenga que definirse en mi archivo .emacs.emacs/protected/etiqueta privada de sangría pública del archivo de cabecera C++ que no trabaja para decalaje de origen
El archivo de cabecera siguiente muestra una definición de clase dentro de dos espacios de nombres y lo más importante la palabra clave pública me gustaría tener con traslado de origen, como a continuación.
namespace n1
{
namespace n2 // no offset
{
class SomeClass // no offset from namespace open curly
{
public: // this line with zero offset
SomeClass(); // offset 4
...
};
inline SomeClass::SomeClass() // no offset
{
}
} // n2
} // n2
En mi fichero .emacs He añadido la etiqueta como esta:
(c-set-offset 'label 0)
que utiliza Ctrl + C Ctrl-S para averiguar lo que va a modificar. Otras compensaciones que he definido en el archivo .emacs funcionan bien y también los valores que no sean 0 funcionan para la etiqueta.
cuando fijo la posición 0 para el sello que resulta ser 1 al golpear pestaña para esa línea. Esto es extraño y se ve como algo más está anulando o la adición de un mínimo de 1.
Puede alguien explicar cómo puedo lograr lo que quiero y tal vez también una explicación de lo que está pasando actualmente?
Uf, esta fue mi primera pregunta aquí. Gracias :)
ACTUALIZACIÓN:
Gracias a las respuestas que he podido conseguir un poco más lejos, pero todavía no hay solución global, ya que para cambiar las cosas necesarias para conseguir desfase total 0 para los descriptores de acceso dan lugar a otras cosas Yo no quiero Thsi es donde estoy actualmente:
(c-set-offset 'access-label 0)
También necesitaba para obtener el archivo .h ser understoor como C++, por lo que añade:
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))
Esto por sí solo no es la eliminación de la 1 I Offset estaba viendo, pero parece que también hay inclass para el usuario. Establecer esto a 0 en realidad da como resultado el desplazamiento total 0.
(c-set-offset 'inclass 0)
problema es que ahora otras cosas tales como los miembros están con total de 0, como a continuación:
class Foo
{
public:
Foo();
~Foo();
Para remediar esto he cambiado superior-intro para compensar 4
(c-set-offset 'topmost-intro 4)
Qué a su vez dio lugar a otros cambios, por ejemplo, declaraciones de función en línea en el mismo archivo. Con todo, no estoy seguro de cómo modificar esto de la manera que lo quiero.
Update2:
Agregado declaración en línea de Héctor SomeClass sin desplazamiento.
Lo mismo aquí, el acceso a la etiqueta por sí sola no es ayudando, pero el enlace que proporcionó me dio la información necesaria, lo que agrega 1. – murrekatt
Por cierto, puede dejar el desplazamiento de inclass y usar un desplazamiento negativo para el símbolo de la etiqueta de acceso. – Moberg