¿Cómo alineo los comentarios de C ++ para cumplir con el estilo de Google?


10

¿Alguna forma de hacer que Vim formatee mis comentarios para cumplir con cpplint de Google?

ingrese la descripción de la imagen aquí

La sección superior no cumple, se requieren 5 cambios para cumplir.

  1. mantén este comentario al mismo nivel
  2. Agregar un espacio después //
  3. agregue un mínimo de dos espacios entre el código y el comentario
  4. alinear comentarios
  5. agregar espacio después //

(Tenga en cuenta que también estoy haciendo esta pregunta aquí, es posible hacerlo con Tabular https://github.com/godlygeek/tabular/issues/44 )

EDITAR: Según la recomendación a continuación, esto funciona:

Plugin => https://github.com/rhysd/vim-clang-format

Configuración .nvimrc o .vimrc:

let g:clang_format#code_style='google'

let g:clang_format#style_options = {
            \ "AccessModifierOffset" : -3,
            \ "Standard" : "C++03"}

3
clang-format tiene una configuración de estilo de Google. Creo que hay un complemento que puedes usar para ejecutarlo desde vim.
FDinoff

@FDinoff, increíble funciona, si responde, lo seleccionaré como solución ...
user1135541

No entiendo (1): ambos tienen cuatro espacios antes del primero /, ¿verdad?
Kyle Strand

@KyleStrand: Creo que (1) tiene que ver con no sangrar esa línea para que coincida con los otros dos comentarios (es decir, OP está especificando un caso límite que no debería cambiar).
Kevin

@ Kevin Ah, pensé que estaba diciendo que debería estar en el mismo nivel de sangría que algo en la línea anterior o siguiente, pero eso tiene sentido. Gracias.
Kyle Strand

Respuestas:


11

clang-format es una herramienta de línea de comandos que formatea el código c ++. Uno de los formateadores predeterminados es google.

clang-format -style=google

Hay complementos que le permitirán ejecutar el formato clang en vim. Uno de estos complementos es https://github.com/rhysd/vim-clang-format (no lo he usado, fue el primero que encontré)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.