vim-codefmt icon indicating copy to clipboard operation
vim-codefmt copied to clipboard

FormatCode adds line filled with spaces when run on .cc file

Open jeroen-dhollander opened this issue 2 years ago • 7 comments

Description

Running :FormatCode on a cpp source (not header) file causes a trailing line filled with whitespaces to appear at the end of the document. Running :FormatCode again and again removes and re-adds and removes and ... this line.

Steps to reproduce

  1. Use this init.vim file:
call plug#begin('~/.local/share/nvim/plugged-minimal')
Plug 'google/vim-maktaba' " Needed for vim-codefmt
Plug 'google/vim-glaive' " Needed for vim-codefmt
Plug 'google/vim-codefmt' " Code formatting
call plug#end()
  1. Open any .cc file (for example I use base/run_loop.cc from the chromium project

  2. Run :FormatCode. Observe line with trailing whitespaces at the end of the file

  3. Run :FormatCode. Observe line with trailing whitespaces at the end of the file is gone.

  4. Repeat

My Setup

  • 'vim-codefmt' is up-to-date (I ran :PlugUpdate)
─❯ nvim --version
NVIM v0.7.2
╰─❯ clang-format --version
clang-format version google3-trunk (30af2fb33ed2f610abfa50e53df9712887b2bd25)

Gif of the bug

bug

Other things I tried

  • Manually running clang-format -i base/run_loop.cc from the command line does not introduce these whitespaces, which is why I opened the bug against vim-codefmt and not clang-format.

Please let me know if you need any more information.

Thanks!

jeroen-dhollander avatar May 09 '23 13:05 jeroen-dhollander

Can you confirm if clang-format is the actual formatter being used here? Tab complete after :FormatCode to see what formatters are installed and apply to .cc files, and check if running the one for clang-format has the same issue.

dbarnett avatar May 18 '23 13:05 dbarnett

Thanks for the response. I can confirm it is caused by clang-format (by running :FormatCode clang-format which reproduces the issue):

image

jeroen-dhollander avatar May 19 '23 07:05 jeroen-dhollander

Update: It is related to the presence of InsertNewlineAtEOF in the chromium .clang-format file.

Setting that to false (or removing it) makes the bug go away.

jeroen-dhollander avatar May 08 '24 14:05 jeroen-dhollander