[Mesa-dev] [RFC mesa] Introduce .editorconfig

Eric Engestrom eric at engestrom.ch
Sun Jul 17 23:46:57 UTC 2016


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.

This is a first draft, with settings from the mentioned emacs files,
augmented with what I could see was the current practice in various
submodules.
Note that it might not reflects the desired formatting. Please say so if
this is the case. I expect several of these .editorconfig files are in
this situation, so don't hesitate to just tell me "the current formatting
for X is wrong, we want to eventually match the project-wide formatting,
so don't create this .editorconfig".

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

---
 .editorconfig                                    | 44 ++++++++++++++++++++++++
 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/noop/.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 ++
 src/mesa/drivers/dri/radeon/.editorconfig        |  2 ++
 31 files changed, 116 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/noop/.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
 create mode 100644 src/mesa/drivers/dri/radeon/.editorconfig

diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..eeb0875
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,40 @@
+# To use this config on you editor, follow the instructions on:
+# http://editorconfig.org
+
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+max_line_length = 80
+
+[*.{c,h,cpp,hpp}]
+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
+
+[*.{dsp,dsw,sln,vcproj}]
+end_of_line = crlf
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/noop/.editorconfig b/src/gallium/drivers/noop/.editorconfig
new file mode 100644
index 0000000..a01ed77
--- /dev/null
+++ b/src/gallium/drivers/noop/.editorconfig
@@ -0,0 +1,2 @@
+[*.c]
+indent_style = tab
diff --git a/src/gallium/drivers/r300/.editorconfig b/src/gallium/drivers/r300/.editorconfig
new file mode 100644
index 0000000..01e39c8
--- /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
diff --git a/src/mesa/drivers/dri/radeon/.editorconfig b/src/mesa/drivers/dri/radeon/.editorconfig
new file mode 100644
index 0000000..a851cbe
--- /dev/null
+++ b/src/mesa/drivers/dri/radeon/.editorconfig
@@ -0,0 +1,3 @@
+# Coin toss?  Leaving this one empty (ie. global rules) for now because
+# there are files with 3-spaces, 4-spaces and tab indentations.
+# Tell me what you'd prefer if not the 3-space style of the rest of Mesa.
-- 
2.9.0



More information about the mesa-dev mailing list