go-libwebp

Experimental translation from libwebp to Go source.
Log | Files | Refs | README | LICENSE

.cmake-format.py (8413B)


      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 = 3
     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 = True
    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 = {}