diff --git a/.stylish-haskell.yaml b/.stylish-haskell.yaml deleted file mode 100644 index 26770c1..0000000 --- a/.stylish-haskell.yaml +++ /dev/null @@ -1,357 +0,0 @@ -# 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 module header - # - # Currently, this option is not configurable and will format all exports and - # module declarations to minimize diffs - # - # - module_header: - # # How many spaces use for indentation in the module header. - # indent: 4 - # - # # Should export lists be sorted? Sorting is only performed within the - # # export section, as delineated by Haddock comments. - # sort: true - # - # # See `separate_lists` for the `imports` step. - # separate_lists: true - - # Format record definitions. This is disabled by default. - # - # You can control the layout of record fields. The only rules that can't be configured - # are these: - # - # - "|" is always aligned with "=" - # - "," in fields is always aligned with "{" - # - "}" is likewise always aligned with "{" - # - # - records: - # # How to format equals sign between type constructor and data constructor. - # # Possible values: - # # - "same_line" -- leave "=" AND data constructor on the same line as the type constructor. - # # - "indent N" -- insert a new line and N spaces from the beginning of the next line. - # equals: "indent 2" - # - # # How to format first field of each record constructor. - # # Possible values: - # # - "same_line" -- "{" and first field goes on the same line as the data constructor. - # # - "indent N" -- insert a new line and N spaces from the beginning of the data constructor - # first_field: "indent 2" - # - # # How many spaces to insert between the column with "," and the beginning of the comment in the next line. - # field_comment: 2 - # - # # How many spaces to insert before "deriving" clause. Deriving clauses are always on separate lines. - # deriving: 2 - # - # # How many spaces to insert before "via" clause counted from indentation of deriving clause - # # Possible values: - # # - "same_line" -- "via" part goes on the same line as "deriving" keyword. - # # - "indent N" -- insert a new line and N spaces from the beginning of "deriving" keyword. - # via: "indent 2" - # - # # Sort typeclass names in the "deriving" list alphabetically. - # sort_deriving: true - # - # # Wheter or not to break enums onto several lines - # # - # # Default: false - # break_enums: false - # - # # Whether or not to break single constructor data types before `=` sign - # # - # # Default: true - # break_single_constructors: true - # - # # Whether or not to curry constraints on function. - # # - # # E.g: @allValues :: Enum a => Bounded a => Proxy a -> [a]@ - # # - # # Instead of @allValues :: (Enum a, Bounded a) => Proxy a -> [a]@ - # # - # # Default: false - # curried_context: false - - # Align the right hand side of some elements. This is quite conservative - # and only applies to statements where each element occupies a single - # line. - # Possible values: - # - always - Always align statements. - # - adjacent - Align statements that are on adjacent lines in groups. - # - never - Never align statements. - # All default to always. - - simple_align: - cases: always - top_level_patterns: always - records: always - multi_way_if: always - - # 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: global - - # 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) - # - # - repeat: Repeat the module name to align the import list. - # - # > import qualified Data.List as List (concat, foldl, foldr, head) - # > import qualified Data.List as List (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: true - - # Long list align style takes effect when import is too long. This is - # determined by 'columns' setting. - # - # - inline: This option will put as much specs on same line as possible. - # - # - new_line: Import list will start on new line. - # - # - new_line_multiline: Import list will start on new line when it's - # short enough to fit to single line. Otherwise it'll be multiline. - # - # - multiline: One line per import list entry. - # Type with constructor list acts like single import. - # - # > import qualified Data.Map as M - # > ( empty - # > , singleton - # > , ... - # > , delete - # > ) - # - # Default: inline - long_list_align: multiline - - # Align empty list (importing instances) - # - # Empty list align has following options - # - # - inherit: inherit list_align setting - # - # - right_after: () is right after the module name: - # - # > import Vector.Instances () - # - # Default: inherit - empty_list_align: inherit - - # List padding determines indentation of import list on lines after import. - # This option affects 'long_list_align'. - # - # - : constant value - # - # - module_name: align under start of module name. - # Useful for 'file' and 'group' align settings. - # - # Default: 4 - list_padding: 4 - - # Separate lists option affects formatting of import list for type - # or class. The only difference is single space between type and list - # of constructors, selectors and class functions. - # - # - true: There is single space between Foldable type and list of it's - # functions. - # - # > import Data.Foldable (Foldable (fold, foldl, foldMap)) - # - # - false: There is no space between Foldable type and list of it's - # functions. - # - # > import Data.Foldable (Foldable(fold, foldl, foldMap)) - # - # Default: true - separate_lists: true - - # Space surround option affects formatting of import lists on a single - # line. The only difference is single space after the initial - # parenthesis and a single space before the terminal parenthesis. - # - # - true: There is single space associated with the enclosing - # parenthesis. - # - # > import Data.Foo ( foo ) - # - # - false: There is no space associated with the enclosing parenthesis - # - # > import Data.Foo (foo) - # - # Default: false - space_surround: false - - # Enabling this argument will use the new GHC lib parse to format imports. - # - # This currently assumes a few things, it will assume that you want post - # qualified imports. It is also not as feature complete as the old - # imports formatting. - # - # It does not remove redundant lines or merge lines. As such, the full - # feature scope is still pending. - # - # It _is_ however, a fine alternative if you are using features that are - # not parseable by haskell src extensions and you're comfortable with the - # presets. - # - # Default: false - ghc_lib_parser: 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: true - - # stylish-haskell can detect redundancy of some language pragmas. If this - # is set to true, it will remove those redundant pragmas. Default: true. - remove_redundant: true - - # 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 - - # Replace tabs by spaces. This is disabled by default. - # - tabs: - # # Number of spaces to use for each tab. Default: 8, as specified by the - # # Haskell report. - # spaces: 8 - - # 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 setting is the number of columns (parts of) code will be wrapped -# to. Different steps take this into account. -# -# Set this to null to disable all line wrapping. -# -# Default: 80. -columns: 80 - -# By default, line endings are converted according to the OS. You can override -# preferred format here. -# -# - native: Native newline format. CRLF on Windows, LF on other OSes. -# -# - lf: Convert to LF ("\n"). -# -# - crlf: Convert to CRLF ("\r\n"). -# -# Default: native. -newline: native - -# Sometimes, language extensions are specified in a cabal file or from the -# command line instead of using language pragmas in the file. stylish-haskell -# needs to be aware of these, so it can parse the file correctly. -# -# No language extensions are enabled by default. -# language_extensions: - # - TemplateHaskell - # - QuasiQuotes - -# Attempt to find the cabal file in ancestors of the current directory, and -# parse options (currently only language extensions) from that. -# -# Default: true -cabal: true diff --git a/fourmolu.yaml b/fourmolu.yaml new file mode 100644 index 0000000..8a4d94e --- /dev/null +++ b/fourmolu.yaml @@ -0,0 +1,14 @@ +indentation: 2 +function-arrows: trailing +comma-style: leading +import-export-style: trailing +indent-wheres: true +record-brace-space: true +newlines-between-decls: 1 +haddock-style: single-line +haddock-style-module: +let-style: inline +in-style: right-align +respectful: false +fixities: [] +unicode: never