Messages in this thread | | | From | Vincent Mailhol <> | Subject | Re: [PATCH v3] Add .editorconfig file for basic formatting | Date | Tue, 16 May 2023 22:04:37 +0900 |
| |
Hi Íñigo,
Thank you very much for this patch. I would really love to see .editorconfig added to the Linux tree.
I need to work on different project and so, since last year, I applied the v2 of this series to my local tree and it works great.
On Fri, Apr 14, 2023 at 12:11 PM Íñigo Huguet <ihuguet@redhat.com> wrote: > EditorConfig is a specification to define the most basic code formatting > stuff, and it's supported by many editors and IDEs, either directly or > via plugins, including VSCode/VSCodium, Vim, emacs and more. > > It allows to define formatting style related to indentation, charset, > end of lines and trailing whitespaces. It also allows to apply different > formats for different files based on wildcards, so for example it is > possible to apply different configs to *.{c,h}, *.py and *.rs. > > In linux project, defining a .editorconfig might help to those people > that work on different projects with different indentation styles, so > they cannot define a global style. Now they will directly see the > correct indentation on every fresh clone of the project. > > See https://editorconfig.org > > Link: https://lore.kernel.org/lkml/20200703073143.423557-1-danny@kdrag0n.dev/ > Link: https://lore.kernel.org/lkml/20230404075540.14422-1-ihuguet@redhat.com/ > Co-developed-by: Danny Lin <danny@kdrag0n.dev> > Signed-off-by: Danny Lin <danny@kdrag0n.dev> > Signed-off-by: Íñigo Huguet <ihuguet@redhat.com> > --- > v2: > - added special rule for patch files so it doesn't remove > trailing whitespaces, making them unusable. > v3: > - moved all rules from [*] section to all the individual > sections so they doesn't affect to unexpected files.
I understand from from the past discussions that trim_trailing_whitespace or the default indentation can not be apply broadly to all files. But what about those three parameters?
[*] charset = utf-8 end_of_line = lf insert_final_newline = true
Those looks safe to me. Are there files for which we do not want utf-8 or for which we do not what a final empty newline?
> - added some extensions and files from a patch from Danny > Lin that didn't get to be merged: > https://lore.kernel.org/lkml/20200703073143.423557-1-danny@kdrag0n.dev/ > However, the following file types hasn't been added > because they don't have a clear common style: > rst,pl,cocci,tc,bconf,svg,xsl,manual pages > --- > .editorconfig | 30 ++++++++++++++++++++++++++ > .gitignore | 1 + > Documentation/process/4.Coding.rst | 4 ++++ > Documentation/process/coding-style.rst | 4 ++++ > 4 files changed, 39 insertions(+) > create mode 100644 .editorconfig > > diff --git a/.editorconfig b/.editorconfig > new file mode 100644 > index 000000000000..dce20d45c246 > --- /dev/null > +++ b/.editorconfig > @@ -0,0 +1,30 @@ > +# SPDX-License-Identifier: GPL-2.0-only > + > +root = true > + > +# 8 width tabs > +[{*.{c,h},Kconfig,Makefile,Makefile.*,*.mk}] > +charset = utf-8 > +end_of_line = lf > +trim_trailing_whitespace = true > +insert_final_newline = true > +indent_style = tab > +indent_size = 8 > + > +# 4 spaces > +[{*.{json,pm,py,rs},tools/perf/scripts/*/bin/*}] > +charset = utf-8 > +end_of_line = lf > +trim_trailing_whitespace = true > +insert_final_newline = true > +indent_style = space > +indent_size = 4 > + > +# 2 spaces > +[{*.{rb,yaml},.clang-format}] > +charset = utf-8 > +end_of_line = lf > +trim_trailing_whitespace = true > +insert_final_newline = true > +indent_style = space > +indent_size = 2 > diff --git a/.gitignore b/.gitignore > index 70ec6037fa7a..e4b3fe1d029b 100644 > --- a/.gitignore > +++ b/.gitignore > @@ -100,6 +100,7 @@ modules.order > # > !.clang-format > !.cocciconfig > +!.editorconfig > !.get_maintainer.ignore > !.gitattributes > !.gitignore > diff --git a/Documentation/process/4.Coding.rst b/Documentation/process/4.Coding.rst > index 1f0d81f44e14..c2046dec0c2f 100644 > --- a/Documentation/process/4.Coding.rst > +++ b/Documentation/process/4.Coding.rst > @@ -66,6 +66,10 @@ for aligning variables/macros, for reflowing text and other similar tasks. > See the file :ref:`Documentation/process/clang-format.rst <clangformat>` > for more details. > > +Some basic editor settings, such as indentation and line endings, will be > +set automatically if you are using an editor that is compatible with > +EditorConfig. See the official EditorConfig website for more information: > +https://editorconfig.org/ > > Abstraction layers > ****************** > diff --git a/Documentation/process/coding-style.rst b/Documentation/process/coding-style.rst > index 007e49ef6cec..ec96462fa8be 100644 > --- a/Documentation/process/coding-style.rst > +++ b/Documentation/process/coding-style.rst > @@ -735,6 +735,10 @@ for aligning variables/macros, for reflowing text and other similar tasks. > See the file :ref:`Documentation/process/clang-format.rst <clangformat>` > for more details. > > +Some basic editor settings, such as indentation and line endings, will be > +set automatically if you are using an editor that is compatible with > +EditorConfig. See the official EditorConfig website for more information: > +https://editorconfig.org/ > > 10) Kconfig configuration files > ------------------------------- > -- > 2.39.2
| |