.cmake-format.py
Go to the documentation of this file.
1 # ----------------------------------
2 # Options affecting listfile parsing
3 # ----------------------------------
4 with section("parse"):
5 
6  # Specify structure for custom cmake functions
7  additional_commands = { 'foo': { 'flags': ['BAR', 'BAZ'],
8  'kwargs': {'DEPENDS': '*', 'HEADERS': '*', 'SOURCES': '*'}}}
9 
10  # Override configurations per-command where available
11  override_spec = {}
12 
13  # Specify variable tags.
14  vartags = []
15 
16  # Specify property tags.
17  proptags = []
18 
19 # -----------------------------
20 # Options affecting formatting.
21 # -----------------------------
22 with section("format"):
23 
24  # Disable formatting entirely, making cmake-format a no-op
25  disable = False
26 
27  # How wide to allow formatted cmake files
28  line_width = 80
29 
30  # How many spaces to tab for indent
31  tab_size = 2
32 
33  # If true, lines are indented using tab characters (utf-8 0x09) instead of
34  # <tab_size> space characters (utf-8 0x20). In cases where the layout would
35  # require a fractional tab character, the behavior of the fractional
36  # indentation is governed by <fractional_tab_policy>
37  use_tabchars = False
38 
39  # If <use_tabchars> is True, then the value of this variable indicates how
40  # fractional indentions are handled during whitespace replacement. If set to
41  # 'use-space', fractional indentation is left as spaces (utf-8 0x20). If set
42  # to `round-up` fractional indentation is replaced with a single tab character
43  # (utf-8 0x09) effectively shifting the column to the next tabstop
44  fractional_tab_policy = 'use-space'
45 
46  # If an argument group contains more than this many sub-groups (parg or kwarg
47  # groups) then force it to a vertical layout.
48  max_subgroups_hwrap = 2
49 
50  # If a positional argument group contains more than this many arguments, then
51  # force it to a vertical layout.
52  max_pargs_hwrap = 6
53 
54  # If a cmdline positional group consumes more than this many lines without
55  # nesting, then invalidate the layout (and nest)
56  max_rows_cmdline = 2
57 
58  # If true, separate flow control names from their parentheses with a space
59  separate_ctrl_name_with_space = False
60 
61  # If true, separate function names from parentheses with a space
62  separate_fn_name_with_space = False
63 
64  # If a statement is wrapped to more than one line, than dangle the closing
65  # parenthesis on its own line.
66  dangle_parens = False
67 
68  # If the trailing parenthesis must be 'dangled' on its on line, then align it
69  # to this reference: `prefix`: the start of the statement, `prefix-indent`:
70  # the start of the statement, plus one indentation level, `child`: align to
71  # the column of the arguments
72  dangle_align = 'prefix'
73 
74  # If the statement spelling length (including space and parenthesis) is
75  # smaller than this amount, then force reject nested layouts.
76  min_prefix_chars = 4
77 
78  # If the statement spelling length (including space and parenthesis) is larger
79  # than the tab width by more than this amount, then force reject un-nested
80  # layouts.
81  max_prefix_chars = 10
82 
83  # If a candidate layout is wrapped horizontally but it exceeds this many
84  # lines, then reject the layout.
85  max_lines_hwrap = 2
86 
87  # What style line endings to use in the output.
88  line_ending = 'unix'
89 
90  # Format command names consistently as 'lower' or 'upper' case
91  command_case = 'canonical'
92 
93  # Format keywords consistently as 'lower' or 'upper' case
94  keyword_case = 'unchanged'
95 
96  # A list of command names which should always be wrapped
97  always_wrap = []
98 
99  # If true, the argument lists which are known to be sortable will be sorted
100  # lexicographicall
101  enable_sort = True
102 
103  # If true, the parsers may infer whether or not an argument list is sortable
104  # (without annotation).
105  autosort = False
106 
107  # By default, if cmake-format cannot successfully fit everything into the
108  # desired linewidth it will apply the last, most agressive attempt that it
109  # made. If this flag is True, however, cmake-format will print error, exit
110  # with non-zero status code, and write-out nothing
111  require_valid_layout = False
112 
113  # A dictionary mapping layout nodes to a list of wrap decisions. See the
114  # documentation for more information.
115  layout_passes = {}
116 
117 # ------------------------------------------------
118 # Options affecting comment reflow and formatting.
119 # ------------------------------------------------
120 with section("markup"):
121 
122  # What character to use for bulleted lists
123  bullet_char = '*'
124 
125  # What character to use as punctuation after numerals in an enumerated list
126  enum_char = '.'
127 
128  # If comment markup is enabled, don't reflow the first comment block in each
129  # listfile. Use this to preserve formatting of your copyright/license
130  # statements.
131  first_comment_is_literal = False
132 
133  # If comment markup is enabled, don't reflow any comment block which matches
134  # this (regex) pattern. Default is `None` (disabled).
135  literal_comment_pattern = None
136 
137  # Regular expression to match preformat fences in comments default=
138  # ``r'^\s*([`~]{3}[`~]*)(.*)$'``
139  fence_pattern = '^\\s*([`~]{3}[`~]*)(.*)$'
140 
141  # Regular expression to match rulers in comments default=
142  # ``r'^\s*[^\w\s]{3}.*[^\w\s]{3}$'``
143  ruler_pattern = '^\\s*[^\\w\\s]{3}.*[^\\w\\s]{3}$'
144 
145  # If a comment line matches starts with this pattern then it is explicitly a
146  # trailing comment for the preceeding argument. Default is '#<'
147  explicit_trailing_pattern = '#<'
148 
149  # If a comment line starts with at least this many consecutive hash
150  # characters, then don't lstrip() them off. This allows for lazy hash rulers
151  # where the first hash char is not separated by space
152  hashruler_min_length = 10
153 
154  # If true, then insert a space between the first hash char and remaining hash
155  # chars in a hash ruler, and normalize its length to fill the column
156  canonicalize_hashrulers = True
157 
158  # enable comment markup parsing and reflow
159  enable_markup = True
160 
161 # ----------------------------
162 # Options affecting the linter
163 # ----------------------------
164 with section("lint"):
165 
166  # a list of lint codes to disable
167  disabled_codes = []
168 
169  # regular expression pattern describing valid function names
170  function_pattern = '[0-9a-z_]+'
171 
172  # regular expression pattern describing valid macro names
173  macro_pattern = '[0-9A-Z_]+'
174 
175  # regular expression pattern describing valid names for variables with global
176  # (cache) scope
177  global_var_pattern = '[A-Z][0-9A-Z_]+'
178 
179  # regular expression pattern describing valid names for variables with global
180  # scope (but internal semantic)
181  internal_var_pattern = '_[A-Z][0-9A-Z_]+'
182 
183  # regular expression pattern describing valid names for variables with local
184  # scope
185  local_var_pattern = '[a-z][a-z0-9_]+'
186 
187  # regular expression pattern describing valid names for privatedirectory
188  # variables
189  private_var_pattern = '_[0-9a-z_]+'
190 
191  # regular expression pattern describing valid names for public directory
192  # variables
193  public_var_pattern = '[A-Z][0-9A-Z_]+'
194 
195  # regular expression pattern describing valid names for function/macro
196  # arguments and loop variables.
197  argument_var_pattern = '[a-z][a-z0-9_]+'
198 
199  # regular expression pattern describing valid names for keywords used in
200  # functions or macros
201  keyword_pattern = '[A-Z][0-9A-Z_]+'
202 
203  # In the heuristic for C0201, how many conditionals to match within a loop in
204  # before considering the loop a parser.
205  max_conditionals_custom_parser = 2
206 
207  # Require at least this many newlines between statements
208  min_statement_spacing = 1
209 
210  # Require no more than this many newlines between statements
211  max_statement_spacing = 2
212  max_returns = 6
213  max_branches = 12
214  max_arguments = 5
215  max_localvars = 15
216  max_statements = 50
217 
218 # -------------------------------
219 # Options affecting file encoding
220 # -------------------------------
221 with section("encode"):
222 
223  # If true, emit the unicode byte-order mark (BOM) at the start of the file
224  emit_byteorder_mark = False
225 
226  # Specify the encoding of the input file. Defaults to utf-8
227  input_encoding = 'utf-8'
228 
229  # Specify the encoding of the output file. Defaults to utf-8. Note that cmake
230  # only claims to support utf-8 so be careful when using anything else
231  output_encoding = 'utf-8'
232 
233 # -------------------------------------
234 # Miscellaneous configurations options.
235 # -------------------------------------
236 with section("misc"):
237 
238  # A dictionary containing any per-command configuration overrides. Currently
239  # only `command_case` is supported.
240  per_command = {}


pinocchio
Author(s):
autogenerated on Fri Jun 23 2023 02:38:28