209

When saving a file using Visual Studio Code, a newline is not automatically added to the end of the file, causing all sorts of potential issues.

How does one append a newline automatically in Visual Studio Code?

Mateen Ulhaq
  • 21,459
  • 16
  • 82
  • 123
LJH
  • 5,766
  • 3
  • 9
  • 19
  • It does indeed cause all sorts of potential issues, but it is also a beginner mistake of compiler writers, parser writers, and other system writers not to handle it properly. – Peter Mortensen May 17 '21 at 18:26

3 Answers3

331

There are two easy methods to make Visual Studio Code insert a new line at the end of files:

Method I

  1. Open Visual Studio Code and go to File (Code if using a Mac) -> Preferences -> Settings; you should now be viewing a settings page

  2. Enter 'insert final newline' in to the search bar

  3. Select the checkbox under the heading 'Files: Insert Final Newline' in the 'Workspace Settings' and/or 'User Settings' tab(s) as required

Settings Page with 'Files: Insert Final Newline' checkbox selected

Method II

  1. Open Visual Studio Code and go to File (Code if using a Mac) -> Preferences -> Settings; you should now be viewing a settings page

  2. Open the JSON settings page by clicking the {} icon at the top right of the page

  3. Enter 'files.insertFinalNewline' in to the search bar of the JSON settings page

  4. Either

    • Click on the white 'edit pen' on the left hand side of the line containing the files.insertFinalNewline JSON key and select True

    or

    • Copy the line containing the files.insertFinalNewline JSON key, paste it into the right hand side JSON file under the 'User Settings' and/or 'Workspace Settings' tab(s) as required, and set its value to true

User Settings JSON with <code>files.insertFinalNewline</code> set to <code>true</code>

Final Result

In either your User Settings or Workspace Settings JSON file, you should have a line reading "files.insertFinalNewline": true, within the provided curly braces ({ }). Additionally, in the Settings page, the checkbox under the heading 'Files: Insert Final Newline' will be selected.

Visual Studio Code will now add an empty line to the end of files when being saved, if there isn't already one.

LJH
  • 5,766
  • 3
  • 9
  • 19
  • 1
    Does this ever result in extra newlines if the file already has newlines at the end? – Aaron Franke Oct 29 '19 at 03:13
  • 3
    @AaronFranke I have never seen that behaviour. For me, it only adds a newline if there isn't already one. If you are having this issue, perhaps check your final lines don't contain some formatting that you aren't noticing. – LJH Oct 30 '19 at 10:07
  • 4
    You can also define per language type: `"[javascript]": {"files.insertFinalNewline": true}` – Get Off My Lawn Jun 29 '20 at 20:30
  • 1
    @AaronFranke No, but if you already have extra newlines, this setting doesn't cap the extras. This is sad. – Lawrence Nov 13 '20 at 14:36
  • 2
    @Lawrence but there is also a setting for that `"files.trimFinalNewlines": true` – Davos May 10 '21 at 15:03
  • My VSCode is suddenly adding a blank line at the end of file when I save. I have disabled all options to add a new line. I even uninstalled the `Prettier` extension. But it still keeps adding a new blank line at the end of file when I press `ctrl + s`. Does anyone know why? – CatarinaRuna Sep 20 '21 at 07:16
  • After doing this you need to restart VS code – 0x0147k3r May 05 '22 at 22:49
113

I have placed a screen capture below showing how to make Visual Studio Code insert a newline at the end of files. This will also serve as a useful place to link to in code reviews when saying "You need to do this and resubmit".

screen capture of settings change

LJH
  • 5,766
  • 3
  • 9
  • 19
Bruno Bronosky
  • 60,791
  • 11
  • 147
  • 135
  • 3
    Awesome, I also recommend ticking the checkbox `Trim Final Newlines` in case there are multiple newlines to reduce it to just 1. I also like `Trim Trailing Whitespace` although some markdown requires two trailing spaces, I avoid that particular markdown syntax because I really want to trim it in code files. – Davos May 10 '21 at 15:11
2

While editing PHP files, something was deleting the newline at the end of the file. In my case it turned out to be the HTML format (html.format.endWithNewline), I believe because of the Emmet extension. (see attached images)

emmet settings html format "End with newline" setting

Telmo Dias
  • 3,540
  • 2
  • 34
  • 43