Come allineare i commenti C ++ per essere conforme allo stile di Google?


10

Un modo per convincere Vim a formattare i miei commenti per conformarsi a Google cpplint?

inserisci qui la descrizione dell'immagine

La sezione superiore non è conforme, per rispettare 5 modifiche sono necessarie.

  1. mantieni questo commento allo stesso livello
  2. Aggiungi uno spazio dopo //
  3. aggiungere almeno due spazi tra codice e commento
  4. allinea i commenti
  5. aggiungi spazio dopo //

(Nota che sto anche facendo questa domanda qui, potrebbe essere possibile fare con Tabular https://github.com/godlygeek/tabular/issues/44 )

EDIT: come da raccomandazione di seguito, funziona:

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

Configurazione .nvimrc o .vimrc:

let g:clang_format#code_style='google'

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

3
clang-format ha un'impostazione googlestyle. Credo che ci sia un plugin che puoi usare per eseguirlo da VIM.
FDinoff,

@FDinoff, fantastico funziona, se rispondi, lo selezionerò come soluzione ...
user1135541

Non capisco (1) - entrambi hanno quattro spazi prima del primo /, giusto?
Kyle Strand,

@KyleStrand: Credo (1) ha a che fare con non rientri quella linea per abbinare le altre due osservazioni (cioè OP è specificare un caso limite che non dovrebbe cambiare).
Kevin,

@Kevin Ah, ho pensato che stesse dicendo che dovrebbe essere allo stesso livello di rientro di qualcosa nella riga precedente o successiva, ma ha senso. Grazie.
Kyle Strand,

Risposte:


11

clang-format è uno strumento da riga di comando che formatta il codice c ++. Uno dei formattatori predefiniti è google.

clang-format -style=google

Ci sono plugin che ti permetterebbero di eseguire clang-format in vim. Uno di questi plugin è https://github.com/rhysd/vim-clang-format (non l'ho usato, è stato il primo che ho trovato)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.