- 
                Notifications
    You must be signed in to change notification settings 
- Fork 127
Open
Description
- OS: Ubuntu 22.04
- vim version: VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Sep 25 2024 05:30:01) (package vim-gtk3, version: 2:8.2.3995-1ubuntu2.21)
- Included patches: 1-16, 647, 17-579, 1969, 580-647, 678, 648-1848, 4975, 5016, 5023, 5072, 2068, 1849-1854, 1857, 1855-1857, 1331, 1858, 1858-1859, 1873, 1860-1969, 1992, 1970-1992, 2010, 1993-2068, 2106, 2069-2106, 2108, 2107-2109, 2109
 -3995, 4563, 4646, 4774, 4895, 4899, 4901, 4919, 213, 1840, 1846-1847, 2110-2112, 2121
- clang-format: v16.0.6
Observation
When using the the option 'InsertNewlineAtEOF: true' clang-format returns a string that will have a newline followed by a space, compared to no newline at then end when it is switched off. This newline will cause an empty line at the end of the file, which is unwanted.
Proposed fix
I am not well versed in Vimscript, so my current approach is to trim all outputs returned in the system function:
@@ -39,6 +39,9 @@ function! s:system(str, ...) abort
                     \ vimproc#system(command, input, a:2) : system(command, input)
     endif
 
+    " if clang-format option InsertNewlineAtEOF is set, there is a newline + space at the end
+    " of the output, which we don't want as this leads to additional newlines in vim
+    let output = trim(output, " \n", 2)
     return output
 endfunctionAn alternative would be to only trim the output in the format_ranges function, as system is used in other places as well.
XraYp
Metadata
Metadata
Assignees
Labels
No labels