# stylish-haskell configuration file # ================================== # The stylish-haskell tool is mainly configured by specifying steps. These steps # are a list, so they have an order, and one specific step may appear more than # once (if needed). Each file is processed by these steps in the given order. steps: # Convert some ASCII sequences to their Unicode equivalents. This is disabled # by default. # - unicode_syntax: # # In order to make this work, we also need to insert the UnicodeSyntax # # language pragma. If this flag is set to true, we insert it when it's # # not already present. You may want to disable it if you configure # # language extensions using some other method than pragmas. Default: # # true. # add_language_pragma: true # Format record definitions # Disabled: don't like it for simple sum types # - records: {} # Align the right hand side of some elements. This is quite conservative # and only applies to statements where each element occupies a single # line. All default to true. - simple_align: cases: true top_level_patterns: true records: true # Import cleanup - imports: # There are different ways we can align names and lists. # # - global: Align the import names and import list throughout the entire # file. # # - file: Like global, but don't add padding when there are no qualified # imports in the file. # # - group: Only align the imports per group (a group is formed by adjacent # import lines). # # - none: Do not perform any alignment. # # Default: global. align: none # The following options affect only import list alignment. # # List align has following options: # # - after_alias: Import list is aligned with end of import including # 'as' and 'hiding' keywords. # # > import qualified Data.List as List (concat, foldl, foldr, head, # > init, last, length) # # - with_alias: Import list is aligned with start of alias or hiding. # # > import qualified Data.List as List (concat, foldl, foldr, head, # > init, last, length) # # - with_module_name: Import list is aligned `list_padding` spaces after # the module name. # # > import qualified Data.List as List (concat, foldl, foldr, head, # init, last, length) # # This is mainly intended for use with `pad_module_names: false`. # # > import qualified Data.List as List (concat, foldl, foldr, head, # init, last, length, scanl, scanr, take, drop, # sort, nub) # # - new_line: Import list starts always on new line. # # > import qualified Data.List as List # > (concat, foldl, foldr, head, init, last, length) # # Default: after_alias list_align: after_alias # Right-pad the module names to align imports in a group: # # - true: a little more readable # # > import qualified Data.List as List (concat, foldl, foldr, # > init, last, length) # > import qualified Data.List.Extra as List (concat, foldl, foldr, # > init, last, length) # # - false: diff-safe # # > import qualified Data.List as List (concat, foldl, foldr, init, # > last, length) # > import qualified Data.List.Extra as List (concat, foldl, foldr, # > init, last, length) # # Default: true pad_module_names: false # Language pragmas - language_pragmas: # We can generate different styles of language pragma lists. # # - vertical: Vertical-spaced language pragmas, one per line. # # - compact: A more compact style. # # - compact_line: Similar to compact, but wrap each line with # `{-#LANGUAGE #-}'. # # Default: vertical. style: vertical # Align affects alignment of closing pragma brackets. # # - true: Brackets are aligned in same column. # # - false: Brackets are not aligned together. There is only one space # between actual import and closing bracket. # # Default: true align: false # Language prefix to be used for pragma declaration, this allows you to # use other options non case-sensitive like "language" or "Language". # If a non correct String is provided, it will default to: LANGUAGE. language_prefix: language # Remove trailing whitespace - trailing_whitespace: {} # Squash multiple spaces between the left and right hand sides of some # elements into single spaces. Basically, this undoes the effect of # simple_align but is a bit less conservative. # - squash: {} # A common indentation setting. Different steps take this into account. indent: 4