On Mon, Oct 08 2018, brian m. carlson wrote: > Contributors to Git use a variety of editors, each with their own > configuration files. Because C lacks the defined norms on how to indent > and style code that other languages, such as Ruby and Rust, have, it's > possible for various contributors, especially new ones, to have > configured their editor to use a style other than the style the Git > community prefers. > > To make automatically configuring one's editor easier, provide an > EditorConfig file. This is an INI-style configuration file that can be > used to specify editor settings and can be understood by a wide variety > of editors. Some editors include this support natively; others require > a plugin. Regardless, providing such a file allows users to > automatically configure their editor of choice with the correct settings > by default. > > Provide global settings to set the character set to UTF-8 and insert a > final newline into files. Provide language-specific settings for C, > Shell, Perl, and Python files according to what CodingGuidelines already > specifies. Since the indentation of other files varies, especially > certain AsciiDoc files, don't provide any settings for them until a > clear consensus forward emerges. > > Set the line length for commit messages to 72 characters, which is the > generally accepted line length for emails, since we send patches by > email. > > Don't specify an end of line type. While the Git community uses > Unix-style line endings in the repository, some Windows users may use > Git's auto-conversion support and forcing Unix-style line endings might > cause problems for those users. > > Finally, leave out a root directive, which would prevent reading other > EditorConfig files higher up in the tree, in case someone wants to set > the end of line type for their system in such a file. > > Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> > --- > .editorconfig | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > create mode 100644 .editorconfig > > diff --git a/.editorconfig b/.editorconfig > new file mode 100644 > index 0000000000..83227fa0b2 > --- /dev/null > +++ b/.editorconfig > @@ -0,0 +1,14 @@ > +[*] > +charset = utf-8 > +insert_final_newline = true > + > +[*.{c,h,sh,perl}] > +indent_style = tab > +tab_width = 8 It looks like we can add at least "pm" and "pl" to that pattern: $ git ls-files|grep -E -v -e '\.(c|h|sh|perl)$' | grep -F .| sed 's/.*\.//'|sort|uniq -c|sort -nr|head -n 15 631 txt 56 expect 48 po 41 test 40 tcl 34 gitignore 24 pm 18 patch 18 diff 16 pl 15 side 14 gitattributes 12 dump 11 sample 9 master > +[*.py] > +indent_style = space > +indent_size = 4 > + > +[COMMIT_EDITMSG] > +max_line_length = 72