git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 6 in “editorconfig: add Makefiles to "text files"”
  1. editorconfig: add Makefiles to "text files"Max Gautier, Mar 22, 2024
  2. Junio C HamanoMar 22, 2024
  3. Max GautierMar 23, 2024
  4. Junio C HamanoMar 23, 2024
  5. Max GautierMar 24, 2024
  6. Junio C HamanoMar 25, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.