From: Jakob Meng <c...@jakobmeng.de> Wildcard sections [*] and [**] are unsafe because properties cannot be applied safely to any filetype in general. For example, IDEs like Visual Studio Code and KDevelop store configuration files in subfolders like .vscode or .kdev4. Properties from wildcard sections also apply to those files which is not safe in general. Another example are patches created with 'git format-patch' which can contain trailing whitespaces. When editing a patch, e.g. to fix a typo in the title, trailing whitespaces should not be removed.
Property trim_trailing_whitespace should not be defined at all because it is interpreted differently by editors. Some wipe whitespaces from the whole file, others remove them from edited lines only and a few change their behavior between releases [0]. Limiting the property to a subset of files like *.c/*.h will not mitigate the issue: Multiple definitions of a whitespace exist. Unicode considers a form feed (0x0C) to be a whitespace [1]. QChar::isSpace() [2] from Qt follows this definition, causing the Kate editor identify a form feed as a trailing whitespace and removing it from sources [3]. This breaks patches when editors remove form feeds and thus causing broken patches which cannot be applied cleanly. Removing trim_trailing_whitespace will be a minor inconvienence, in particular because utilities/checkpatch.py and thus 0-day Robot will prevent trailing whitespaces for our definition of a whitespace. [0] https://github.com/KDE/ktexteditor/commit/94b328fc64e543d91930845d2a96ce08d3043295 [1] https://en.wikipedia.org/wiki/Whitespace_character [2] https://github.com/qt/qtbase/blob/5628600a07295db6ed6683e97fafb0c45ddea505/src/corelib/text/qchar.h#L554 [3] https://github.com/KDE/ktexteditor/blob/10210ec1dd06afa1e7b19a4fff722a8a23719161/src/document/katedocument.cpp#L5643 Fixes: 07f6d6a0cb51 ("Add editorconfig file.") Signed-off-by: Jakob Meng <c...@jakobmeng.de> --- .editorconfig | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.editorconfig b/.editorconfig index 685c72750..41ba51bf3 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,15 +2,18 @@ root = true -[*] -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true -charset = utf-8 +# No wildcard sections [*] and [**] because properties cannot be +# applied safely to any filetype in general. + +# Property trim_trailing_whitespace should not be defined at all +# because it is interpreted differently by editors. [*.{c,h}] +charset = utf-8 +end_of_line = lf indent_style = space indent_size = 4 +insert_final_newline = true max_line_length = 79 [include/linux/**.h] -- 2.39.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev