Re: [PATCH] editorconfig: add Makefiles to "text files"
- From
Max Gautier <mg@max.gautier.name>
- Date
- Mar 23, 2024, 15:55 UTC
- Message-ID
- <Zf77gyA28KsZdOUs@framework>
- In-Reply-To
- <xmqqo7b5zy84.fsf@gitster.g>
On Fri, Mar 22, 2024 at 03:40:59PM -0700, Junio C Hamano wrote:
> A question out of curiosity (because the answer does not affect any > conclusion): Does editorconfig attempt to cover any non-text files?
Apparently they it does not differentiate binary files: https://github.com/editorconfig/editorconfig-core-js/issues/42 https://github.com/editorconfig/editorconfig/issues/285#issuecomment-267400370
Show 5 quoted lines
> Two more questions that do affect the conclusions are: > > * Among the files we ship (i.e. "git ls-tree -r HEAD") and edit > with editors that honor .editorconfig settings, are there any > file that we do not want tab indentation other than *.py?
$ git ls-tree -r HEAD | cut -f 2 | \
grep -vE '.*\.(c|h|sh|perl|pl|pm|txt)' | grep -v t/ \
| rev | cut -d . -f -1 | rev | sort | uniq -c | grep -vE '\<1\>'
-> gives for a first approximation (much more if not filtering unique
occurrences)
2 bash
2 el
8 gitattributes
15 gitignore
4 go
2 in
7 js -> git-gui + git-web
8 md
2 png
41 po
2 pot
14 sample
41 tcl -> git-gui
5 xsl
5 yml -> ci stuff
Not sure which one among those don't want the same tab-indent settings
though.> > * Does .editorconfig file allow possibly conflicting setting, with > a reliable conflict resolution rules?
Yeah it does: https://spec.editorconfig.org/#id8 TL;DR: - from top to bottom, last matching section wins - if multiple .editorconfig are found (up until one with the root key or in /) closest to the file wins.
Show 17 quoted lines
> > What I am trying to get at is if it is possible to make something > along this line to work: > > [*] > charset = utf-8 > insert_final_newline = true > indent_style = tab > tab_width = 8 > [*.py] > indent_style = space > indet_size = 4 > > I am assuming, without knowing, that the conflict resolution rule > may be "for the same setting, the last match wins" so by default we > always use "indent_style = tab", but if we are talking about a Python > script, it is overruled with "indent_style = space".
So it looks like it's possible, if we also add judiciously .editorconfig in subdirectory where we have other files which don't want the same settings, probably: - po/ - t/ - contrib/ - .github/ - ...
Not sure if that's easier than adding stuff to the to the root config though.
-- Max Gautier