From 61bbba0dd5e982852d385d51816a2ac13c37ba0e Mon Sep 17 00:00:00 2001
From: Jelte Fennema-Nio <jelte.fennema@microsoft.com>
Date: Wed, 14 Feb 2024 17:19:42 +0100
Subject: [PATCH v2 3/4] Bring editorconfig in line with gitattributes

Our .gitattributes file is configured to complain about several
whitespace issues. This updates our .editorconfig file to make many
editors and IDEs fix these issues automatically on save in the same way.
---
 .editorconfig | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 66 insertions(+)

diff --git a/.editorconfig b/.editorconfig
index d69a3d1dc4e..2441fde21e9 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,10 +1,19 @@
 root = true
 
+[*]
+trim_trailing_whitespace = true
+insert_final_newline = true
+
 [*.{c,h,l,y,pl,pm}]
 indent_style = tab
 indent_size = tab
 tab_width = 4
 
+[*.po]
+# This does not provide indent_size since .po files don't have indentation.
+# Setting indent_style is only done to prevent accidental insertion of tabs.
+indent_style = space
+
 [*.{sgml,xml}]
 indent_style = space
 indent_size = 1
@@ -12,3 +21,60 @@ indent_size = 1
 [*.xsl]
 indent_style = space
 indent_size = 2
+
+# Certain data files that contain special whitespace, and other special cases
+[*.data]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[contrib/pgcrypto/sql/pgp-armor.sql]
+trim_trailing_whitespace = false
+
+[src/backend/catalog/sql_features.txt]
+trim_trailing_whitespace = false
+
+# Test output files that contain extra whitespace
+[*.out]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/interfaces/ecpg/test/expected/*]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+# These files are maintained or generated elsewhere.  We take them as is.
+[configure]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[ppport.h]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/backend/regex/COPYRIGHT]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/backend/snowball/libstemmer/*.c]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/backend/utils/mb/Unicode/*-std.txt]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/include/snowball/libstemmer/*]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/timezone/data/*]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/tools/pg_bsd_indent/*]
+trim_trailing_whitespace = false
+insert_final_newline = false
+
+[src/tools/pg_bsd_indent/tests/*]
+trim_trailing_whitespace = false
+insert_final_newline = false
-- 
2.34.1

