As mentioned in the Q&A session in Prague, I've been using these files for years in my local GCC tree to help with formatting libstdc++ files. I'll come up with similar files for the top-level and elsewhere in the GCC tree. As Jakub mentioned, we certainly don't want to trim trailing whitespace from testsuite files, because some of those files are specifically testing correct handling of whitespace.
Editorconfig only handles the most basic settings (but those are things we shouldn't be wasting our time doing by hand): trailing whitespace, tabs vs spaces, number of columns to indent etc. For proper formatting of code in libstdc++ I use https://github.com/mattkretz/vim-gnuindent which does a great job (neither GNU indent nor clang-format can format things the way we do it in libstdc++). Pushed to trunk. -- >8 -- These config files set default formatting behaviour for a large number of common editors, see https://editorconfig.org The root=true setting in libstdc++-v3/.editorconfig prevents looking in parent directories for additional settings. If we add a .editorconfig at the top-level we might want to use root=true there instead, and allow libstdc++-v3/.editorconfig to inherit some some settings from there (and only override things we want to do differently). libstdc++-v3/ChangeLog: * .editorconfig: New file. * include/std/.editorconfig: New file. --- libstdc++-v3/.editorconfig | 38 ++++++++++++++++++++++++++ libstdc++-v3/include/std/.editorconfig | 10 +++++++ 2 files changed, 48 insertions(+) create mode 100644 libstdc++-v3/.editorconfig create mode 100644 libstdc++-v3/include/std/.editorconfig diff --git a/libstdc++-v3/.editorconfig b/libstdc++-v3/.editorconfig new file mode 100644 index 00000000000..88107cedda2 --- /dev/null +++ b/libstdc++-v3/.editorconfig @@ -0,0 +1,38 @@ +# top-most EditorConfig file for libstdc++-v3 +root = true + +[*] +end_of_line = lf +insert_final_newline = true + +[*.h,*.cc] +charset = utf-8 +indent_style = tab +indent_size = 2 +tab_width = 8 +trim_trailing_whitespace = true + +[Makefile*,ChangeLog*] +indent_style = tab +indent_size = 8 +trim_trailing_whitespace = true + +[ChangeLog*] +charset = utf-8 + +[*.xml] +charset = utf-8 +indent_size = 2 +tab_width = 8 +trim_trailing_whitespace = true + +[*.py] +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +[*.exp] +indent_style = tab +indent_size = 4 +tab_width = 8 +trim_trailing_whitespace = true diff --git a/libstdc++-v3/include/std/.editorconfig b/libstdc++-v3/include/std/.editorconfig new file mode 100644 index 00000000000..97ca1923cf8 --- /dev/null +++ b/libstdc++-v3/include/std/.editorconfig @@ -0,0 +1,10 @@ +# Inherit settings from EditorConfig files above this dir. +root = false + +# All files under this directory are C++ headers. +[*] +charset = utf-8 +indent_style = tab +indent_size = 2 +tab_width = 8 +trim_trailing_whitespace = true -- 2.46.0