1# EditorConfig configuration for nixpkgs
2# https://EditorConfig.org
3
4# Top-most EditorConfig file
5root = true
6
7# Unix-style newlines with a newline ending every file, utf-8 charset
8[*]
9end_of_line = lf
10insert_final_newline = true
11trim_trailing_whitespace = true
12charset = utf-8
13
14# Ignore diffs/patches
15[*.{diff,patch}]
16end_of_line = unset
17insert_final_newline = unset
18trim_trailing_whitespace = unset
19
20# We want readFile .version to return the version without a newline.
21[.version]
22insert_final_newline = false
23
24# see https://nixos.org/nixpkgs/manual/#chap-conventions
25
26# Match json/lockfiles/markdown/nix/perl/python/ruby/shell/docbook files, set indent to spaces
27[*.{json,lock,md,nix,pl,pm,py,rb,sh,xml}]
28indent_style = space
29
30# Match docbook files, set indent width of one
31[*.xml]
32indent_size = 1
33
34# Match json/lockfiles/markdown/nix/ruby files, set indent width of two
35[*.{json,lock,md,nix,rb}]
36indent_size = 2
37
38# Match perl/python/shell scripts, set indent width of four
39[*.{pl,pm,py,sh}]
40indent_size = 4
41
42# Match gemfiles, set indent to spaces with width of two
43[Gemfile]
44indent_size = 2
45indent_style = space
46
47# Disable file types or individual files
48# some of these files may be auto-generated and/or require significant changes
49
50[*.{c,h}]
51insert_final_newline = unset
52trim_trailing_whitespace = unset
53
54[*.{asc,key,ovpn}]
55insert_final_newline = unset
56end_of_line = unset
57trim_trailing_whitespace = unset
58
59[*.lock]
60indent_size = unset
61
62# Although Markdown/CommonMark allows using two trailing spaces to denote
63# a hard line break, we do not use that feature in nixpkgs since
64# it forces the surrounding paragraph to become a <literallayout> which
65# does not wrap reasonably.
66# Instead of a hard line break, start a new paragraph by inserting a blank line.
67[*.md]
68trim_trailing_whitespace = true
69
70# binaries
71[*.nib]
72end_of_line = unset
73insert_final_newline = unset
74trim_trailing_whitespace = unset
75charset = unset
76
77[eggs.nix]
78trim_trailing_whitespace = unset
79
80[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
81trim_trailing_whitespace = unset
82
83[pkgs/build-support/dotnetenv/Wrapper/**]
84end_of_line = unset
85indent_style = unset
86insert_final_newline = unset
87trim_trailing_whitespace = unset
88
89[pkgs/development/compilers/elm/registry.dat]
90end_of_line = unset
91insert_final_newline = unset
92
93[pkgs/development/haskell-modules/hackage-packages.nix]
94indent_style = unset
95trim_trailing_whitespace = unset
96
97[pkgs/misc/documentation-highlighter/**]
98insert_final_newline = unset
99
100[pkgs/servers/dict/wordnet_structures.py]
101trim_trailing_whitespace = unset
102
103[pkgs/tools/misc/timidity/timidity.cfg]
104trim_trailing_whitespace = unset
105
106[pkgs/tools/virtualization/ovftool/*.ova]
107end_of_line = unset
108insert_final_newline = unset
109trim_trailing_whitespace = unset
110charset = unset
111
112[lib/tests/*.plist]
113indent_style = tab
114insert_final_newline = unset
115
116[pkgs/kde/generated/**]
117insert_final_newline = unset
118end_of_line = unset