[Mesa-dev] [PATCH mesa] Introduce .editorconfig
Jose Fonseca
jfonseca at vmware.com
Tue Aug 30 17:25:08 UTC 2016
On 29/08/16 22:30, Eric Engestrom wrote:
> A few weeks ago, Jose Fonseca suggested [0] we use .editorconfig files
> to try and enforce the formatting of the code, to which Michel Dänzer
> suggested [1] we start by importing the existing .dir-locals.el
> settings. The first draft was discussed in the RFC [2].
>
> These .editorconfig are a first step, one that has the advantage of
> requiring little to no intervention from the devs once the settings
> files are in place, but the settings are very limited. This does have
> the advantage of applying while the code is being written.
> This doesn't replace the need for more comprehensive formatting tools
> such as clang-format & clang-tidy, but those reformat the code after
> the fact.
>
> [0] https://lists.freedesktop.org/archives/mesa-dev/2016-June/121545.html
> [1] https://lists.freedesktop.org/archives/mesa-dev/2016-June/121639.html
> [2] https://lists.freedesktop.org/archives/mesa-dev/2016-July/123431.html
>
> Reviewed-by: Eric Anholt <eric at anholt.net> (for vc4)
> Acked-by: Nicolai Hähnle <nicolai.haehnle at amd.com>
> Signed-off-by: Eric Engestrom <eric at engestrom.ch>
> ---
>
> First off, sorry I took so long to follow up on this.
> Here's the v1 with most of the changes suggested in the RFC/v0, except for the
> couple following issues:
>
> Jose thinks I should remove this line:
>> +trim_trailing_whitespace = true
>
> His reasoning is:
>> I'm sure we have lots of files with trailing whitespace, and this means that
>> people doing trivial one liner fixes might suddently cause the whole file to
>> be munged and stripped.
>>
>> So I think we should remove this from the top level editorconfig. It's fine
>> to have it on specific subdirs, which are know to be trailing-whitespace free.
>
> I don't think waiting for the rule to be followed before introducing it can
> work, but I do understand that introducing it like this might result in people
> sending a lot of whitespace changes in unrelated patches.
> One solution I would prefer is to have a cleanup patch (in the same series) that
> removes those trailing spaces, making the rule enforceable right away.
> What do you guys think?
It still requires all Mesa developers to update their editors / IDEs to
start using .editorconfig, which might take a while.
I still think that trailing whitespace is not something worth fretting
over. Period.
For all I care those trailing whitespace stay for all eternity.
What I care is that we don't waste time with patches full of unrelated
white space changes, or review-requests for white space clean ups.
In short, I still think trim_trailing_whitespace is a bad idea.
Jose
>
> A couple of people have also suggested I add `tab_width`, but IMO this concept
> should die: it comes from the confusion between indentation (a logic concept
> meant to convey code structure) and alignment (an aesthetic concept).
> If you need a specific size for your tabs, you're not indenting, you're
> aligning, which makes no sense to do with a character that will have a varying
> size in the first place.
> There is a (pointless IMO, who cares?) war between tab and space indentation
> with various arguments on each side, but I have yet to find anyone with a single
> argument in favour of using varying-width characters to align code... yet I keep
> seeing people doing it.
> (OK, that's not true: I do have a preference for space indentation, because it
> makes it harder for people to do the wrong thing when they get confused)
> </rant> (sorry)
> ---
> .editorconfig | 35 ++++++++++++++++++++++++
> bin/.editorconfig | 3 ++
> include/CL/.editorconfig | 3 ++
> include/D3D9/.editorconfig | 2 ++
> include/c11/.editorconfig | 3 ++
> include/d3dadapter/.editorconfig | 3 ++
> include/vulkan/.editorconfig | 3 ++
> src/egl/drivers/haiku/.editorconfig | 2 ++
> src/egl/wayland/.editorconfig | 2 ++
> src/gallium/drivers/freedreno/.editorconfig | 2 ++
> src/gallium/drivers/r300/.editorconfig | 3 ++
> src/gallium/drivers/r600/.editorconfig | 2 ++
> src/gallium/drivers/radeon/.editorconfig | 2 ++
> src/gallium/drivers/radeonsi/.editorconfig | 2 ++
> src/gallium/drivers/vc4/.editorconfig | 3 ++
> src/gallium/drivers/vc4/kernel/.editorconfig | 2 ++
> src/gallium/state_trackers/hgl/.editorconfig | 2 ++
> src/gallium/state_trackers/nine/.editorconfig | 3 ++
> src/gallium/state_trackers/xa/.editorconfig | 3 ++
> src/gallium/targets/d3dadapter9/.editorconfig | 3 ++
> src/gallium/targets/haiku-softpipe/.editorconfig | 2 ++
> src/gallium/winsys/freedreno/drm/.editorconfig | 2 ++
> src/gallium/winsys/nouveau/drm/.editorconfig | 2 ++
> src/gallium/winsys/radeon/drm/.editorconfig | 3 ++
> src/gallium/winsys/sw/hgl/.editorconfig | 2 ++
> src/getopt/.editorconfig | 2 ++
> src/gtest/.editorconfig | 3 ++
> src/hgl/.editorconfig | 2 ++
> src/mesa/drivers/dri/nouveau/.editorconfig | 2 ++
> 29 files changed, 103 insertions(+)
> create mode 100644 .editorconfig
> create mode 100644 bin/.editorconfig
> create mode 100644 include/CL/.editorconfig
> create mode 100644 include/D3D9/.editorconfig
> create mode 100644 include/c11/.editorconfig
> create mode 100644 include/d3dadapter/.editorconfig
> create mode 100644 include/vulkan/.editorconfig
> create mode 100644 src/egl/drivers/haiku/.editorconfig
> create mode 100644 src/egl/wayland/.editorconfig
> create mode 100644 src/gallium/drivers/freedreno/.editorconfig
> create mode 100644 src/gallium/drivers/r300/.editorconfig
> create mode 100644 src/gallium/drivers/r600/.editorconfig
> create mode 100644 src/gallium/drivers/radeon/.editorconfig
> create mode 100644 src/gallium/drivers/radeonsi/.editorconfig
> create mode 100644 src/gallium/drivers/vc4/.editorconfig
> create mode 100644 src/gallium/drivers/vc4/kernel/.editorconfig
> create mode 100644 src/gallium/state_trackers/hgl/.editorconfig
> create mode 100644 src/gallium/state_trackers/nine/.editorconfig
> create mode 100644 src/gallium/state_trackers/xa/.editorconfig
> create mode 100644 src/gallium/targets/d3dadapter9/.editorconfig
> create mode 100644 src/gallium/targets/haiku-softpipe/.editorconfig
> create mode 100644 src/gallium/winsys/freedreno/drm/.editorconfig
> create mode 100644 src/gallium/winsys/nouveau/drm/.editorconfig
> create mode 100644 src/gallium/winsys/radeon/drm/.editorconfig
> create mode 100644 src/gallium/winsys/sw/hgl/.editorconfig
> create mode 100644 src/getopt/.editorconfig
> create mode 100644 src/gtest/.editorconfig
> create mode 100644 src/hgl/.editorconfig
> create mode 100644 src/mesa/drivers/dri/nouveau/.editorconfig
>
> diff --git a/.editorconfig b/.editorconfig
> new file mode 100644
> index 0000000..b7cdc88
> --- /dev/null
> +++ b/.editorconfig
> @@ -0,0 +1,35 @@
> +# To use this config on you editor, follow the instructions at:
> +# http://editorconfig.org
> +
> +root = true
> +
> +[*]
> +charset = utf-8
> +insert_final_newline = true
> +trim_trailing_whitespace = true
> +
> +[*.{c,h,cpp,hpp,cc,hh}]
> +indent_style = space
> +indent_size = 3
> +
> +[{Makefile*,*.mk}]
> +indent_style = tab
> +
> +[{*.py,SCons*}]
> +indent_style = space
> +indent_size = 4
> +
> +[*.pl]
> +indent_style = space
> +indent_size = 4
> +
> +[*.m4]
> +indent_style = space
> +indent_size = 2
> +
> +[*.yml]
> +indent_style = space
> +indent_size = 2
> +
> +[*.patch]
> +trim_trailing_whitespace = false
> diff --git a/bin/.editorconfig b/bin/.editorconfig
> new file mode 100644
> index 0000000..b9a948f
> --- /dev/null
> +++ b/bin/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.sh]
> +indent_style = space
> +indent_size = 2
> diff --git a/include/CL/.editorconfig b/include/CL/.editorconfig
> new file mode 100644
> index 0000000..da2afc4
> --- /dev/null
> +++ b/include/CL/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{h,hpp}]
> +indent_style = space
> +indent_size = 4
> diff --git a/include/D3D9/.editorconfig b/include/D3D9/.editorconfig
> new file mode 100644
> index 0000000..0dcc752
> --- /dev/null
> +++ b/include/D3D9/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.h]
> +indent_style = tab
> diff --git a/include/c11/.editorconfig b/include/c11/.editorconfig
> new file mode 100644
> index 0000000..bdbea00
> --- /dev/null
> +++ b/include/c11/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.h]
> +indent_style = space
> +indent_size = 4
> diff --git a/include/d3dadapter/.editorconfig b/include/d3dadapter/.editorconfig
> new file mode 100644
> index 0000000..bdbea00
> --- /dev/null
> +++ b/include/d3dadapter/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.h]
> +indent_style = space
> +indent_size = 4
> diff --git a/include/vulkan/.editorconfig b/include/vulkan/.editorconfig
> new file mode 100644
> index 0000000..bdbea00
> --- /dev/null
> +++ b/include/vulkan/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.h]
> +indent_style = space
> +indent_size = 4
> diff --git a/src/egl/drivers/haiku/.editorconfig b/src/egl/drivers/haiku/.editorconfig
> new file mode 100644
> index 0000000..5ae8c6f
> --- /dev/null
> +++ b/src/egl/drivers/haiku/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.cpp]
> +indent_style = tab
> diff --git a/src/egl/wayland/.editorconfig b/src/egl/wayland/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/egl/wayland/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/drivers/freedreno/.editorconfig b/src/gallium/drivers/freedreno/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/drivers/freedreno/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/drivers/r300/.editorconfig b/src/gallium/drivers/r300/.editorconfig
> new file mode 100644
> index 0000000..7b12a40
> --- /dev/null
> +++ b/src/gallium/drivers/r300/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{c,h}]
> +indent_style = space
> +indent_size = 4
> diff --git a/src/gallium/drivers/r600/.editorconfig b/src/gallium/drivers/r600/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/drivers/r600/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/drivers/radeon/.editorconfig b/src/gallium/drivers/radeon/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/drivers/radeon/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/drivers/radeonsi/.editorconfig b/src/gallium/drivers/radeonsi/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/drivers/radeonsi/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/drivers/vc4/.editorconfig b/src/gallium/drivers/vc4/.editorconfig
> new file mode 100644
> index 0000000..f3d8c47
> --- /dev/null
> +++ b/src/gallium/drivers/vc4/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{c,h}]
> +indent_style = space
> +indent_size = 8
> diff --git a/src/gallium/drivers/vc4/kernel/.editorconfig b/src/gallium/drivers/vc4/kernel/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/drivers/vc4/kernel/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/state_trackers/hgl/.editorconfig b/src/gallium/state_trackers/hgl/.editorconfig
> new file mode 100644
> index 0000000..f391def
> --- /dev/null
> +++ b/src/gallium/state_trackers/hgl/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h,cpp,hpp}]
> +indent_style = tab
> diff --git a/src/gallium/state_trackers/nine/.editorconfig b/src/gallium/state_trackers/nine/.editorconfig
> new file mode 100644
> index 0000000..7b12a40
> --- /dev/null
> +++ b/src/gallium/state_trackers/nine/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{c,h}]
> +indent_style = space
> +indent_size = 4
> diff --git a/src/gallium/state_trackers/xa/.editorconfig b/src/gallium/state_trackers/xa/.editorconfig
> new file mode 100644
> index 0000000..7b12a40
> --- /dev/null
> +++ b/src/gallium/state_trackers/xa/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{c,h}]
> +indent_style = space
> +indent_size = 4
> diff --git a/src/gallium/targets/d3dadapter9/.editorconfig b/src/gallium/targets/d3dadapter9/.editorconfig
> new file mode 100644
> index 0000000..7b12a40
> --- /dev/null
> +++ b/src/gallium/targets/d3dadapter9/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{c,h}]
> +indent_style = space
> +indent_size = 4
> diff --git a/src/gallium/targets/haiku-softpipe/.editorconfig b/src/gallium/targets/haiku-softpipe/.editorconfig
> new file mode 100644
> index 0000000..f391def
> --- /dev/null
> +++ b/src/gallium/targets/haiku-softpipe/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h,cpp,hpp}]
> +indent_style = tab
> diff --git a/src/gallium/winsys/freedreno/drm/.editorconfig b/src/gallium/winsys/freedreno/drm/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/winsys/freedreno/drm/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/winsys/nouveau/drm/.editorconfig b/src/gallium/winsys/nouveau/drm/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/winsys/nouveau/drm/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gallium/winsys/radeon/drm/.editorconfig b/src/gallium/winsys/radeon/drm/.editorconfig
> new file mode 100644
> index 0000000..7b12a40
> --- /dev/null
> +++ b/src/gallium/winsys/radeon/drm/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{c,h}]
> +indent_style = space
> +indent_size = 4
> diff --git a/src/gallium/winsys/sw/hgl/.editorconfig b/src/gallium/winsys/sw/hgl/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/gallium/winsys/sw/hgl/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/getopt/.editorconfig b/src/getopt/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/getopt/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
> diff --git a/src/gtest/.editorconfig b/src/gtest/.editorconfig
> new file mode 100644
> index 0000000..0880bac
> --- /dev/null
> +++ b/src/gtest/.editorconfig
> @@ -0,0 +1,3 @@
> +[*.{cc,h}]
> +indent_style = space
> +indent_size = 2
> diff --git a/src/hgl/.editorconfig b/src/hgl/.editorconfig
> new file mode 100644
> index 0000000..0a01d20
> --- /dev/null
> +++ b/src/hgl/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{cpp,h}]
> +indent_style = tab
> diff --git a/src/mesa/drivers/dri/nouveau/.editorconfig b/src/mesa/drivers/dri/nouveau/.editorconfig
> new file mode 100644
> index 0000000..cc8e11f
> --- /dev/null
> +++ b/src/mesa/drivers/dri/nouveau/.editorconfig
> @@ -0,0 +1,2 @@
> +[*.{c,h}]
> +indent_style = tab
>
More information about the mesa-dev
mailing list