
Prázdný řádek na konci souboru
Proč by textové soubory měly končit prázdným řádkem.
Je zažitá představa, že by textové soubory měly končit prázdným řádkem.
Asi každý programátor se setkal s tím, že to někomu psal při code review. Nebo to naopak někdo psal jemu.
Má to ale opodstatnění?
Unix standard
Podle POSIX standardu by každý textový soubor měl končit znakem nového řádku. Přesněji řečeno standard definuje, že textový soubor je posloupnost řádků, kde každý řádek končí znakem nového řádku.
Chování v praxi
Situace, kdy by absence prázdného řádku na konci souboru způsobovala reálné problémy, je spíše raritní.
Spojování souborů
Problém může být v tom, že nějaké nástroje mohou počítat s chováním dle standardu, a tak spoléhat na to, že na konci souboru bude prázdný řádek.
Třeba při spojování souborů při nedodržení standardu se může stát, že se řádky slijí dohromady:
soubor1.js
let promenna = 1
soubor2.js
let promenna2 = 2
Výsledkem bude syntaktická chyba:
let promenna = 1let promenna2 = 2
Počet řádků
Podobně může vyjít špatný počet řádků, pokud se budou počítat podle konce řádků, který ale na konci souboru nebude.
Git a versování
Git sám o sobě automaticky nepřidává prázdný řádek na konec souborů, ale zobrazuje varování, když soubor nekončí novým řádkem:
\ No newline at end of file
Pokud někdo na projektu nové řádky na konec dává a někdo ne, zbytečně to způsobuje nerelevantní změny.
Lint
Osobně si myslím, že nemá moc smysl řešit ručně code style. Takže je určitě vhodné mít na projektu např. Prettier, který konsistenci zajistí.
Tolerance
Při programování doporučuji nebýt naivní a počítat při práci s konci řádků s oběma variantami. Tj. počítat s tím, že prázdný řádek existovat může a nemusí.
Většinou se to řeší tak, že se stejně používá nějaká funkce trim.
Odkazy jinam
Související články




Zvláštní znaky na české klávesnici v macOS
Jak v macOS na běžné české klávesnici pohodlně programovat a zapisovat všelijaké speciální znaky?